【Hibernate】03 配置文件 & API
映射器文件:
- 字段的Column属性可以不写缺省,这将表示和实体类的属性标识一样
- type 属性用于声明表字段在Java中的类型,这个属性可不写缺省,自动匹配
Hibernate 4个核心API
Configuration 配置
// 创建配置对象 Configuration configuration = new Configuration(); // 调用配置方法,这个方法会直接去找hibernate.cfg.xml 不需要按名字注入配置 configuration.configure();
我们查看源码发现这个方法他就是这么写的
所以为什么才要求我们Hibernate的核心配置文件必须是这个名称
或者使用这个重载方法,注入文件路径
/config/hibernate.cfg.xml
SesionFactory 会话工厂
使用配置对象创建会话工厂
读取配置JDBC参数,和映射文件信息,在数据库中创建数据表或者更新
创建SessionFactory的过程中是特别消耗资源的
最佳使用:
工厂实例有且仅有唯一一个实例,并一直存留围绕整个项目的运行器
不应该多次创建,所以即单例模式,写在静态代码块即可
编写Hibernate工具类
package cn.dai.util; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; /** * @author ArkD42 * @file Hibernate * @create 2020 - 05 - 10 - 11:18 */ public class HibernateUtil { private HibernateUtil(){} private static SessionFactory sessionFactory; static { Configuration configuration = new Configuration(); configuration.configure(); sessionFactory = configuration.buildSessionFactory(); } public static Session getSession(){ return sessionFactory.openSession(); } }
Session SQL会话
实现数据库的CRUD操作
- 添加 SAVE
- 修改 UPDATE
- 删除 DELETE
查询是一个特殊的场景:
- 根据ID查询,GET
Session是一个单线程的对象,不能被公用!!!
最佳使用是在方法中,使用完毕立刻释放
下次使用再到工厂获取
Transaction
- 通过会话对象获取实例,开启事务
Transaction transaction = session.beginTransaction();
不要等到执行SQL之后再开启事务,建议获取到会话实例之后立刻开启事务
- 提交事务
// 提交事物 transaction.commit();
- 如果失败,应该进行回滚处理
// 回滚事物 transaction.rollback();
使用工具类再简化的测试
@Test public void letsGetThisWork2(){ Session session = HibernateUtil.getSession(); Transaction transaction = session.beginTransaction(); session.save(new User(null,"阿伟","332244")); transaction.commit(); session.close(); }
相关推荐
feinifi 2020-10-13
jimgreatly 2020-08-03
solarspot 2020-07-28
solarspot 2020-07-28
CXC0 2020-06-14
Kele0 2020-06-08
LetonLIU 2020-06-08
tlsmile 2020-05-28
DAV数据库 2020-05-11
栖梧桐 2020-05-11
栖梧桐 2020-04-25
LetonLIU 2020-04-23
wintershii 2020-04-21
东方咖啡屋 2020-04-19
微微撒 2020-04-18
javamagicsun 2020-04-11