Hibernate學習(1)------Hibernate簡單配置應用
來源:程序員人生 發布時間:2016-12-05 13:19:57 閱讀次數:3860次
1、Hibernate的配置與簡單使用
(1)打開Myeclipse 新建1個java項目
(2)在項目下新建1個文件夾 lib,將Hibernate必要的jar包和JDBC的jar包拖動到lib中,并添加路徑。


(3)在\hibernate文件夾\project\etc下,找到hibernate.cfg.xml這個配置文件,拖動到java項目的src下

(4)打開數據庫,在數據庫中建立1個表,各種方式都行。

(5)先建立兩個類。1個名叫User 1個名叫App 。先編寫User的信息,對應于數據庫中的表,其中重寫了1下toString,為了輸出顯示1下。
App類的信息在后面編寫,主要功能是實現對數據庫的存取信息。
package cn.edu.ldu;
public class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "id="+id +" name="+name;
}
}
(6)雙擊打開src下的hibernate.cfg.xml文件,會有1個正告,疏忽它。然后找到代碼區

在代碼區里將信息改成以下代碼:
<!--
~ Hibernate, Relational Persistence for Idiomatic Java
~
~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl⑵.1.html>.
-->
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration⑶.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 是1個類的全名 -->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!--
數據庫連接信息 -->
<property name="connection.url">jdbc:mysql:///hibernate</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- 導入映照配置文件 -->
<mapping resource="org/hibernate/test/legacy/Simple.hbm.xml"/>
</session-factory>
</hibernate-configuration>
在這里解釋1下這些配置的代碼:
dialect : 方言,是為了告知它你用的是甚么數據庫。中間填寫的是類的全名。在Myeclipse中 Ctrl+Shift + t 調出Open Type , 查找 mysql*dia,雙擊打開MySQL5Dialect,復制類的全名到方言。


下面的4條是數據庫的連接信息:url 、 driver_class 、username 、password
url : jdbc:mysql:/// + 數據庫名 ( /// 代碼本機 localhost )
driver_class : 是固定的,和JDBC連接1樣
username 、 password : 是自己的數據庫用戶名和密碼
<mapping>的映照信息我還沒有改,在下面編輯映照文件的。
(7)編寫映照文件:
在下載的hibernate包下搜索" .hbm.xml "結尾的文件,隨意復制1個到src的User類所在的包下,然后改名為User.hbm.xml ,然后雙擊打開選擇代碼區。

將代碼改成以下:
<?xml version="1.0" encoding="WINDOWS⑴251"?>
<!--
~ Hibernate, Relational Persistence for Idiomatic Java
~
~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl⑵.1.html>.
-->
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://www.hibernate.org/dtd/hibernate-mapping⑶.0.dtd">
<hibernate-mapping>
<!-- no name attribute is specified for dynamic models -->
<class name = "cn.edu.ldu.User">
<id name="id" type = "int" column = "id">
<generator class="native" />
</id>
<property name="name" type="string" column="name"/>
</class>
</hibernate-mapping>
id 是主鍵配置 ,property 是其他屬性配置,是根據
數據庫映照過來的。
右鍵映照文件,獲得全名

然后粘貼到hibernate.cfg.xml 配置文件中的mapping中,刪掉src前面的路徑
<mapping resource="cn/edu/ldu/User.hbm.xml"/>
到這里,hibernate的配置基本上就完成了。下面是調用了。
(8)為了下面的測試方便,這里引入1個jar包,junit⑷.10.jar 可以不用編寫main函數,從而對函數進行測試
App類的編寫以下:
package cn.edu.ldu;
import java.util.Properties;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
public class App {
/**
* @param args
*/
private static SessionFactory sessionFactory;
static{
Configuration cfg = new Configuration();
cfg.configure("hibernate.cfg.xml");
sessionFactory = cfg.buildSessionFactory();
}
@Test
public void testSave() throws Exception {
User user = new User();
user.setName("zhangsan");
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.save(user); //保存
tx.commit();
session.close();
}
@Test
public void testGet() throws Exception {
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
User user = (User)session.get(User.class, 1); //從
數據庫中獲得id為1的User
tx.commit();
session.close();
System.out.println(user); //顯示信息
}
}


已添加成功,可以在數據庫中查詢,testGet方法是用相同。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈