Hibernate学习笔记--第一个Hibernate框架程序
一般使用集成開發(fā)環(huán)境是,把所需的類庫添加到項(xiàng)目屬性的庫路徑中,開發(fā)工具在部署時(shí)會(huì)自動(dòng)復(fù)制所需要的類包到WEB-INF\lib目錄下
MyEclipse中:
創(chuàng)建項(xiàng)目,右擊項(xiàng)目->myeclipse->Project Facets->Install Hibernate Facets即可
程序結(jié)構(gòu)
?
1.建表
本例選擇Sql Server2008作為數(shù)據(jù)庫 在MySQL中新增一個(gè)ztest數(shù)據(jù)庫,建立?CUSTOMER 表
CREATE TABLE CUSTOMER (CID INTEGER NOT NULL PRIMARY KEY, USERNAME VARCHAR(12) NOT NULL, PASSWORD VARCHAR(12) );?
2.創(chuàng)建PO對(duì)象
補(bǔ)充:POJO是Plain OrdinaryJava Object的縮寫,它通指沒有使用Entity Beans的普通java對(duì)象,可以把POJO作為支持業(yè)務(wù)邏輯的協(xié)助類。 POJO實(shí)質(zhì)上可以理解為簡(jiǎn)單的實(shí)體類,顧名思義POJO類的作用是方便程序員使用數(shù)據(jù)庫中的數(shù)據(jù)表 ? Customer.java package com.session;public class Customer { private int id;private String username;private String password;public int getId() {return id;}public String getPassword() {return password;}public String getUsername() {return username;}public void setId(int id) {this.id = id;}public void setPassword(String password) {this.password = password;}public void setUsername(String username) {this.username = username;} }?
3.XML映像文件
為了告訴Hibernate對(duì)象如何映像至數(shù)據(jù)庫表格,需要編寫一個(gè)XML映射文件,命名為Customer.hbm.xml
與對(duì)應(yīng)的表名要一致,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><class name="com.session.Customer" table="CUSTOMER"><id name="id" column="CID" type="java.lang.Integer"><generator class="increment" /></id><property name="username" column="USERNAME" type="java.lang.String"/><property name="password" column="PASSWORD" type="java.lang.String"/></class> </hibernate-mapping>注意:
class name =java文件完整地址+文件名
table=數(shù)據(jù)庫中建的表名
name為java文件中的屬性,column為數(shù)據(jù)庫中的屬性,二者對(duì)應(yīng)。不要忘了添加type,否則可能出錯(cuò)?
?
4.定義Hibernate配置文件
主要是進(jìn)行SessionFactory配置,Hibernate可以使用XML或?qū)傩晕募磉M(jìn)行配置,下面是使用XML進(jìn)行配置
配置文件名為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><!-- sql Server數(shù)據(jù)庫驅(qū)動(dòng) --> <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <!-- sql Server數(shù)據(jù)庫名稱 --> <property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433; DatabaseName=ztest</property> <!-- 數(shù)據(jù)庫的登陸用戶名 --> <property name="hibernate.connection.username">sa</property> <!-- 數(shù)據(jù)庫的登陸密碼 --> <property name="hibernate.connection.password">123</property> <mapping resource ="com/session/Customer.hbm.xml"/><!-- 注意:必須是“/”而不能是“.”。 --></session-factory> </hibernate-configuration>注意:這個(gè)文件的文件頭和3中的文件頭是不一樣的,另外注意第三行的版本號(hào)別寫錯(cuò)了
另外不同的數(shù)據(jù)庫驅(qū)動(dòng)也不同
?
5.編寫應(yīng)用程序
下面為一個(gè)演示程序
package com.session;import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration;public class Test {public static void main(String[] args) {try {SessionFactory sf =new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Transaction tx = session.beginTransaction();for (int i = 0; i < 200; i++) {Customer customer = new Customer();customer.setUsername("customer" + i);customer.setPassword("customer");session.save(customer);}tx.commit();session.close();} catch (HibernateException e) {e.printStackTrace();}} }?
編譯執(zhí)行Test.java
在Sql Server2008中執(zhí)行查詢語句: Select * from CUSTOMER
結(jié)果
?
另附鏈接 2004年的一篇文章:?http://blog.csdn.net/doodoofish/article/details/43207/
好的技術(shù)會(huì)被不斷發(fā)展完善。
轉(zhuǎn)載于:https://www.cnblogs.com/gnivor/p/4326049.html
總結(jié)
以上是生活随笔為你收集整理的Hibernate学习笔记--第一个Hibernate框架程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用DirectX截屏
- 下一篇: 3.13题目思路