Hibernate JPA的使用

今天學習了Hibernate JPA ,也就是元註解吧,現在總結一下:
hibernate.cfg.xml 的配置:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>

<session-factory>
<!-- 顯示實際操作數據庫時的SQL -->
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<!--<property name="dialect">org.hibernate.dialect.OracleDialect</property>-->
<property name="connection.url">jdbc:oracle:thin:@192.9.206.168:1521:orcl</property>
<property name="connection.username">omsystem</property>
<property name="connection.password">tj123456</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="myeclipse.connection.profile">orcl</property>
<!--<mapping resource="Struts2/Dao/TTestUser.hbm.xml"/>-->

<!-- 實體類 -->
<mapping class="Struts2.Dao.d.TTestUser"/>
</session-factory>
</hibernate-configuration>


使用元註解就省去了TTestUser.hbm.xml這種文件的配置了,
只需要在JavaBean中加註解就可以了:
TTestUser.java 這個文件可以通過MyEclipse自動生成:
package Struts2.Dao.d;

import javax.persistence.Column;

/**
* TTestUser entity. @author MyEclipse Persistence Tools
*/
@SuppressWarnings("serial")
@Entity
@Table(name = "T_TEST_USER")
public class TTestUser implements java.io.Serializable {
// Fields
private String id;
private String name;
private String pwd;
private String sex;
// Constructors

/** default constructor */
public TTestUser() {
}

/** minimal constructor */
public TTestUser(String id) {
this.id = id;
}

/** full constructor */
public TTestUser(String id, String name, String pwd, String sex) {
this.id = id;
this.name = name;
this.pwd = pwd;
this.sex = sex;
}

// Property accessors
@Id
@Column(name = "ID", unique = true, nullable = false, length = 20)
public String getId() {
return this.id;
}

public void setId(String id) {
this.id = id;
}

@Column(name = "NAME", length = 30)
public String getName() {
return this.name;
}

public void setName(String name) {
this.name = name;
}

@Column(name = "PWD", length = 30)
public String getPwd() {
return this.pwd;
}

public void setPwd(String pwd) {
this.pwd = pwd;
}

@Column(name = "SEX", length = 20)
public String getSex() {
return this.sex;
}

public void setSex(String sex) {
this.sex = sex;
}

}


幫助類HibernateDao.java 文件:
package Struts2.Util;

import org.hibernate.HibernateException;

public class HibernateDao {
protected SessionFactory sessionFactory;// 會話工廠,用於創建會話
protected Session session;// hibernate會話
protected Transaction transaction; // hiberante事務


private static AnnotationConfiguration configuration = new AnnotationConfiguration();


public HibernateDao() throws HibernateException {
this.initHibernate();
}

// 幫助方法
protected void initHibernate() throws HibernateException {

// 裝載配置,構造SessionFactory對象
//sessionFactory = new Configuration().configure().buildSessionFactory();
sessionFactory = configuration.configure().buildSessionFactory();
}

/**
*開始一個hibernate事務
*/
protected void beginTransaction() throws HibernateException {
session = sessionFactory.openSession();
transaction = session.beginTransaction();
}

/**
*結束一個hibernate事務。
*/
protected void endTransaction(boolean commit) throws HibernateException {

if (commit) {
transaction.commit();
} else {
// 如果是隻讀的操作,不需要commit這個事務。
transaction.rollback();
}
session.close();
}

}
這個文件主要注意的是 裝載配置,構造SessionFactory對象//sessionFactory = new Configuration().configure().buildSessionFactory();
需要修改爲
private static AnnotationConfiguration configuration = new AnnotationConfiguration();
sessionFactory = configuration.configure().buildSessionFactory();
最後開始測試吧:
package Struts2.Action;

import Struts2.Dao.d.TTestUser;
import Struts2.Server.TestUserService;

public class TestUserAction {
public static void main(String[] args){
TestUserService tu = new TestUserService();
TTestUser tuser= new TTestUser();
tuser.setId("3");
tuser.setName("劉利明3");
tuser.setPwd("1233");
tuser.setSex("男3");
tu.addUser(tuser);
}

}



到這裏就結束了,要導入AnnotationConfiguration 的jar包。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章