概念:hibernate是一个轻量级的、企业级的、开源的ORM持久层框架
目标:在eclipse中实现一个用hibernate实现的第一个小案例
1、创建一个java或者web工程
2、项目下创建一个lib文件夹,导jar包用
3、导jar包,需要导入三部分:hibernate开发包中的required文件夹下几个包、log4j jar包、数据库驱动jar包
它们都可以在官网下载,拷贝导lib里后build path
4、创建好Java中的Javabean类User和数据库中的表user,注意类实现序列号接口
5、写好User.hbm.xml文件
过程中需要添加dtd约束,如果记不住没关系,可以去hibernate-core-5.3.1.Final.jar/org.hibernate/hibernate-mapping-3.0.dtd这个文件中找到
然后在preferences中搜索xml c就会找到XML Catalog,选择User Specified Entries,点击add
在里面的location可选工作空间或本地,我选本地,然后找到那个dtd文件,在这个目录下:hibernate-release-5.3.1.Final/project/hibernate-core/src/main/resources/org/hibernate,key type选择URI, key就是上图中的网址:
http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd,配置好了以后再去xml文件里写配置就会有提示信息了。
6、再写hibernate.config.xml,这个默认就放在src下了,一般不要去改它,要改了以后在后面new Configration的时候就要指定路径了,没必要啊!
也是先添加dtd约束,然后去xml catalog里配置一样,方法同上。
配置session-factory的时候三部分(这部分配置不需要记,去这个文件中找:/hibernate-release-5.3.1.Final/project/etc/hibernate.properties ,然后mapping resource指定路径时应该是相对路径,反正我开始用绝对路径时报错了):
org.hibernate.dialect.MySQLDialect
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/testDB
username
password
true
true
update
后面学习了注解方式以后,这里配置就变成这样
7、最后写一个测试类运用junit进行测试即可
package com.dimples.service;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.dimples.dao.User;
public class Test1 {
@Test//这里使用了注解,直接在方法上加上@Test会提示你添加junit库,添加就是了,或者自己下载junit jar包再导入然后build path也行
public void trySave() {//使用junit测试到好处是可以测试单独的方法
User user = new User();
user.setUsername("test");
user.setPassword("123456");
//解析config配置文件
Configuration cfg = new Configuration();
cfg.configure();
//根据cfg创建SessionFactory
SessionFactory sf = cfg.buildSessionFactory();
//根据SessionFactory创建session
Session session = sf.openSession();
//开启事务
Transaction ts = session.beginTransaction();
//执行操作
session.save(user);
//提交事务
ts.commit();
//关闭资源
session.close();
sf.close();
}
}