一、首先先建立一个Web Project
二、然后在程序根目录建立文件夹“DataBase”和“Doc”,分别存放数据库文件和保存SQL语句,建完如下所示:
三、建立数据库“dbHibernate”,保存到文件夹“DataBase”下
四、书写SQL语句,创建“student”表
-- 数据库名称 dbHibernate
-- 版本 SQLServer2008
--学生表
create table student(
ID varchar(10) primary key,
Name varchar(20) not null,
)
--插入数据
insert into student values('101','张三');
insert into student values('102','李四');
insert into student values('103','王五');
五、打开“DB Browser”后,右击选择“New...”,Driver template选择“Microsoft SQL Server”,Driver name为“Hibernate”,Connection URL为“jdbc:sqlserver://localhost:1433; DatabaseName=dbHibernate”,然后就是数据库的User name以及Password;还要添加“sqljdbc4.jar”驱动包,点击“Test Driver”,可以看到测试成功
六、然后点击“Next”,选择“Display the selected schemas”,点击“Add”添加数据库“dbHibernate”,最后“Finish”。
七、右击项目“Hibernate”->“Myeclipse”->“Add Hibernate Capabilities...”,然后默认点击“Next”
八、选择“Browse”,添加自己建立的包名,然后“Next”后,选择“DB Driver”下的“Hibernate”,下面的内容将自动调出。然后“Next”,选择“Java package”
九、建完后,在包“com.langguojie.Hibernate”下添加了“HibernateSessionFactory.java”以及“hibernate.cfg.xml”两个文件
十、在“DB Browser”下,选择“Hibernate”->“Open connection”->Connected to Hibernate->dbo->TABLE->student,右击选择“Hibernate Reverse Engineering”
十一、选择 Java package:“com.langguojie.Hibernate.orm”,然后选择如下图所示内容,点击“Finish”即可。
十二、在包“com.langguojie.Hibernate.orm”下添加了“Student.java”和“Student.hbm.xml”两个文件
十三、在index.jsp中添加如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
<%
@page
import
=
"com.langguojie.Hibernate.orm.Student"
%>
<%
@page
import
=
"org.hibernate.Query"
%>
<%
@page
import
=
"com.langguojie.Hibernate.HibernateSessionFactory"
%>
<%
@page
import
=
"org.hibernate.Session"
%>
<center>
学生管理<br>
<br>
<a href=
"StudentAdd.html"
>添加</a><br>
<br>
<table border=
"1"
cellspacing=
"0"
cellpadding=
"4"
>
<%
Session ss = HibernateSessionFactory.getSession();
//建立Session对象ss
ss.beginTransaction();
//打开Transaction
Query query=ss.createQuery(
"from Student"
);
//调用函数Query查询
List<Student>studentList =
new
ArrayList<Student>();
//将查询的结果放到List表中
studentList = query.list();
for
(
int
i =
0
;i < studentList.size();i++){
%>
<tr>
<td><%=studentList.get(i).getId()%></td> <!-- 输出ID -->
<td><%=studentList.get(i).getName()%></td> <!-- 输出姓名 -->
<td><a href=
'StudentEdit.jsp?ID=<%=studentList.get(i).getId()%>'
>修改</a>
</td>
<td><a href=
'servlet/StudentDelete.do?ID=<%=studentList.get(i).getId()%>'
>删除</a>
</td>
</tr>
<%
}
ss.close();
//关闭Transaction
%>
</table>
</center>
|
十四、建立添加页面“StudentAdd.html”,代码如下:
1
2
3
4
5
6
|
<
form
id="form1" name="form1" method="post"action="servlet/StudentAdd.do">
<
center
>添加<
br
><
br
>
学号:<
input
type="text" id="ID" name="ID"><
br
><
br
>
姓名:<
input
type="text" id="Name" name="Name" ><
br
><
br
>
<
input
type="submit" value="确定"></
center
>
</
form
>
|
十五、建立servlet“StudentAdd.java”,使用函数“doPost()”代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
request.setCharacterEncoding(
"UTF-8"
);
String strID =
""
;
String strName =
""
;
strID = request.getParameter(
"ID"
);
//获取ID
strName = request.getParameter(
"Name"
);
//获取Name
Session ss = HibernateSessionFactory.getSession();<br>ss.beginTransaction();
Student s =
new
Student();
s.setId(strID);
s.setName(strName);
ss.save(s);
//保存数据
ss.getTransaction().commit();
//提交数据
ss.close();
response.sendRedirect(
"../index.jsp"
);
|
十六、建立编辑页面“StudentEdit.jsp”,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
<%
@page
import
=
"com.langguojie.Hibernate.orm.Student"
%>
<%
@page
import
=
"com.langguojie.Hibernate.HibernateSessionFactory"
%>
<%
@page
import
=
"org.hibernate.Session"
%>
<%
request.setCharacterEncoding(
"UTF-8"
);
String strID=
""
;
strID = request.getParameter(
"ID"
);
Session ss = HibernateSessionFactory.getSession();
ss.beginTransaction();
Student student = (Student)ss.get(Student.
class
, strID);
ss.getTransaction().commit();
ss.close();
%>
<center>
<%
if
(student !=
null
){ %>
<br><br>编辑学生信息<br>
<form name=
"f1"
id=
"f1"
action=
"servlet/StudentEdit.do"
method=
"post"
>
<table border=
"0"
>
<tr>
<td>学号:</td>
<td><input type=
"text"
readonly=
"readonly"
name=
"ID"
id=
"ID"
value=
"<%=student.getId() %>"
> 学号不允许编辑</td>
</tr>
<tr>
<td>姓名:</td>
<td><input type=
"text"
name=
"Name"
id=
"Name"
value=
"<%=student.getName() %>"
></td>
</tr>
<tr>
<td colspan=
"2"
align=
"center"
><input type=
"submit"
value=
" 确定 "
></td>
</tr>
</table>
</form>
<%}
else
{ %>
<br><br>编辑学生信息<br><br>
学号为<%=strID %>的学生数据在数据库中不存在!<br><br>
<a href=
"index.jsp"
>返回</a>
<%} %>
</center>
|
十七、建立servlet“StudentEdit.java”,使用函数“doPost()”,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
request.setCharacterEncoding(
"utf-8"
);
String strID =
""
;
String strName =
""
;
strID = request.getParameter(
"ID"
);
strName = request.getParameter(
"Name"
);
Session session = HibernateSessionFactory.getSession();
session.beginTransaction();
Student student = (Student)session.load(Student.
class
, strID);
student.setName(strName);
session.update(student);
session.getTransaction().commit();
session.close();
response.sendRedirect(
"../index.jsp"
);
|
十八、建立servle“StudentDelete.java”,使用函数“doGet()”,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
request.setCharacterEncoding(
"UTF-8"
);
String strID=
""
;
strID = request.getParameter(
"ID"
);
Session ss = HibernateSessionFactory.getSession();
ss.beginTransaction();
Student student = (Student)ss.load(Student.
class
, strID);
ss.delete(student);
ss.getTransaction().commit();
ss.close();
response.sendRedirect(
"../index.jsp"
);
|
十九、运行结果截图: