hibernate整合,spring整合hibernate
hibernate是一個優秀的持久化架構負責簡化將對象儲存到資料庫中,或從資料庫中讀取資料並封裝到對象的工作。hibernate通過簡單配置和編碼即可替代jdbc繁瑣的程式碼。
下面是整合hibernate的具體步驟
下載hibernate的.jar包並在項目中進行引用
<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!-- 資料連線配置 --> <property name="connection.driver_class">oracle.jdbc.OracleDriver</property><!--驅動類的全名稱--> <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><!--資料庫連接的url--> <property name="connection.username">WZ</property><!--使用者名稱--> <property name="connection.password">*****</property><!--密碼--> <!-- 配置SQL方言 --> <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> <!-- 設定Session上下文--> <property name="current_session_context_class">thread</property> <!-- 格式化sql --> <property name="format_sql"> true</property> <!-- 在控制台顯示hibernate自動產生的sql語句 --> <property name="show_sql">true</property> <!--格式換在控制台顯示的sql語句--> <property name="hbm2ddl.auto"> update </property> <!--資料實體類的設定檔的引用--> <mapping resource="xxx.hbm.xml" /> </session-factory></hibernate-configuration>
建立並編寫實體類的設定檔
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="student_entity"> <class name="類名" table="表名"> 主鍵類配置 <id name="sid" column="stuno"> <generator class="sequence"> <param name="sequence"> SQL_ID </param> </generator> </id>屬性配置 <property name="sage"/> <property name="name" column="stuname"/> </class></hibernate-mapping>
其中:<generator class=””/>配置主鍵的建置原則其取值如下:
increment:對類型為long、short、int類型的主鍵,已自動成長的方式產生主鍵的值,增量為1
sequence:對於支援序列的資料庫可使用序列來給主鍵賦值其通過param子項目來指定序列名
identity:對支援識別欄位的資料庫可使用該策略。但需要在資料控的該列設定為識別欄位
native:由hibernate自動判斷使用何種策略
assigned:主鍵有應用程式產生,hibernate無需參與
在實體類的設定檔編寫完成之後還要在hibernate.cfg.xml檔案中添加該設定檔的引用
Configuration cfgt=new Configuration().configure();//建立設定物件將hibernate.cfg.xml檔案中的資訊封裝到cfgt對象中 SessionFactory factory = cfgt.buildSessionFactory();//建立命令工廠 Session session = factory.openSession();//開啟命令對象 Transaction tsc = session.beginTransaction();//開始事務 session.save(stu);將stu中的資訊儲存到資料庫中(stu為已建立的實體類對象) tsc.commit();//提交事務 session.close();//關閉命令對象