Hibernate核心API

#2020云栖大会#阿里云海量offer来啦!投简历、赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>> hot3.png

de51a41252ebc0b6d6bfd6f7d93b8cbb73f.png 核心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<Student> list = query.list();
   System.out.println(list);
}





2b23a7b3da3f6fc4f629b677dceff6d4d80.png d5cd9c0d9ec14e7c03d901381385343fa83.jpg

它,

不仅仅是一个码

本文分享自微信公众号 - IT那个小笔记(qq1839646816)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

posted @ 2019-09-06 09:17  木瓜煲鸡脚  阅读(19)  评论(0)    收藏  举报