您当前的位置: 首页 >  hibernate

Charge8

暂无认证

  • 4浏览

    0关注

    447博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Hibernate5简单demo

Charge8 发布时间:2018-08-06 15:55:15 ,浏览量:4

Hibernate 简介

Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的ORM框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 一句话:Hibernate 是一个实现了 ORM 思想的框架,封装了 JDBC。 

ORM: 对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。其实就是将关系和对象通过映射文件进行联系。我们在程序中只需要操作对象即可操作对应的数据库表的数据。

注意:POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,

使用环境:  1、Hibernate 5.2.17, JBoss tools 插件生成配置文件

2、Eclipse 4.7 

3、jdk1.8 

4、MySQL5.7 

5.  maven 

 

一、创建一个简单的 maven 项目 导包 和  配置  Hibernate5 主配置文件

导包

  
	
	    org.hibernate
	    hibernate-core
	    5.2.17.Final
	
  	
	
	    mysql
	    mysql-connector-java
	    5.1.46
	
	
	    junit
	    junit
	    4.10
    	test
	
  

Hibernate5 主配置文件:hibernate.cfg.xml  

注意:方言  MySQL5  指5.0+版本的MySQL

自动生成表结构策略(开发配置, 生产不配置)

update

value -- update(使用最多):当数据库不存在表时,hibernate启动后会自动生成表结构。

             当数据库表存在时,如果一样,则只会写入数据,不会改变表结构。

             当数据库表存在时,如果不一样,则会修改表结构,原有的表结构不会改变。

   create(很少):无论表结构是否存在,hibernate启动后都会重新生成表结构。(造成之前的数据丢失)

   create-drop(极少):无论表结构是否存在,hibernate启动都会重新生成表结构。并且hibernate关闭后,表结构会被删除。来无影去无踪。

   validate(很少):不会创建表结构,不会修改表结构。校验与数据库中的表结构是否一样,如果不一样则报异常。

 
  
  com.mysql.jdbc.Driver
  jdbc:mysql://localhost:3306/test_hibernate5
  root
  123456
  
  org.hibernate.dialect.MySQL5InnoDBDialect
  true
  true
  update
  
  
  
 

 

二、 创建一个 POJO 类 和 Xxxt.hbm.xml 映射文件

POJO 类:必须要有无参构造器

public class Student {
	private int id;
	private String name;
	private String sex;
	private Date birthday;
...
    //必须要有无参构造器

    //getter setter
}

Xxxt.hbm.xml :  插件生成, 简单修改

    
        
            
            
            
        
        
            
        
        
            
        
        
            
        
    

 

三、 创建 Junit 测试类

 注意: SessionFactory 工厂类的创建过程

Hibernate5 规定: 所有配置或服务要生效, 必须将其注册到一个 StandardServiceRegistry  服务注册类中

@Test
	public void test() {
		//1. 创建一个 SessionFactory 工厂类: 通过它建立一个与数据库连接回话 session 
		SessionFactory sessionFactory = null;
		//配置类: 封装有我们的配置文件里的配置信息, 返回的 configuration 包含有配置文件里的具体信息
		Configuration configuration = new Configuration().configure();
		//Hibernate5规定: 所有配置或服务要生效, 必须将其注册到一个服务注册类中
		StandardServiceRegistry serviceRegistry = configuration.getStandardServiceRegistryBuilder().build();
		sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
		
		//2. 通过工厂类开启 Session 对象
		Session session = sessionFactory.openSession();
		//3. 开启事务
		Transaction transaction = session.beginTransaction();
		
		//4. 执行 CRUD 操作
		Student student = new Student("李四","男",new Date());
		session.save(student);
		
		//5. 提交事务
		transaction.commit();
		//6. 关闭 Session
		session.close();
		//7. 关闭工厂类
		sessionFactory.close();
	}

 

四、数据库结果

 

 

关注
打赏
1664721914
查看更多评论
立即登录/注册

微信扫码登录

0.0387s