Hibernate学习(三)Hibernate进阶:hibernate常用配置

hibernate常用配置

    • 常用配置含义
    • 程序运行验证
      • 1.测试去掉相关配置
      • 2.增加hibernate.show_sql、hibernate.format_sql等的配置
      • 3.增加hbm2ddl.auto配置
      • 4.增加hibernate.default_schema配置

常用配置含义

属性名 含义
hibernate.show_sql 是否把hibernate运行时的sql语句打印到控制台
hibernate.format_sql 是否对打印的sql语句进行排版
hbm2ddl.auto 可以由java语句生成数据库脚本,进而生成表结构。常用的值有:create|update|create-drop|validate
hibernate.default_schema 默认的数据库
hibernate.dialect 配置hibernate数据库方言

程序运行验证

1.测试去掉相关配置

我们先将hibernate.show_sql、hibernate.format_sql、hbm2ddl.auto的配置注释掉,并运行插入数据的代码
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第1张图片
测试代码如下:

package net.demo.hibernateTest;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import net.demo.entity.Student;

public class HibernateTest {
	private SessionFactory sessionFactory;
	private Session session;
	private Transaction transaction;
	@Before
	public void init() {
//		创建配置对象
		Configuration configuration = new Configuration().configure();
//		创建服务注册对象
		ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
//		创建会话工厂
		sessionFactory=configuration.buildSessionFactory(serviceRegistry);
//		创建session
		session=sessionFactory.openSession();
//		开启事务
		transaction=session.beginTransaction();
	}
	@Test
	public void testSave() {
		Student student=new Student(2,18,"男","zhangsan","南京");
		session.save(student);
		
	}
	@After
	public void destroy() {
//		提交事务
		transaction.commit();
//		关闭会话
		session.close();
//		关闭会话工厂
		sessionFactory.close();
	}
}

运行结果如下(数据插入成功,但没有任何打印sql的语句):
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第2张图片
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第3张图片

2.增加hibernate.show_sql、hibernate.format_sql等的配置

Hibernate学习(三)Hibernate进阶:hibernate常用配置_第4张图片
同样地,再次插入数据,运行结果如下(数据被插入,控制台打印出排版好的sql语句):
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第5张图片
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第6张图片

3.增加hbm2ddl.auto配置

将值设置为create:
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第7张图片
同样地,再次插入数据,运行结果如下(控制台打印的sql显示重新新建了表结构,并插入数据,表中仅剩新插入的数据):
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第8张图片
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第9张图片
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第10张图片
将值设置为update:
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第11张图片
同样地,再次插入数据,运行结果如下(控制台只打印了插入sql语句,数据库中原有数据没有被覆盖):
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第12张图片
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第13张图片

4.增加hibernate.default_schema配置

Hibernate学习(三)Hibernate进阶:hibernate常用配置_第14张图片
插入数据的运行结果如下(表名前面加上了默认的数据库作为前缀):
Hibernate学习(三)Hibernate进阶:hibernate常用配置_第15张图片

你可能感兴趣的:(Hibernate,hibernate,hibernate配置,java)