博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搭建Hibernate环境
阅读量:4563 次
发布时间:2019-06-08

本文共 6761 字,大约阅读时间需要 22 分钟。

 

  (一)导入Hibernatejar

    a) Require里面的jar包都是必须要有的;

    b) Hibernate规范jpa里面的Hibernate-entitymanager*.jar也是必须的;

    c) 因为在使用Hibernate的时候有日志信息的输出,Hibernate本身没有支持日志信息的输出的jar包,所以需要导入其他的jar包,我们用log4jslf4j

  (二)创建实体类

 

使用Hibernate的时候不需要手动创建表,由Hibernate来完成。

  (三)配置实体类和数据表一一对应关系(映射关系)——使用配置文件来实现

 

    a) 创建xml格式的配置文件

 

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

 

    b) 配置文件是xml格式的,在配置文件中首先要引入xml的约束,约束都是dtd的。

 

1 
2
3 4
6 9 10
11
12   
14
15   
16
com.mysql.jdbc.Driver
17 18   
19
jdbc:mysql://localhost/hibernate 20 21     
22
root
23 24
25
123456
26 27
28
20
29 30
32   
true
33 34
36
50
37 38
40
23
41 42
43
false
44 45
46
true
47 48
49
gbk
50 51
52
org.hibernate.dialect.MySQLDialect
53 54
55
56   
57
58 59
60   
61   
62   
63
64
65
66
67
68
69 70
71   
72   
73      
74   
WEB-INF/hibernate.cfg.xml
75   
76   
77   
78     
79       
80     
org.hibernate.dialect.OracleDialect
81       
82     
org.hibernate.hql.ast.ASTQueryTranslatorFactory
83     
84     
true
85     
86     
true
87      
88      
true
89      
90      
true
91      
92      
true
93      
94      
false
95      
16
96      
97    
100
98      
99     
1
100     
101     
1200
102     
105     
100
106     
1
107     
1200
108     
10
109     
110   
111   

 

  (四)创建hibernate核心配置文件 

    核心配置文件也是xml的,但是核心配置文件名称和位置是固定的

    位置:src

    名称:必须是hibernate.cfg.xml

    Hibernate操作过程中,只会加载核心配置文件,其他配置文件不会加载,所以需要把*.hbm.xml配置到hibernate.cfg.xml

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

      第二部分:配置Hibernate信息

      第三部分:将映射文件配置到hibernate.cfg.xml

 

1 
2 5
6
7
com.mysql.jdbc.Driver
8
123456
9
jdbc:mysql://localhost:3306/test
10
root
11 12
true
13
true
14
update
15
org.hibernate.dialect.MySQLDialect
16
thread
17 18
19
20

 

 

 

封装session(SessionFactory

1 package com.chinasofti.entity; 2  3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 import org.hibernate.cfg.Configuration; 6  7 public class HibernateUtil { 8  9     static Configuration configuration=null;10     static SessionFactory sessionFactory =null;11     static Session session=null;12          static {13             configuration=new Configuration();14             configuration.configure();15             sessionFactory = configuration.buildSessionFactory();16             session = sessionFactory.openSession();17          }18          public  static SessionFactory  getSessionFactory(){19              20              return sessionFactory;21          }22          public  static  Session getSession(){23              24              return session;25          }26 27 }

 

 

添加功能实现

第一步:加载hibernate核心文件

第二步:创建sessionfactory对象(为了创建session

第三步:使用sessionfactory创建session对象

第四步:开启事务

第五步:写具体的逻辑

第六步:提交事务

第七步:关闭资源

效果:是否看到自动创建表,是否有记录添加。

 

1     @Test 2     public void testReplaceWife(){ 3 Session session = HibernateUtil.openSession(); 4 Transaction transaction = session.beginTransaction(); 5 //找到甘宝宝 6 Sec ganbaobao = session.get(Sec.class, 2); 7 8 Boss duanzhenchun = session.get(Boss.class, 1); 9 duanzhenchun.getSetSecs().remove(ganbaobao); 10 //找段誉 11 Boss duanyu = session.get(Boss.class, 2); 12 duanyu.getSetSecs().add(ganbaobao); 13 transaction.commit(); 14 }

 

 

Hibernate配置文件详解

Hibernate映射配置文件

细节问题:

1、映射配置文件名称和路径不是固定的

2、映射配置文件中,标签name属性值写实体类相关内容

2.1、class标签name属性值实体类全路径

2.2、id标签和property标签name属性值 实体类属性名称

3、Id标签和property,column属性是可以省略的

3.1、不写的时候值和name属性值一样的

4、Property标签type属性,一般我们不用,主要是用来设置数据库字段的类型,Hibernate会自动设置

 

Hibernate核心配置文件

1、配置写的位置必须在<Session-Factory>里面

2、配置要求,三部分 数据库必须的、hibenate部分可选、映射文件是必须的

3、核心配置文件名称和位置是固定的 位置src下,名称是hiberante.cfg.xml

 

Hibernate API使用

Configuration

Configuration configuration = new Configuration();

configuration.configure();

说明:到src下面找到名称为hibernate.cfg.xml配置文件,创建对象,把配置文件放到对象里面(加载核心配置文件)

SessionFactory

1、使用configuration对象创建sessionFactory对象

a) 创建sessionfactory过程中做一些事情:即根据核心配置文件中,有数据库配置,有映射配置部分,到数据库里面根据映射关系把表创建

2、创建sessionfactory过程中,这个过程很消耗资源

a) hibernate操作中,建议一个项目一般创建一个sessionfactory

3、具体实现

a) 写工具类,写静态代码快实现

静态代码块在类加载的时候执行,执行一次

public class HibernateUtil {

static Configuration CONFIGURATION = null;

static SessionFactory SESSION_FACTORY = null;

//静态代码块的实现

static{

CONFIGURATION = new Configuration();

CONFIGURATION.configure();

SESSION_FACTORY = CONFIGURATION.buildSessionFactory();

}

//提供方法返回sessionFactory

public static SessionFactory getSessionFactory(){

return SESSION_FACTORY;

}

}

 

Session

1、session类似于jdbc中的Connection

2、调用session里面不同的curd方法,saveupdatedelete、根据id查询/get

3、Session对象的特点是单线程的,通俗的讲是只能自己用,别人不能用。

Transaction

1、事务对象(commit以及rollback

2、事务特性:

a) 原子性

  1. 所有的操作要么都成功 要么都失败

b) 一致性

  1. 数据的一致性,转钱一方少钱,一方要多钱

c) 隔离性

  1. 多个事务操作同一条数据,彼此不影响

d) 持久性

  1. 因为事务要提交,保存到数据库中,这个就是持久化

 

转载于:https://www.cnblogs.com/angelye/p/7366179.html

你可能感兴趣的文章
iOS项目之苹果审核被拒
查看>>
java多态及tostring方法与equals方法的重写
查看>>
python 获取远程设备ip地址
查看>>
JDBC 第五课 —— 小项目的界面升级
查看>>
团队作业3——需求改进&系统设计
查看>>
返回json格式时间,解析时间
查看>>
线程并发-栈限制&ThreadLocal
查看>>
[转]Understand QoS at OpenSwitch
查看>>
vue中后台请求数据配置
查看>>
NIS服务器详解
查看>>
[备忘] 网络监控程序
查看>>
keepalived 高可用
查看>>
java_web学习(1)理解JavaBean
查看>>
再见,viewDidUnload方法
查看>>
233
查看>>
数据库MySQL/mariadb知识点——视图管理语句
查看>>
计数(count)
查看>>
cruise-control
查看>>
js 常用页面刷新
查看>>
HBase-TDG ClientAPI Advanced Features
查看>>