Hibernate读取配置文件,创建sessionFactory的执行过程以及用工具类优化
来源:互联网 发布:js实现图片放大缩小 编辑:程序博客网 时间:2024/05/20 13:36
hibernate.cfg.xml被称为核心配置文件实体类名.hbm.xml被称为映射文件
记忆就像运行内存一样,一次开机,疯狂读取数据,一次关机,清空所有内存!!
Hibernate核心API的基本使用
Configuration
Configuration config=new Configuration();config.configure();
- 到src下面找到名称为hibernate.cfg.xml配置文件,创建对象,把配置文件放到对象里面(加载核心配置文件)
另外,就算把核心配置文件放到其它目录也可以加载,只是业界方面不推荐。我们只需要知道就行了!
Configuration config=new Configuration().configure("xml文件位置");/*此种写法hibernate 会去指定位置查找配置文件,例如,想要使用src下面的config包中的hibernate.cfg.xml文件,只需将文件位置加入configure()中即可,其代码如下:*/Configuration.config=new Configuration().configure("/config/hibernate.cfg.xml");/*[加载映射文件]:Hibernate除了可以使用Configuration对象加载核心配置文件以外,还可以利用该对象加载映射文件。可以在手动编写代码的时候去加载映射文件。*/Configuration configuration=new Configuration().configure("xml文件位置");configuration.addResource("cn/domarvel/domain/Customer.hbm.xml");
SessionFactory(重点)
使用Configuration对象创建SessionFactory对象
- 创建SessionFactory过程中做事情。
- 根据核心配置文件中的内容(现在已经被封装到Configuration对象里面了),有数据库配置,有Hibernate信息配置,有映射文件部分,到数据库里面根据
映射关系把表创建。
但是要想Hibernate帮你创建数据表,你必须配置以下内容:
<property name="hibernate.hbm2ddl.auto">update</property>
*经过试验,hibernate.hbm2ddl.auto这里面的值为update时,如果数据库中无表,会创建。插入数据时,数据库字段不够会更新表。但是如果数据库字段本来
就包含当前插入的实体类属性时,就不会更新表。所以在SessionFactory创建时会有很麻烦耗时的数据库字段检测代码。并且在开始的时候还会读取Hibernate核心配置文件,这些都是非常耗时的操作!*
为了不要造成不必要的浪费:
- 在Hibernate操作中,建议一个项目一般创建一个SessionFactory对象。
具体实现过程:
- 写工具类,写静态代码块实现。
- 静态代码块在类加载时候执行,执行一次。
public class HibernateUtils{ private static Configuration cfg=null; private static SessionFactory sessionFactory=null; //静态代码块实现 static{ //加载核心配置文件 cfg=new Configuration(); cfg.configure(); sessionFactory = cfg.buildSessionFactory(); } //提供方法返回 sessionFactory public static SessionFactory getSessionFactory(){ return sessionFactory; }}
Session(重点)
Session session=sessionFactory.openSession();
session类似于jdbc中的connection
调用session里面不同的方法实现crud操作
- 添加save方法
- 修改 update方法
- 删除delete方法
- 根据id查询get方法
session对象单线程对象
- session对象不能共用,只能自己使用。
Transaction
//开启事务Transaction tx=session.beginTransaction();//事务的提交和回滚tx.commit();tx.rollback();
事务和回滚:
事务的概念:
- 事务四个特性:原子性、一致性、隔离性、持久性。
原子性:所有成功,就成功。一个失败就全部失败。
一致性:操作之前之后数据总量不会变化。
隔离性:多个事务同时操作同一条记录时,相互之间不会受影响。
持久性:当我们提交数据到数据库。数据库数据真正生效。
对于事务这里有一篇文章
平时见到的数据库操作都是原子性的,也就是说单纯性的,要嘛插入,要嘛修改,要嘛删除。事务就是一系列相关数据库操作的集合,因此,只有事务里的所有操作都正常完成才算一次事务提交,如果有一个操作不完成,数据库就恢复到操作前状态,这叫做回滚。举个例子:你要给老妈汇100元,一次完整的汇款操作就是一个事务。简单列举下汇款的主要流程:1:从你帐号拿出100元,相应的数据库操作就是---》减去100元从你的帐号2:银行将100元存入老妈的帐号,相应的数据库操作就是----》修改老妈的帐号的余额步骤1,2和一起算一次事务,它包括两次数据库的修改处理,因此,如果两则有一个出现异常(比如汇款时停电),则正常的银行系统不会将你的100元丢失,也不会将老妈帐户加100.如果没有事务管理,减去100和加上100是两个单独的操作,这时候如果 把你帐户减去100元后,突然停电, 不仅老妈收不到钱,你的100元也没了。很可怕吧!还好只是100!有了事务管理呢,数据库系统发现这次事务出现了中断,就不会把你的钱扣除。
0 0
- Hibernate读取配置文件,创建sessionFactory的执行过程以及用工具类优化
- Hibernate 中 SessionFactory的创建
- hibernate中SessionFactory的创建
- hibernate 创建 SessionFactory 的变化
- Hibernate SessionFactory 的创建方式
- android用工具类
- Hibernate实用类创建SessionFactory
- Hibernate创建sessionFactory工具类
- spring配置文件applicationContext.xml配置hibernate的连接数据库信息及sessionFactory创建方式
- Hibernate创建sessionFactory,session和关闭session的工具类
- 学习Hibernate源码——配置文件解析,SessionFactory创建
- 学习Hibernate源码——配置文件解析,SessionFactory创建
- sftp传输用工具类
- 关于Hibernate创建SessionFactory对象的说明
- Hibernate 4.2.11 sessionFactory的创建
- Hibernate-4.3.6 创建sessionFactory的方式
- hibernate创建sessionFactory的不同方式
- C#类金山辞典的个人用工具
- 高精度板( 无除法、减法 )
- non-random numbers
- 使用HTML标签
- ArcGIS面简化工具的BUG
- 欧氏距离和余弦相似度
- Hibernate读取配置文件,创建sessionFactory的执行过程以及用工具类优化
- Android Fragment 真正的完全解析(下)
- HTML5+原生javascript 卡片扑克旋转展开效果demo
- springmvc整合mybatis框架源码 bootstrap html5 mysql oracle maven SSM
- Linux ftp命令的使用
- Builder模式
- 方立勋_30天掌握JavaWeb_XML
- 资源隔离-systemd
- activiti,工作流,web流程设计器,SSM,activiti工作流