一、导入jar包
从hibernate官网下载配置工具并解压
解压打开文件夹目录如下
在hibernate-release-5.2.2.Final\lib\required子目录下存放了Hibernate的核心类库以及必需的第三方类库。
将其拷贝到java project项目下新建的lib文件下(除此之外还学要两个jar包,一个是用于日志打印的jar包,另一个则是用于数据库的连接)
二、创建Hibernate配置文件(hibernate.cfg.xml)
找到hibernate-release-5.2.2.Final\project\etc路径下的hibernate.cfg.xml文件和hibernate.properties文件,将hibernate.cfg.xml文件拷贝到src目录下
打开hibernate.properties文件此处用的是mySQL数据库,找到mySQL的配置方式。如下图:
对hibernate.cfg.xml文件进行配置
三、创建实体类
public class Employee {
private int id;
private String username;
private String password;
private String nickname;
private double salary;//薪水
public Employee() {
}
public Employee(String username, String password, String nickname,
double salary) {
this.username = username;
this.password = password;
this.nickname = nickname;
this.salary = salary;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
四、创建hbm映射文件并将映射添加到hibernate.cfg.xml文件中
在project中搜索hbm.xml复制一个**.hbm.xml文件到实体类包中
映射文件**.hbm.xml文件配置
最后记得要在hibernate.hbm.xml文件中mapping下
<mapping resource="com/text/hibernate01/bean/Employee.hbm.xml" />
五、创建SessionFactory
此处创建
@Test
public void test() {
Configuration cfg = new Configuration().configure();
// StandardServiceRegistry serviceRegistry = new
// StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session session = null;
try {
session = sessionFactory.openSession();
// 开启事务
session.beginTransaction();
Employee employee = new Employee("黄药师", "123", "东邪", 1200);
// 保存事务
session.save(employee);
// 提交事务
session.getTransaction().commit();
} catch (HibernateException e) {
if (session != null) {
session.getTransaction().rollback();
}
e.printStackTrace();
} finally {
session.close();
}
}
六、测试
七、总结
第一个Dome比较难入手,一切都是新的,期间遇到很多问题。
1.session.save 一直存不进去,之前差了好多帖子解决不了。我hibernate的入门其实是看视频一点一点跟着敲出来的,看的视频是2014年录的,有点时效性东西。视频中讲的测试:
StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
SessionFactory sessionFactory = cfg.buildSessionFactory(serviceRegistry);
之后测试一直报异常MappingExcption:unkown entity ,都说是没有配置映射,其实将StandardServiceRegistry注释掉就好了,原因我也不知道23333
2.编写测试代码的时候,出现了一次Configure build path的编译错误,用myeclipse自带的JDK,会报错,用自己的1.8也回报错,用1.7不报错但是会报异常,编译版本跟class文件的版本不一致,我当时找了半天,用了网上几乎所有的解决方法,最后是发现jdk位数和myeclipse的位数不匹配造成的。