Hibernate的API及配置详解
来源:互联网 发布:瓜达尔港 知乎 编辑:程序博客网 时间:2024/06/05 11:12
一、org.hibernate.cfg.Configuration
1、类的主要作用是加载主配置文件以及映射文件,启动hibernate2、默认获取hibernate.cfg.xml配置文件 Configuration configer = new Configuration().configure();3、如果配置文件名称有改变,则用带参数的构造器 Configuration configer = new Configuration().configure("xxx.cfg.xml");
二、SessionFactory接口
1、用来获取和管理我们的session,它在hibernate中其实是相当于一个缓冲区的作用,一个数据库对应一个sessionFactory,是一个重量级的对象,比较重要。2、是单例的,但是是线程安全的,大多数成员变量都是final
三、Session接口
1、程序和数据库的一次交互会话,每次执行一个数据库的事务,都要创建新的session实例,用完后需要关闭
2、轻量级接口是多例的,是线程不安全的
3、获取方式:
Session session = SessionFactory.getCurrentSession();//获取当前线程中的session,会自动关闭session.
Session session = SessionFactory.openSession;//创建一个session对象,需要手动关闭session
4、如何保证一个线程的session是线程安全的,需要在hibernate.cfg.xml里面配置
<property name="hibernate.current_session_context_class">thread</property>
四、transaction接口
1、事务的开启: session.getTransaction().begin();
2、事务的提交: session.getTransaction().commit();
3、事务的回滚: session.getTransaction().rollback();
五、hibernate.cfg.xml配置详解:
1:数据库连接配置
* 在hibernate.cfg.xml里面配置数据库的四要素
* 通过hibernate.properties文件进行配置
注意:当cfg配置文件和properties文件同时配置了数据库信息的时候,cfg配置文件优先
2:数据源的配置
* 我们一般会用c3p0的数据源管理 详见hibernate.cfg.xml文件
* 在我们没有单独配置数据源管理的时候 ,它会用hibernate自带的数据源(not for product use)
3:方言
* 不同的数据库会存在一些语法上的差异,而方言是解决这种差异的一种手段
* 解决hql翻译成sql,保证语法上的正确
4:加入映射文件
<mapping resource="com/xxx/hibernatestudy/sysmanage/entity/student.hbm.xml" />
5:自动建表配置
<property name="hibernate.hbm2ddl.auto">update/create</property>
六、持久化对象与映射文件的配置
<hibernate-mapping> <class name="com.xxx.hibernatestudy.sysmanage.entity.Student" column="T_STUDENT"> <id name="stId" column="ST_ID"> <generator>native</generator> </id> <property name="stName" column="ST_NAME"></property> <property name="stAge" column="ST_AGE"></property> </class></hibernate-mapping>
关于主键段<generator></generator>
中的值的配置详解如下:
id的生成策略有如下几种方式
* increment
hibernate自己维护主键的值,每次插入之前,max(ST_ID)+1,不适合高并发和集群环境
* identity
数据库自身的增长来维护主键值 如mysql的auto_increment
* sequence
在数据库中创建一个序列,hibenate会调用序列来维护主键 ,oracle比较实用
* native
它会根据使用的数据库类型,从identity和sequence两种方式选取 一种合适的
* uuid
采用uuid(universally unique identifier)算发来生成一个唯一识别码
ip地址+jvm启动时间+当前系统时间+计数器= 32位
* assigned
由程序自己设置id值,比如身份证,学好之类的业务编码
- Hibernate的API及配置详解
- Hibernate常用API详解及源码分析
- Hibernate核心API的详解
- hibernate的配置详解
- hibernate的配置详解
- Hibernate的配置详解
- Hibernate(三)Hibernate常用API详解及源码分析
- Hibernate入门配置详解及例子
- SSH框架之Hibernate的API详解
- Hibernate二级缓存的配置及
- SSH:Hibernate框架(常用API详解及源码分析)
- hibernate 第一记<hibernate详解及配置信息 使用步骤>
- Hibernate框架(一)文件配置、核心API、对象状态详解
- hibernate教程--常用配置和核心API详解
- Hibernate关键API详解
- hibernate API详解
- hibernate常用API详解
- hibernate-api详解
- MacOS Sierra install thrift-0.10.0
- ES6 的功能侦测库 ES-Checker——工具
- The select cannot be run on any server 报错问题
- java
- Struts2--与Servlet API
- Hibernate的API及配置详解
- UIswitch UISlider(基础篇)
- 推荐一款压缩js工具--yuicompressor-2.4.2.jar
- 实训第七天笔记
- Windows server 2012配置Nginx自启动
- 工厂模式
- android员工管理系统小程序
- 二维数组的使用(new,delete,初始化,输出)
- 51Nod-1765-谷歌的恐龙