Struts2+Spring2.5+Hibernate3.2实例教程(2-6)V0.1

3.    数据访问层采用JPA
1) jar准备
Hibernate EntityManager
下载页面:
http://hibernate.org/30.html
下载链接:
http://sourceforge.net/project/showfiles.php?group_id=40712&package_id=156160
下载的文件hibernate-entitymanager-3.4.0.GA.zip放在D:\JavaTools下
解压后将
    D:\JavaTools\hibernate-entitymanager-3.4.0.GA\hibernate-entitymanager.jar
D:\JavaTools\hibernate-entitymanager-3.4.0.GA\lib\javassist.jar
D:\JavaTools\hibernate-entitymanager-3.4.0.GA\lib\ejb3-persistence.jar
D:\JavaTools\hibernate-entitymanager-3.4.0.GA\lib\hibernate-annotations.jar
D:\JavaTools\hibernate-entitymanager-3.4.0.GA\lib\hibernate-commons-annotations.jar
D:\JavaTools\hibernate-entitymanager-3.4.0.GA\lib\hibernate-core.jar
D:\JavaTools\hibernate-entitymanager-3.4.0.GA\lib\ slf4j-api.jar
D:\JavaTools\hibernate-entitymanager-3.4.0.GA\lib\test\slf4j-log4j12.jar
D:\JavaTools\hibernate-entitymanager-3.4.0.GA\lib\test\commons-collections.jar
复制到/WEB-INF/lib
然后给各个文件改名,加上版本号,即javassist-3.4.jar
ejb3-persistence-1.0.2GA.jar
hibernate-annotations-3.4.0GA.jar
hibernate-commons-annotations-3.1.0GA.jar
hibernate-core-3.3.0SP1.jar
hibernate-entitymanager-3.4.0GA.jar
版本号可以在jar文件中的META-INF\MANIFEST.MF文件中找到。然后将同名的版本较低的jar删除,选中项目名称,按F5刷新,这时可能会有错误提示,因为旧的jar被删除了,这时需要重新添加jar,这一操作过程以后不再重复说明。
2)Class文件修改
2.1)在Package Explorer树形列表中选中Member.java文件,点右键,Refactor-->Move…-->Create Package…,包名com.albertsong.bitrac.model,Finish,OK。
通过以上步骤,我们已经使用Eclipse的重构功能移动了Member.java的位置。
2.2)在Java Build Path中加入ejb3-persistence-1.0.2GA.jar,编译使用了JPA的类时要用到。
2.3)修改后的Member.java

  1. package com . albertsong . bitrac . model ;
  2.  
  3. import   java . util . Date ;
  4.  
  5. import   javax . persistence . Entity ;
  6. import   javax . persistence . GeneratedValue ;
  7. import   javax . persistence . Id ;
  8. import   javax . persistence . Table ;
  9.  
  10. @ Entity
  11. @ Table ( name = " BT_Member " )
  12. public   class Member {
  13.     @ Id
  14.     @ GeneratedValue
  15.     private   int id ;
  16.     private   short grade ;
  17.     private   String username ;
  18.     private   String password ;
  19.     private   String validate ;
  20.     private   boolean conserve ;
  21.     private   String contact ;
  22.     private   String picture ;
  23.     private   String explain ;
  24.     private   int numPost ;
  25.     private   int numComm ;
  26.     private   int numFile ;
  27.     private   Date publish ;
  28.     private   String address ;
  29.     public   int getId () {
  30.         return   id ;
  31.     }
  32.     public   void setId ( int id ) {
  33.         this . id = id ;
  34.     }
  35.     public   short getGrade () {
  36.         return   grade ;
  37.     }
  38.     public   void setGrade ( short grade ) {
  39.         this . grade = grade ;
  40.     }
  41.     public   String getUsername () {
  42.         return   username ;
  43.     }
  44.     public   void setUsername ( String username ) {
  45.         this . username = username ;
  46.     }
  47.     public   String getPassword () {
  48.         return   password ;
  49.     }
  50.     public   void setPassword ( String password ) {
  51.         this . password = password ;
  52.     }
  53.     public   String getValidate () {
  54.         return   validate ;
  55.     }
  56.     public   void setValidate ( String validate ) {
  57.         this . validate = validate ;
  58.     }
  59.     public   boolean isConserve () {
  60.         return   conserve ;
  61.     }
  62.     public   void setConserve ( boolean conserve ) {
  63.         this . conserve = conserve ;
  64.     }
  65.     public   String getContact () {
  66.         return   contact ;
  67.     }
  68.     public   void setContact ( String contact ) {
  69.         this . contact = contact ;
  70.     }
  71.     public   String getPicture () {
  72.         return   picture ;
  73.     }
  74.     public   void setPicture ( String picture ) {
  75.         this . picture = picture ;
  76.     }
  77.     public   String getExplain () {
  78.         return   explain ;
  79.     }
  80.     public   void setExplain ( String explain ) {
  81.         this . explain = explain ;
  82.     }
  83.     public   int getNumPost () {
  84.         return   numPost ;
  85.     }
  86.     public   void setNumPost ( int numPost ) {
  87.         this . numPost = numPost ;
  88.     }
  89.     public   int getNumComm () {
  90.         return   numComm ;
  91.     }
  92.     public   void setNumComm ( int numComm ) {
  93.         this . numComm = numComm ;
  94.     }
  95.     public   int getNumFile () {
  96.         return   numFile ;
  97.     }
  98.     public   void setNumFile ( int numFile ) {
  99.         this . numFile = numFile ;
  100.     }
  101.     public   Date getPublish () {
  102.         return   publish ;
  103.     }
  104.     public   void setPublish ( Date publish ) {
  105.         this . publish = publish ;
  106.     }
  107.     public   String getAddress () {
  108.         return   address ;
  109.     }
  110.     public   void setAddress ( String address ) {
  111.         this . address = address ;
  112.     }  
  113. }


2.4)修改后的MemberDaoImpl.java

  1. package com . albertsong . bitrac . dao ;
  2.  
  3. import   java . util . List ;
  4.  
  5. import   javax . persistence . EntityManager ;
  6. import   javax . persistence . PersistenceContext ;
  7. import   javax . persistence . Query ;
  8.  
  9. import   org . apache . commons . logging . Log ;
  10. import   org . apache . commons . logging . LogFactory ;
  11. import   org . springframework . transaction . annotation . Transactional ;
  12.  
  13. @ Transactional
  14. public   class MemberDaoImpl implements MemberDao {
  15.    
  16.     private   Log log = LogFactory . getLog ( MemberDaoImpl . class ) ;
  17.    
  18.     private   EntityManager em ;
  19.    
  20.     @ PersistenceContext
  21.     public   void setEntityManager ( EntityManager em ) {
  22.         this . em = em ;
  23.     }
  24.    
  25.     private   EntityManager getEntityManager (){
  26.         return   em ;
  27.     }
  28.  
  29.     @ SuppressWarnings ( " unchecked " )
  30.     @ Override
  31.     public   boolean exist ( String username , String password ) {
  32.         StringBuffer   buffer = new StringBuffer ( " select m from Member m " ) ;
  33.         buffer . append ( " where m.username=' " ) . append ( username ) . append ( " ' " ) ;
  34.         buffer . append ( " and m.password=MD5(' " ) . append ( password ) . append ( " ') " ) ;
  35.         log . debug ( buffer . toString ()) ;
  36.         Query   query = getEntityManager () . createQuery ( buffer . toString ()) ;
  37.         List   ls = query . getResultList () ;
  38.         return   ls . size () == 1 ? true : false ;
  39.     }
  40.  
  41. }

你可能感兴趣的:(apache,eclipse,Hibernate,PHP,jpa)