hibernate入门篇

概念: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();
	}
}


你可能感兴趣的:(Hibernate&JPA)