您好,登錄后才能下訂單哦!
使用hibernate框架需要導(dǎo)入的jar包:
antlr-2.7.6
backport-util-concurrent
c3p0-0.9.1
commons-collections-3.1 apache集合幫助的包
commons-logging-1.1.1日志
dom4j-1.6.1解析XML
ehcache-1.5.0緩存框架
hibernate3hibernate核心包
javassist-3.9.0.GA代理模式工具包,解決懶加載問題
jta-1.1
log4j日志
mysql-connector-java-5.1.10-bin數(shù)據(jù)庫連接
slf4j-api-1.5.8
slf4j-log4j12
Person-持久化類
/** * 對象的序列化的作用:讓對象在網(wǎng)絡(luò)上傳輸,以二進制的形式傳輸 * Serializable標示接口 */ public class Person implements Serializable{ private Long pid; private String pname; private String psex; set,get方法 }
映射文件 Person.hbm.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!-- 用來描述一個持久化類 name 類的全名 table 對應(yīng)的表名,可以不寫 默認值和類名一樣 catalog 數(shù)據(jù)庫的名稱 一般不寫 --> <class name="cn.itcat.domain.Person"> <!-- 標示屬性 和數(shù)據(jù)庫中的主鍵對應(yīng) name 屬性的名稱 column 列的名稱 length 表中字段長度 --> <id name="pid" column="pid" length="200" type="java.lang.Long"> <!-- 主鍵的產(chǎn)生器 就該告訴hibernate容器用什么樣的方式產(chǎn)生主鍵--> <generator class="increment"></generator> </id> <!-- 描述一般屬性 --> <property name="pname" column="pname" length="20" type="string"></property> <property name="psex" column="psex" length="10" type="java.lang.String"></property> </class> </hibernate-mapping>
配置文件 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"> <hibernate-configuration> <!--一個session-factory只能連接一個數(shù)據(jù)庫--> <session-factory> <!--數(shù)據(jù)庫的用戶名--> <property name="connection.username">root</property> <!--密碼--> <property name="connection.password">root</property> <!-- url--> <property name="connection.url"> jdbc:mysql://localhost:3306/hibernateDay01 </property> <!-- "hbm2ddl.auto"作用:根據(jù)持久化類和映射文件生成表 validate 只校驗 create-drop啟動hibernate創(chuàng)建,關(guān)閉hibernate銷毀表 create 啟動hibernate容器生成表 update 啟動hibernate容器時檢查持久化類和表對不對應(yīng),如果不對應(yīng),創(chuàng)建表,對應(yīng)的話,驗證。 --> <property name="hbm2ddl.auto">update</property> <!-- 顯示hibernate內(nèi)部生成的sql語句 --> <property name="show_sql">true</property> <mapping resource="cn/itcat/domain/Person.hbm.xml" /> </session-factory> </hibernate-configuration>
測試
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.junit.Test; public class PersonTest { @Test public void testCreateTable(){ //測試數(shù)據(jù)庫中會不會根據(jù)持久化類和映射文件生成表 Configuration configuration = new Configuration(); configuration.configure(); //加載配置文件1、該配置文件必須放在classpath下2、名稱必須為hibernate.cfg.xml configuration.buildSessionFactory(); } @Test public void testSavePerson(){ Configuration configuration = new Configuration(); configuration.configure(); SessionFactory factory = configuration.buildSessionFactory(); Session session = factory.openSession(); Transaction transaction = session.beginTransaction(); Person person = new Person(); person.setPname("班長2"); person.setPsex("女"); /** * 參數(shù)必須持久化對象 */ session.save(person); transaction.commit(); session.close(); } }
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。