Shelton

如何用MyEclipse配置Hibernate并用Junit测试

如何用MyEclipse配置Hibernate并用Junit测试

起因

由于在网上有很多关于MyEclipse配置hibernate的教程都不怎么全面,今天就想着写个详细的图文教程给那些第一次学习使用hibernate的新手,大神可以跳过忽略,也欢迎找bug、交流。

需求

需要用到的东西:

1.MyEclipse Version : 2015 Stable 2.0
2.Microsoft SQL Server 2014
3Microsoft JDBC Driver for SQL Server
4.Hibernate 4.1 (MyEclipse2015集成)
5.Junit 4.12

开始

创建数据库

打开SQL Server Server Management Studio,登录(登录后把用户sa登录方式与密码修改)看下图:

新建查询,然后复制下面代码,执行完成数据库与数据表的创建。

1
2
3
4
5
6
7
8
9
10
CREATE DATABASE member
GO
USE member
GO
CREATE TABLE userTab (
id int NOT NULL PRIMARY KEY IDENTITY,
name varchar(30) NOT NULL,
pwd varchar(30) NOT NULL
)
GO

创建项目

新建一个Web Project,并命名为自己喜欢的名字,我这里test_hibernate。

在菜单栏找到WindowsOpen PerspectiveMyEclipse Database Explorer,然后在左栏右击new,如下图,然后Test Driver最终Finish就可以了。

点击你的项目,然后在菜单栏找到MyEclipseProject Facets[capabilities]Install Hibernate Facets,步骤如下图:




然后我们建立对象关系映射文件,如下图:


把我们需要的jar包导入,

接下来我们再创建一个名为test的资源文件夹,再新建一个test的类,代码如下:

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
46
47
48
49
50
51
52
53
54
55
package test_hibernate;
import hibernate.User;
import hibernate.UserTab;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class test {
private SessionFactory sessionFactory;
private Session session;
private Transaction transaction;
@Before
public void init() {
// 创建配置对象
Configuration configuration = new Configuration().configure();
// 创建服务注册对象
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().
applySettings(configuration.getProperties()).buildServiceRegistry();
// 创建会话工厂对象
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
// 会话对象
session = sessionFactory.openSession();
// 开启事务
transaction = session.beginTransaction();
}
@After
public void destroy() {
// 提交事务
transaction.commit();
// 关闭会话
session.close();
// 关闭会话工厂
sessionFactory.close();
}
@Test
public void testSaveMember() {
UserTab member = new UserTab("shelton", "aptx");
// 此处插入name的值为shelton, pwd值为aptx
session.save(member);
}
}

然后右击test.java,run asJUnit Test,成功运行后,

你可以查看userTab中,新增了1 shelton aptx数据。

这里我们使用的是自动生成的UserTab类,当然你也可以自己创建一个java实体类如,User.java

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
package hibernate;
public class User {
private int id;
private String name;
private String pwd;
public User() {
}
public User(String name, String pwd) {
//super();
this.name = name;
this.pwd = pwd;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
  • 注意:如果你要使用你自己创建的实体类,需要把UserTab.hbm.xml中的修改成<class name="hibernate.User" .....>
  • 然后再JUnt Test,无报错就可以了。

最后

到此为止,整个过程写完了,难免还会有漏缺,欢迎指出、交流。
Enjoy it!