Hibernate入门

231 阅读2分钟

这是我参与更文挑战的第2天,活动详情查看:更文挑战

搭建Hibernate环境

第一步: 导入Hibernate的jar包

1)因为在使用hibernate时候,有日志信息输出.hibernate本身没有支持日志输出的jar包,导入其他的日志的jar包

不要忘记mysql驱动的jar包

导入所有的jar包

4.png

导入以后要选中,然后点击Build Path,Add to build path

第二步:创建实体类

5.png

1.使用hibernate时候,不需要自己手动创建表,hibernate会帮助我们创建表

第三步: 配置实体类和数据库表一一对应关系(映射关系)

使用配置文件实现映射关系

  1. 创建一个xml格式的配置文件

映射配置文件名称和位置没有固定要求 建议,在实体类所在包里面创建,实体类名称.xml

2)配置文件是xml格式,在配置文件中首先引入xml约束 在hibernate里面引入的约束是dtd约束

7.png

3)配置映射关系

<!--  配置类和表对应
		class标签
		name属性:实体类全路径
		table属性:数据库表的名称
		-->
	<class name="com.entity.User" table="t_user">
	<!--  配置实体类id和表id对应
			hibernate要求实体类里面有一个属性值唯一
			hibernate要求表有字段作为唯一值
		-->
	<!--  id标签
		name属性:实体类里面id属性值
		column属性:生成的表字段名称
		-->
	<id name="uid" column="uid">
		<!--  设置数据库表id增长策略
				native:生成表id值就是主键自动增长
		-->
		<generator class="native"></generator>
	</id>
	<!--  配置其他属性和表的字段的对应
			name属性:实体类属性名称
			column属性:生成的表字段名称
		-->
	<property name="username" column="username"></property>
	<property name="password" column="password"></property>
	<property name="address" column="address"></property>
	</class>
</hibernate-mapping>

第四步:创建hibernate核心配置文件

1)核心配置文件格式xml,但是核心配置文件名称和位置是固定的

位置:必须在src下面

名称:必须hibernate.cfg.cml

8.png

2)引入dtd约束

7.png

3)hibernate操作过程中只会加载核心配置文件,其他配置文件不会进行加载

第一部分:配置数据库信息

10.png

第二部分:配置hibernate信息

11.png

第三部分:把映射文件放在核心配置文件

12.png

实现添加操作

	public void testAdd() {
//		第一步:加载hibernate核心配置文件
		//到src下面找到名称是hibernate.cfg.xml
		//在hibernate里面封装对象,读取配置文件中的信息
		Configuration cfg = new Configuration();
		cfg.configure();
		
//		第二步:创建一个SessionFactory对象
		//读取hibernate核心配置文件内容,创建sessionFactory
		//在过程中,根据映射关系,在配置数据库里面把表创建
		SessionFactory sessionFactory = cfg.buildSessionFactory();
		
//		第三步:使用SessionFactory创建session对象
		//session类似于连接connection
		Session session = sessionFactory.openSession();
 
//		第四步:开启事务
		Transaction tx =  session.beginTransaction();
	
//		第五步:写具体逻辑crud操作
		//添加功能
		User user = new User();
		user.setUsername("ice");
		user.setAddress("葫芦岛");
		user.setPassword("666");
		//调用session的方法实现添加
		session.save(user);
 
//		第六步:提交事务
		tx.commit();
		
//		第七步:关闭资源
		session.close();
		sessionFactory.close();

看到效果:

(1)是否生成表

20.png

(2)是否有记录

21.png