<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qqjianyue代碼工

    砌java代碼
    posts - 62, comments - 9, trackbacks - 0, articles - 10
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    適合入門級看,但其中的錯誤解決適合大家參考。
    在此使用MyEclipse6.0作為編程環(huán)境,真正領悟ssh后,就會知道MyEclipse添加spring與hibernate支持的用意只是讓MyEclipse自動添加spring與hibernate的包,還有產生一些配置文件代碼,在此為節(jié)省時間,使用MyEclipse來添加,但是其實自己添加也行。

    要填的東西將會指出,其他都是默認

    前提:

    數據庫建庫
    使用上面SQL語句在MySQL中建立表格,最好使用SQL yog Enterprise工具
    安裝MySQL與SQL yogEnterprise請自己掌握。

    1.創(chuàng)建工程:


    file-->web project(習慣使用,貌似dynamic web project也行)
     project name:ssh
    J2EE Specification Level選擇Java EE5.0(使用新一點的吧)

    finish->
    菜單Wiindows-->Open Perspective-->MyEclipse Java Enterprise 視圖

    2.添加Spring支持:


    工程名上右鍵-->MyEclipse-->Add Spring Capabilities
    a).在框內選上:
    Spring2.0 AOP Libraries(對于面向切面有用,后面會用到配置面向切面的)
    Spring2.0 Core Libraries(Spring核心庫)
    Spring2.0 Persistence Core Libraries(持久層庫,要Spring與Hibernate集成,當然就添加啦)
    Spring2.0 J2EE Library
    Spring2.0 Web Libraries
    暫時就只添加這5個
    Copy checked Library contents to project folder 選上,這樣就可以將庫添加到工程內,否則這個工程編譯的時候會引用本機的文件系統(tǒng)內的庫,工程轉移到其它機器就需要重新將每個包改對路徑,當然如果只需要本機開發(fā)的就不用copy啦。
    next->
    b).new applicationContext.xml 將路徑改為在WebRoot/WEB-INF下面,其實放在src下也行,但是工程編譯的時候將src下的東西編譯到WebRoot/WEB-INF下的classes目錄下,配置applicationContext路徑的時候就相應修改就行。
    finish->

    3.建立數據庫連接


    菜單Wiindows-->Open Perspective-->MyEclipse Database Explorer
    DB Browser中右鍵-->new,新建一個數據庫連接,打開一個對話框
    Driver template 選擇MySQL connector/J(可以不選,選著只是為了下面顯示出連接字符串的模板,讓不熟悉的人可以照這模式來填)
    Driver name:任意,用于標識這個連接,對我們工程沒有任何關系的。
    Connection URL:jdbc:mysql://localhost:3306/ssh (意思是本地地址IP的數據庫ssh,如果是遠程數據庫,請寫遠程地址,當然要確保遠程地址是可達的,例如防火墻阻隔等)
    User name:你的數據庫登錄名
    password:登錄名密碼
    Add Jars-->打開對話框尋找本地文件系統(tǒng)的MySQL連接驅動包,(提供下載/Files/jianyue/mysqlConnector.rar,解壓取里面那個jar)
    save password 打上鉤,方便點
    可以test 測試一下是否能夠連接

    這步驟的實際意義是在MyEclipse IDE工具上建立一個數據庫連接,來管理,對于我們工程其實沒有一點影響的,只是這個連接,以后引用或者管理的時候就較方便。
    finish-->

    4.添加Hibernate支持


    切換回原來的視圖,其實有多種切換視圖的方法,快捷鍵等,自己學吧。
    a).工程名上右鍵-->MyEclipse-->add Hibernate Capabilities
    同樣Copy checked Library Jars to project folder and add to build-path

    next-->
    b).選擇Spring configuration file
    next->
    c).因為原來已經有一個spring配置文件,所以就選擇Existing Spring configuration file
    sessionFactory ID:sessionFactory(可以自定義名稱,使用慣例的吧,隨便啦)
    next-->
    d).DB Driver  選擇在MyEclipse DB Explorer中建立的數據庫連接名稱(這里就體現到同一個IDE工具的好處,方便地引用那個連接的配置)
    Bean ID:dataSource(又是慣例的名稱)
    next-->
    取消掉create SessionFactory class
    finish-->

    5.添加Struts2.0支持


    由于MyEclipse沒有集成Struts2.0的包,所以自己添加Struts的五個包


    由于空間有限,可以上網搜索一個叫struts2-blank的工程包,war文件也可以,可以用rar打開,取其里面lib下的這五個包
    struts暫且只添加這5個包,多包反而會導致沖突(后面有說),至于struts想集成meshsite等的話,就另外加包吧。

    順便將原來的那個mysqlConnector的jar包也拿來吧,一起拖到WEB-INF/lib目錄下,可以直接拖到IDE工具上的工程瀏覽框(即Package視圖)的lib圖標上,MyEclipse支持拖放功能。
    還有commons-pool-1.4.jar和commons-dbcp-1.2.2.jar和struts2-spring-plugin-2.0.6.jar也是必須自己加進lib中的
    如果有包重復的話,覆蓋就行。

    6.配置文件web.xml詳解


    web.xml

    struts的過濾器配置是有順序的:
    按照Struts2的API,filter的順序是
    struts-cleanup filter
    SiteMesh filter
    FilterDispatcher
    如果需要配置字符轉換過濾器的話,那就安排在FilterDispatcher之前

    spring配置文件可以多個,從/WEB-INF/applicationContext*.xml的通配符就可以看出來了

    7.struts.xml詳解


    在src下建立一個struts.xml的文件:
    struts.xml


    8.applicationContext.xml詳解


    applicationContext.xml

    applicationContextUser.xml

    9.構造pojo與dao


    先建好包結構如下:

    a).切換到MyEclipse DB Explorer視圖->雙擊你建的那個連接來打開數據庫連接->Table下user表右鍵->Hibernate Reverse Engineering->

    ->finish:這樣會產生三個文件,數據庫user映射的pojo實體類對象User.java,數據庫訪問對象UserDAO.java,數據庫映射文件User.hbm.xml
    將User.java 與 hbm文件移到pojo包下
    上面搞錯了點,將UserDAO移到dao.hibernate包下吧
    這里的東西涉及到applicationContext.xml的改變,沒有關系,前面已經詳盡講解了各xml文件的意義。
    UserDAO已經自動生成很多數據庫訪問函數,從字面上可以看出是什么意思,大部分函數是不一定用到的,自己想使用的方法寫在下面說的接口上,再實現他吧。
    我們?yōu)槠鋵憘€UserDAO接口,在dao包下編寫一個IUserDAO.java的接口,并且使UserDAO實現這個接口

    10.編寫服務


    參照代碼吧!

    11.編寫action




    12.編寫頁面


    final我遇到的異常
    appllicationConotext.xml中的org.apache.commons.dbcp.BasicDataSource not found錯誤,可能是沒有添加commons-pool.jar和commons-dbcp.jar和commons-collections.jar

    Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: entity class not found: ssh.dao.User
    因為自己在移動產生的User.java類的時候,忘記修改User.hbm.xml文件的映射實體類,需要改成
     <class name="ssh.pojo.User" table="user" catalog="ssh">

    Action class [loginAction] not found - action - file:/D:/workspace2/.metadata/.plugins/com.genuitec.eclipse.easie.tomcat.myeclipse/tomcat/webapps/ssh/WEB-INF/classes/struts.xml
    因為login action的class我指定為loginAction,所以在spring中的login Bean的id="loginAction"來對應,但是我卻寫成了login,所以找不到。

    org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: model near line 1, column 56 [from ssh.pojo.User as model where model.name= adminand model.password= admin]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: model near line 1, column 56 [from ssh.pojo.User as model where model.name= adminand model.password= admin]
    可以從from字符串中看出,我忘記寫空格了。

    javax.servlet.ServletException: org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: Cannot open connection; uncategorized SQLException for SQL [???]; SQL state [null]; error code [0]; Cannot create PoolableConnectionFactory (Unknown database 'ssh1'); nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Unknown database 'ssh1')
    因為spring中的dataSource的  <property name="url" value="jdbc:mysql://localhost:3306/ssh"></property>,我原來指定了ssh1的數據庫,我并沒有創(chuàng)建這個數據,所以改回ssh

    javax.servlet.ServletException: org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
    這個是因為我忘記把sql字符串中的值用''括起來,例如:
    from ssh.pojo.User as model where model.name = admin and model.password = admin
    應該要變成:
    from ssh.pojo.User as model where model.name = 'admin' and model.password = 'admin'
    自己改UserDAO中的字符串吧。

    No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath:....
    如果有這個問題的話,那就參看:http://www.tkk7.com/jianyue/archive/2008/08/28/225415.html

    java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
    java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
    java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
    CGLIB Enhancement failed
    主要是hibernate與spring包沖突問題,可能有多種情況,都參照一下吧,但是最關鍵的原則是一個同樣功能的包,
    不要將多個版本都放進來。根據這個原則,自己也能夠知道應該刪去什么包。
    解決方案:參看:http://www.tkk7.com/jianyue/archive/2008/08/28/225246.html

    No configuration found for the specified action:  in namespace:
    那么一定是action配置得不對,不是包的問題,自己詳細參照一下我的那份action配置說明。


    代碼工程/Files/jianyue/ssh.rar

    由于空間有限,去掉了包。包的列表如下:


    使用QQ中轉站的工程資料:http://xianexs.mail.qq.com/cgi-bin/downloadfilepart/svrid264/ssh.rar?svrid=264&fid=43c7ea2ec48f0ab1df6cf19be93fd207f24f786949adb4ba&&txf_fid=64f2ea7b5eab7021495c997ac5512b1e1556cd97&&txf_sid=aaf1d1ab2dd1c1b7301c3909f4df304167a7e99e有時間限制,盡快下。

    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精华国产精华精华液网站| 国产成人午夜精品免费视频| 亚洲AV日韩AV永久无码色欲| 噜噜噜亚洲色成人网站∨| 国产日韩成人亚洲丁香婷婷| 在线观看永久免费视频网站| 最近免费中文字幕mv在线电影| 中国在线观看免费的www| 在线视频亚洲一区| 欧洲 亚洲 国产图片综合| 91情国产l精品国产亚洲区| 亚洲一区二区三区影院| 亚洲国产精品专区在线观看| 麻豆国产人免费人成免费视频| 亚洲黄色免费网站| 一级毛片在线免费观看| 男女拍拍拍免费视频网站| 免费夜色污私人影院网站| 亚洲日本在线电影| 在线精品亚洲一区二区| 亚洲人成在线中文字幕| 8x网站免费入口在线观看| 三上悠亚在线观看免费| 久久一区二区三区免费| 国产成人无码免费网站| 永久免费精品影视网站| 又大又硬又粗又黄的视频免费看 | 日本免费一区二区三区四区五六区| 人妖系列免费网站观看| 日产久久强奸免费的看| 免费大片av手机看片高清| 无套内谢孕妇毛片免费看看| 免费无码又爽又黄又刺激网站| 免费高清A级毛片在线播放| 永久免费精品影视网站| 中文字幕免费在线看| 免费看搞黄视频网站| 伊人久久免费视频| 亚洲视频免费在线播放| 免费在线观看的网站| 日本一区免费电影|