Hibernate框架搭建

本文详细介绍了Hibernate框架的搭建步骤,包括添加必要的jar包、配置核心文件hibernate.cfg.xml、定义实体类及其映射元文件等内容,并通过示例演示了如何使用JUnit进行单元测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hibernate框架的搭建

1. 添加jar

hibernate解压后将lib/required文件夹下的jar包都添加到WebContent/lib

2. 添加核心配置文件

 src/hibernate.cfg.xml  数据库连接相关配置【c3p0】运行时常量【show_sql  format_sql】和注册映射元文件【xml和注解】

 

 

运行时常量hibernate.hbm2ddl.auto 可以取值有4种:

1create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。可以理解为drop-create

2create-drop :每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。用于测试阶段

3update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。在开发阶段中配置

4validate :每次加载hibernate时,验证创建数据库表结构,如果表结构和对应的映射元文件不一致则会报出下面的异常

查看配置文件,可以看到唯一性约束

 

解决方法:用户名称必须唯一

 

 

3. 定义实体类和对应的映射元文件

 
映射元文件的定义方式有两种:采用XML和注解开发

 

 

在核心配置文件中注册映射元文件

 

在这里采用xml开发

4、编程调用

 

这里使用JUnit单元测试进行测试

 

新增数据

public class TestAPI {
	public static void main(String[] args) {
		UserBean user = new UserBean();
		user.setUsername("xiaohui");
		user.setPassword("666666");
		
		StandardServiceRegistry ssr = new StandardServiceRegistryBuilder()
				.configure().build();
		SessionFactory fac = new MetadataSources(ssr).buildMetadata()
				.buildSessionFactory();
		Session session = fac.openSession();
		Transaction transaction = session.beginTransaction();
		session.persist(user);
		transaction.commit();
		session.close();
	}
	@Test
	public void testSave() {
		UserBean user = new UserBean();
		user.setUsername("xiaohui");
		user.setPassword("666666");
		
		StandardServiceRegistry ssr = new StandardServiceRegistryBuilder()
				.configure().build();
		SessionFactory fac = new MetadataSources(ssr).buildMetadata()
				.buildSessionFactory();
		Session session = fac.openSession();
		Transaction transaction = session.beginTransaction();
		session.persist(user);
        //session.save(user);
		transaction.commit();
		session.close();
	}

动态插入dynamic-insert="true" 和动态修改 dynamic-update="true"

删除数据

 

按照id加载数据

5常见的异常和对应的处理方法

 

解决方法:检查当前操作的实体类对象是否符合映射元文件中的约束说明

 

  

解决方法:检查映射元文件中看哪个属性在实体类中没有进行定义


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值