准备:建表
用MySQL在名为STMS数据库中建表person

在MyEclipse中建连接数据库的连接名为MySQL_localhost,在Driver JARS中导入MySQL的驱动程序mysql-connector-java-5.1.6-bin.jar

一.新建名为MySQLHibernate的Web Project
File—new—project—MyEclipse—Java Enterprice Projects—Web Project(Optional Maven Support)
在Project Name中输入MySQLHibernate---点击Finsh完成

1

xmlversion='1.0'encoding='UTF-8'?>
2

DOCTYPEhibernate-configurationPUBLIC
3

"-//Hibernate/HibernateConfigurationDTD3.0//EN"
4

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
5

6

7

<hibernate-configuration>
8

9

<session-factory>
10

11

<propertyname="connection.username">rootproperty>
12

13

14

<propertyname="connection.url">
15

jdbc:mysql://localhost:3306/STMS?useUnicode=true&characterEncoding=GBK
16

property>
17

18

19

<propertyname="dialect">
20

org.hibernate.dialect.MySQLDialect
21

property>
22

23

24

<propertyname="myeclipse.connection.profile">
25

MySql_localhost
26

property>
27

28

29

<propertyname="connection.password">rootproperty>
30

31

32

<propertyname="connection.driver_class">
33

com.mysql.jdbc.Driver
34

property>
35

36

37

<propertyname="show_sql">trueproperty>
38

39

40

<mappingresource="org/lxh/hibernate/demo01/Person.hbm.xml"/>
41

42

session-factory>
43

44

hibernate-configuration>
二:给项目加入Hibernate支持
选中刚刚新建的项目—MyEcplipse—Project Capabilites—Add Hibernate Capabilites

Next—Next—选择连接数据库的连接名—Next--


点击Finash完成
三:建立Person表的POJO类

四:通过Hibernate反向工程建立person表与Person类的映射
首先调出DB Browser视图(Windows—view show—other—MyEclipse datebase—DB Browser)—展开MySQL_localhost至表person—右键表person—Hibernate Reverse Engineering

Finash完成
1

xmlversion="1.0"encoding="utf-8"?>
2

DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"
3

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
4

7

<hibernate-mapping>
8

13

<classname="Dao.Student"table="student"catalog="stms">
14

<idname="sno"type="java.lang.String">
15

<columnname="Sno"length="20"/>
16

17

<generatorclass="increment"/>
18

id>
19

<propertyname="sname"type="java.lang.String">
20

<columnname="Sname"length="20"not-null="true"/>
21

property>
22

<propertyname="password"type="java.lang.String">
23

<columnname="Password"length="20"/>
24

property>
25

class>
26

hibernate-mapping>
27
五:建立具体操作Hibernate的类
src/org.lxh.hibernate.demo01.PersonOperate.java
1

packageorg.lxh.hibernate.demo01;
2

3

importjava.util.Iterator;
4

importjava.util.List;
5

6

importorg.hibernate.Query;
7

importorg.hibernate.Session;
8

importorg.hibernate.SessionFactory;
9

importorg.hibernate.Transaction;
10

importorg.hibernate.cfg.Configuration;
11

12
/**
13
*@author∪∩BUGE-mail:tidelgl@163.com
14
*@versionAug30,20088:27:53AM
15
*@具体操作Hibernate的类
16
*@功能:增加,删除,个性,按ID查询,模糊查询,查询全部操作
17
*@注意导入的包:从org.hibernate.*;
18
*/
19

publicclassPersonOperate
{
20
//在Hibernate中所有的操作都是通过Session来完成
21
privateSessionsession=null;
22
23
//Session是一个接口,必须实例化
24
//在构造方法中实例实化Session对象
25
publicPersonOperate(){
26
//找到Hibernate配置文件
27
Configurationconfig=newConfiguration().configure();
28
29
//从全局配置文件中取出SessionFactory
30
SessionFactoryfactory=config.buildSessionFactory();
31
32
//从SessionFactory中取出一个Session
33
this.session=factory.openSession();
34
35
}
36
37
//所有的操作都是通过Session进行
38
//(1)实现向数据库中插入数据
39
publicvoidinsert(Personp){
40
//1.开始事务
41
Transactiontran=this.session.beginTransaction();
42
43
//2.执行语句
44
this.session.save(p);
45
46
//提交事务
47
tran.commit();
48
}
49
50
//(2)实现修改数据库的数据
51
publicvoidupdate(Personp){
52
//1.开始事务
53
Transactiontran=this.session.beginTransaction();
54
55
//2.执行语句
56
this.session.update(p);
57
58
//提交事务
59
tran.commit();
60
61
}
62
63
//(3)实现查询数据库的数据
64
//使用HQL按ID查询
65
publicPersonqueryById(Stringid){
66
Personp=null;
67
68
//使用Hibernate查询语句(HQL)
69
Stringhql="FromPersonaspwherep.id=?";//从Person类中对象p的id查
70
71
//通过Query接口查询
72
Queryq=this.session.createQuery(hql);
73
q.setString(0,id);//下标从0开始(id是第一个属性)
74
Listl=q.list();//导入的包是java.util.List;
75
Iteratoriter=l.iterator();
76
if(iter.hasNext()){
77
p=(Person)iter.next();
78
}
79
returnp;
80
}
81
82
//(4)实现删除数据库的数据
83
publicvoiddelete(Personp){
84
//1.开始事务
85
Transactiontran=this.session.beginTransaction();
86
87
//2.执行语句
88
this.session.delete(p);
89
90
//提交事务
91
tran.commit();
92
93
}
94
95
//通过HQL语句实现删除数据库的数据(推荐)
96
publicvoiddelete(Stringid){
97
Stringhql="deletePersonwhereid=?";
98
Queryq=this.session.createQuery(hql);
99
//设置参数
100
q.setString(0,id);
101
//执行更新语句
102
q.executeUpdate();
103
//提交事务处理
104
this.session.beginTransaction().commit();
105
106
}
107
108
//通过HQL查询全部数据
109
publicListqueryAll(){
110
Listl=null;
111
Stringhql="FromPersonasp";
112
Queryq=this.session.createQuery(hql);
113
l=q.list();
114
returnl;
115
}
116
117
//通过HQL查询全部数据
118
publicListqueryByLike(Stringcond){
119
Listl=null;
120
//条件
121
Stringhql="FromPersonaspwherep.namelike?";
122
Queryq=this.session.createQuery(hql);
123
//设置参数
124
q.setString(0,"%"+cond+"%");
125
l=q.list();
126
returnl;
127
}
128
129
}
130
六:建立测试类
src/org.lxh.hibernate.demo01.TestPO.java
例子结构:
