Hibernate api 之常见的类(配置类,会话工厂类,会话类)

1:Configuration :配置管理类对象

  1.1:config.configure():

     加载主配置文件的方法(hibernate.cfg.xml) ,默认加载src/hibernate.cfg.xml

  1.2:config.configure(“cn/config/hibernate.cfg.xml”);   

     加载指定路径下指定名称的主配置文件

  1.3:config.buildSessionFactory();   

      创建session的工厂对象

2: SessionFactory :session的工厂(或者说代表了这个hibernate.cfg.xml配置文件)

  2.1:sf.openSession();   

      创建一个sesison对象

  2.2:sf.getCurrentSession();  

     创建session或取出session对象

3:Session:

  3.1:session对象维护了一个连接(Connection), 代表了与数据库连接的会话。

    a:保存的方法:session.save(对象);

    b:更新的方法:session.update(对象);  

      注意:更新必须写上主键的名称,其他字段都要设置值;

    c:主键查询的方法:session.get(对象,主键);/session.load(对象,主键);load方法这个支持懒加载。

    d:保存或者更新:session.saveOrUpdate(对象);如果没有主键就保存,存在主键就更新;保存或者更新的方法,没有设置主键,执行保存,有设置主键,执行更新操作,如果设置主键不存在,就报错;

    e:删除的方法:session.delete(对象);删除必须给主键;

      3.2:Hibernate最重要的对象:

     只用使用hibernate与数据库操作,都用到这个对象

      3.3:session.beginTransaction();

     开启一个事务; hibernate要求所有的与数据库的操作必须有事务的环境,否则报错!

  3.4:Transaction:hibernate事务对象;



使用Hibernate api 之常见的类(配置类,会话工厂类,会话类)案例:

  《这里只是列举了Hibernate的三个常见类,其他配置文件和实体类之前的博客写过,这里重点介绍Hibernate的三个常见类》:

 1 package com.bie.test;
 2
 3 import org.hibernate.Session;
 4 import org.hibernate.SessionFactory;
 5 import org.hibernate.Transaction;
 6 import org.hibernate.cfg.Configuration;
 7 import org.junit.Test;
 8
 9 import com.bie.po.User;
10
11 /**
12 * @author BieHongLi
13 * @version 创建时间:2017年3月8日 下午5:28:35
14 *
15 */
16 public class HelloTest2 {
17
18     //SessionFactory代表整个配置文件,所以没必要加载多次,放到全局即可
19     private static SessionFactory sf;
20     static{
21         //1:创建配置管理类对象
22         Configuration config=new Configuration();
23         //加载配置文件,(默认加载/src/hibernate.cfg.xml)
24         config.configure();
25
26         //2:根据加载的配置管理类对象,创建SessionFactory对象
27         sf=config.buildSessionFactory();
28
29         //简介写法,写到一行里面
30         //sf=new Configuration().configure().buildSessionFactory();
31     }
32     @Test
33     public void testHello(){
34         //对象
35         User user=new User();
36         user.setName("张三");
37         user.setPassword("123456");
38         user.setEmail("1748741329@qq.com");
39         user.setPhone("15236083005");
40
41         //3:根据sesson的工厂创建session对象
42         Session session = sf.openSession();
43
44         //开启事务
45         Transaction tx = session.beginTransaction();
46         //执行操作
47         session.save(user);
48         //提交事务
49         tx.commit();
50         //关闭事务
51         session.close();
52         sf.close();
53     }
54
55 }

Hibernate三个常见类,配置类,会话工厂类,会话类,over!!!

时间: 2024-10-28 22:17:46

Hibernate api 之常见的类(配置类,会话工厂类,会话类)的相关文章

java-spring中配置了一个系统调度控制器调用类shop_stat 启动报错

问题描述 spring中配置了一个系统调度控制器调用类shop_stat 启动报错 spring配置文件 applicationContext-configuration.xml 配置如下: <!-- 系统调度控制器 --> <bean id="statTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!--

spring 注解-spring容器已经配置好数据连接池,类里面用jdbc方式是不是就不管用了

问题描述 spring容器已经配置好数据连接池,类里面用jdbc方式是不是就不管用了 求大肾解答,driud阿里巴巴的数据连接池bean配置在spring容器里面!我在JAVA类中@resource注入,datasource拿到连接!是null!数据库什么链接信息都是对的.求大神解答druid连接池,获取连接的详细代码,不要沉 解决方案 你有没有在JAVA类中写set方法 按理说不写也对啊 解决方案二: spring配置ibatis的jdbc方式和proxool连接池方式 解决方案三: 不要沉啊

webwork+-xwork.xml要有什么配置,为什么我用action类的属性接收不了请求来的同名参数

问题描述 xwork.xml要有什么配置,为什么我用action类的属性接收不了请求来的同名参数 结果name和age都是null 页面里是这样的 解决方案 把你的配置文件贴出来一起看.光看这个还不清楚. 有可能出错的就是配置文件 配置文件首先你得有actions节点,内部有action节点.name值对应form的action属性去掉.action的值:

框架-JAVA问题:hibernate的自动建表功能配置完了也不成功,求教

问题描述 JAVA问题:hibernate的自动建表功能配置完了也不成功,求教 然后,测试结果红条报错,但是找不到哪里错了,是测试类没写对吗?还是怎么着,模型.映射.和自动建表的配置应该就是这么写的啊 解决方案 这个是个简单的例子,你的Role类配置映射有一个set集合多对多映射,而类定义时却没有这个成员变量呢.这篇文章跟你的例子类似,你对照看看吧. http://m.blog.csdn.net/article/details?id=7897580 解决方案二: http://blog.csdn

hql语句查询实体类News的属性category为“生活类新闻”的LIST,HQL语句怎么写?

问题描述 hql语句查询实体类News的属性category为"生活类新闻"的LIST,HQL语句怎么写? 用SSH框架,写一个实现类,查询实体类News的属性category为"生活类新闻"的LIST 返回一个LIST,该怎么写???????????????????? 实体类为News 属性为category 数据库中表名为t_news category为属性 import java.util.List; import org.springframework.st

EPower2002示例:运用工厂方法设计类

EPower2002示例:运用"工厂方法"设计类 1.新建一类库工程,命名为"VBNETDesignMode.vb"2.将Class1.vb删除3.在此工程中添加类,命名为"FactoryMethod.vb"4.在"FactoryMethod.vb"中添加产品类"Product".  (1)添加三个私有成员变量:mID,mName,mCreaDate  (2)添加三个公有属性:ID,Name,CreaDat

ASP.NET中实现根据匿名类、datatable、sql生成实体类

  这篇文章主要介绍了ASP.NET中实现根据匿名类.datatable.sql生成实体类,这个小小工具类非常实用,使用起来也很方便,需要的朋友可以参考下 在开发中可能会遇到这几种情况: 1.EF或LINQ查询出来的匿名对象在其它地方调用不方便,又懒的手动建实体类 2.通过datatable反射实体需要先建一个类 ,头痛 3.通过SQL语句返回的实体也需要先建一个类 ,头痛 4.如果通过代码生成器要写模版,需要安装或者不想生成一堆不用的类 为了解决上面的不便之处,我封装了一个实体生成类,可以扔到

基类-在MFC中如何使用自定义类

问题描述 在MFC中如何使用自定义类 我建立了MFC的对话框,并自定义了基类是static的派生类,在派生类中有自定义了许多函数,我在对话框中要使用该自定义类,怎么才能使用呢?工具条上没有该自定义的控件啊 解决方案 感觉你是想自定义控件,解决方法如下:1.新建一个MFC Application,选择Dialog based,其他一路默认就行了.2.把Custom Control 放到Dialog中.3.把控件属性Class,写成"MFCDiagramCtrl",这里很重要,如果不加,最

mfc入门-vs2010写mfc加了自己写额外写的类就出错了,添加的类没有问题

问题描述 vs2010写mfc加了自己写额外写的类就出错了,添加的类没有问题 写mfc加了自己写额外写的类就出错了,添加的类没有问题 解决方案 看不清,好像是你的构造函数重复了