hibernate是一個優秀的持久化框架負責簡化將對象保存到數據庫中,或從數據庫中讀取數據並封裝到對象的工作。hibernate通過簡單配置和編碼即可替代jdbc繁瑣的程序代碼。
下面是集成hibernate的具體步驟
<?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();//關閉命令對象