Hibernate核心API
小编:管理员 522阅读 2022.09.14
核心API
核心API
1.Configuration
2.SessionFactory
3.Session
01 Configration
Configuration相当于是Hibernate的配置对象,通过这个对象去加载核心配置文件,把里面的数据内容或得到,才能进行后面的工作
Configuration 类的作用是对Hibernate 进行配置,以及对它进行启动。
在Hibernate 的启动过程中,Configuration 类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。
虽然Configuration 类在整个Hibernate 项目中只扮演着一个很小的角色,但它是启动hibernate 时所遇到的第一个对象。
1.加载核心配置文件
Configuration cfg = new configuration().configure();复制
2.加载映射文件
属性文件是没有办法加载映射,可以通过加载了核心配置文件的Configuration对象来加载映射文件
cfg.addResource("映射文件的全路径");复制
02 SessionFactory
SessionFactory接口:SessionFactory接口负责初始化Hibernate。并负责创建Session对象。
需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
内部维护了Hibernate的连接池和Hibernate的二级缓存
一个项目只需要创建一个就行了,因为里面有连接池,连接池创建一个就可以了
得到Session对象
Session session = sessionFactory.openSession();复制
因为只需要创建一次,很多类需要操作数据库,就不可能每个类都创建一次。可以单独写一个工具类,直接通过工具类来获取连接对象
public class HibernateUtil{ public static final configration; public static final sessionFactory; static{ configration = new Configration().configre(); sessionFactory = configration.buildSessionFactory(); } public static Session openSession(){ return sessionFactory.openSession(); } }复制
之后要获取连接就可以直接
Session ss = HibernateUtil.openSession();复制
03 Session
Session相当于是连接对象通过它来完成与数据库的增删改查等操作
保存方法 |
save(Object obj) |
---|---|
查询指定 |
get(T.class,id) |
load(T.class,id) |
|
修改方法 |
update(Object obj) |
删除方法 |
delete(Object obj) |
查询所有 |
createQuery("from domain") |
保存(保存对象插入到映射的表格)
public void hibernateTest(){ Session session = HibernateUtil.openSession(); Student stu = new Student(); stu.setName("李四"); stu.setAge(17); session.save(stu); session.close(); }复制
查询指定(通过主键查询get()返回包装成对应domain对象)
public void hibernateTest(){ Session session = HibernateUtil.openSession(); Student stu = session.get(Student.class,2); }复制
修改方法
1.创建对象直接更新,没有改的全设为null(不建议使用)
2.先查询得到对象再修改,没有修改的值不变
public void hibernateTest(){ Session session = HibernateUtil.openSession(); /*Student stu = new Student(); stu.setId(1); stu.setName("小明"); session.update(stu); */ Student stu = session.get(Student.class,1); stu.setName="小明"; session.update(stu); }复制
删除方法(也是有创建对象删除和查询后再删除。这里直接用后者)
public void hibernateTest(){ Session session = HibernateUtil.openSession(); Student stu = session.get(Student.class,1); session.delete(stu); }复制
查询全部(from后面是对象名)
public void hibernateTest{ Session session = HibernateUtil.openSession(); Query query = session.createQuery("from Student"); List复制list = query.list(); System.out.println(list); }
相关推荐
- 经典笔试题-JDBC及Hibernate篇 五、JDBC 及Hibernate:(共12 题:基础10 道,中等难度2 道)110、数据库,比如100 用户同时来访,要采取什么技术解决?【基础】 答:可采用连接池。111、什么是ORM?【基础】 答:对象关系映射(Object—Relational Mapping,简称ORM)是一种为了解决面向对象…
- 3DMAX提示和技巧 本主题标识使用 Civil View 的一些重要提示和技巧。常规使用屏幕分辨率至少为 1280x1024 的 Civil View。低于此分辨率时,一些面板将占用过多屏幕空间。 将视口设置为线框显示以达到最佳性能。 要尽可能简化用户界面,请在单个视口中工作并关闭 3ds Max 命令面…