1. 向lib中導入jar包:
slf4j-api-1.6.1.jar、mysql-connector-java-5.1.5-bin.jar、jta-1.1.jar、javassist-3.12.0.GA.jar、hibernate3.jar、dom4j-1.6.1.jar、antlr-2.7.6.jar 、
hibernate-jpa-2.0-api-1.0.0.Final.jar、commons-collections-3.1.jar
並將這些jar包應用到Referenced Libraries中。
2. 在根目錄下建立hibernate.cfg.xml文件並配置信息:
<!-- 配置數據庫信息 -->
<property name="dialect">//配置方言
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">//配置url
jdbc:mysql://localhost:3306/hibernate
</property>
<property name="connection.driver_class">//配置JDBC驅動
com.mysql.jdbc.Driver
</property>
<property name="connection.username">root</property>//用戶名
<property name="connection.password">mysqldbms</property>//密碼
<!-- 顯示生成的SQL語句 -->
<property name="hibernate.show_sql">true</property>
<!-- 導入映射文件 -->
<mapping resource="it/cast/User.hbm.xml" />
3. 在java類的包下建立User.hbm.xml文件並配置:
<class name="JavaClassName" table="tableName">
<!-- id元素用於映射主鍵 -->
<id name="id" type="int" column="id">
<!-- native:使用數據庫的自動增長策略 -->
<generator class="native" />
</id>
<property name="name" type="string" column="name" />
</class>
4. 在User類中建兩個屬性id和name,並建立起get和set方法:
public class User {
private Integer id;
private String name;
// 屬性爲集合類型,生命並實例化,實例化後,在其它類中就可以直接調用了
private Set<String> addressSet = new HashSet<String>();
public Integer getId() {
return id;
}
public Set<String> getAddressSet() {
return addressSet;
}
public void setAddressSet(Set<String> addressSet) {
this.addressSet = addressSet;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 重寫toString函數
public String toString() {
return "User [id=" + id + ", name=" + name + ", addressSet="
+ addressSet + "]";
}
}
5.封裝一個專門生成session的類:
/**
* 用來生成session的封裝類
* @author A_shun
*/
public class HibernateUtils {
// SessionFactory全局只需要一個
private static SessionFactory sessionFactory;
//session全局只需一個
private static Session session = null;
static {
Configuration cfg = new Configuration();
cfg.configure("hibernate.cfg.xml");// 讀取指定地址的文件
//建立sessionFactory工廠
sessionFactory = cfg.buildSessionFactory();
session = sessionFactory.openSession();//開啓一個session
}
/**
* 獲取全局唯一的session
*/
public static Session getSession() {
return session;
}
}
6. 新建持久化層類,其中代碼如下:
@Test
// 保存屬性的方法
public void testSave() throws Exception {
User user = new User();
user.setName("zhangSan");
// 打開一個新的Session
Session session = sessionFactory.openSession();
// 開始事務
Transaction tx = (Transaction) session.beginTransaction();
session.save(user);//保存對象
tx.commit();// 提交事務
session.close();// 釋放Session佔用的內存
}
@Test
// 獲取屬性的方法
public void testGet() {
// 打開一個新的Session
Session session = sessionFactory.openSession();
// 開始事務
Transaction tx = (Transaction) session.beginTransaction();
//取得user對象的第一個屬性
User user = (User) session.get(User.class, 1);
System.out.println(user);//輸出user對象
tx.commit();//提交事務
session.close();//釋放session佔用的內存
}