package cn.hibernate;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; /**
* 创建一个工厂类 用于创建SessionFactory唯一的一个
*/
public class SessionFactoryUtils {
private static SessionFactory sessionFactory;
// 在静态的代码块中创建这个对象
static {
// 1:创建Configuration对象,用于读取hibernate.cfg.xml文件
Configuration config = new Configuration();
// 默认读取hibernte.cfg.xml
config.configure();
// 2:创建SessionFactory对象
sessionFactory = config.buildSessionFactory();
}
//3:提供一个静态的方法-返回SessionFactory的实例
public static SessionFactory getSessionFatory(){
return sessionFactory;
}
} 步4:测试是否连接数据库成功 – 获取 Connection对象
@Test
public void test1() {
// 1:获取 SessionFactory
SessionFactory sf = SessionFactoryUtils.getSessionFatory();
// 打开一个新的连接会话
Session session = sf.openSession();//
// 通过doWork获取一个COnnection,则所有在execute里面执行的方法都被Session控制
session.doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
System.err.println("连接是:" + connection);
}
});
session.close();
}

package cn.hibernate;

import
org.hibernate.SessionFactory;

import
org.hibernate.cfg.Configuration;

/**

* 创建一个工厂类用于创建SessionFactory唯一的一个

*/

publicclass SessionFactoryUtils {

privatestatic SessionFactory sessionFactory;

// 在静态的代码块中创建这个对象

static {

// 1:创建Configuration对象,用于读取hibernate.cfg.xml文件

Configuration config = new Configuration();

// 默认读取hibernte.cfg.xml

config.configure();

// 2:创建SessionFactory对象

sessionFactory = config.buildSessionFactory();

}

//3:提供一个静态的方法-返回SessionFactory的实例

publicstatic SessionFactory getSessionFatory(){

returnsessionFactory;

}

}

步4:测试是否连接数据库成功 – 获取 Connection对象

@Test

publicvoid test1() {

// 1:获取 SessionFactory

SessionFactory sf = SessionFactoryUtils.getSessionFatory();

// 打开一个新的连接会话

Session session = sf.openSession();//

// 通过doWork获取一个COnnection,则所有在execute里面执行的方法都被Session控制

session.doWork(new Work() {

@Override

publicvoid execute(Connection connection) throws SQLException {

System.err.println("连接是:" + connection);

}

});

session.close();

}

hibernate 创建工厂类的更多相关文章

  1. Hibernate之工具类HibernateUtil

    原创文章,转载请注明:Hibernate之工具类HibernateUtil  By Lucio.Yang 1.最简单的工具类,实现SessionFactory的单例共享,session的管理 pack ...

  2. spring 的工厂类

    spring 的工厂类 1. 工厂类 BeanFactory 和 ApplicationContext 的区别. ApplicationContext 是 BeanFactory 的子接口,提供了比父 ...

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

    1:Configuration :配置管理类对象 1.1:config.configure(): 加载主配置文件的方法(hibernate.cfg.xml) ,默认加载src/hibernate.cf ...

  4. Swift游戏实战-跑酷熊猫 06 创建平台类以及平台工厂类

    这节内容我们一起学习下随机长度的踩踏平台的原理是怎么样的. 要点: 平台类 我们的平台类继承于SKNode,这样就能被添加进其它节点进而显示在场景中. 它有一个方法来创建平台,这个方法接收一个包含SK ...

  5. 使用DAO工厂创建实现类对象

    首先分析DAO模式中的每一部分 VO(对象实体):这个类成员变量与数据库中每个字段一一对应,同时提供了相应是set和get方法来设置或取得数值.这个类一般是通过IDE自动生成的 DAO(数据访问接口) ...

  6. 创建在类路径资源[applicationcontext]中定义名为“工厂”的bean时出错。:在设置bean属性“dataSource”时,无法解析对bean“dataSource”的引用;嵌套异常是org.springframe .beans.factory。BeanCreationException:创建名为“数据源”的bean时出错,该名称是在类路径资源[applicationcontext

    控制台报错: 创建在类路径资源[applicationcontext]中定义名为“工厂”的bean时出错.:在设置bean属性“dataSource”时,无法解析对bean“dataSource”的引 ...

  7. 通过myEclipse创建hibernate的实体类

    今天有个新项目中需要使用到hibernate,刚好数据库表已经创建完毕,就顺便来总结一下通过myEclipse创建hibernate的实体类. 1..在myEclipse中选择MyEclipse Da ...

  8. Hibernate初探之单表映射——创建持久化类

    编写第一个Hibernate例子 第二步:创建持久化类(持久化类的设计原则要遵循javabeans的设计原则) javabeans的设计原则: 1.公有的类2.提供公有的不带参数的默认的构造方法3.属 ...

  9. 工厂类,配置文件,静态方法,反射构成编译器解耦;ioc的一个概念 ;通过xml创建容器里面存储对象

    工厂类,配置文件,静态,反射方法构成编译器解耦;ioc的一个概念

随机推荐

  1. 【Ansible 文档】【译文】模式

    Patterns 模式 Ansible中的模式是指我们如何决定那些机器执行管理操作.这里意味着与那些主机通信,但是对于playbook,它是指哪些主机应用特定的配置或执行特定程序. 我们将重温一下In ...

  2. ES6标准入门之变量的解构赋值简单解说

    首先我们来看一看解构的概念,在ES6标准下,允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称作解构,简而言之粗糙的理解就是变相赋值. 解构赋值的规则是,只要等号右边的值不是对象或者数组 ...

  3. 关于java中的使用通配符错误,错误信息Diamond types are not supported at language level '5‘

    当时,我问了下大神,他们问我是不是jdk问题.因为jdk8才支持这样的棱形写法.当时自己的jdk版本是jdk8,然后就奇怪了,最后我发现原来在Language level中调成了5.0 5.0不支持6 ...

  4. uwsgi+django 配置

    uwsgi+django 创建新的虚拟环境,且解决crm的环境依赖 在虚拟环境下安装uwsgi pip3 install uwsgi 学习uwsgi命令,如何启动python应用 启动python w ...

  5. CSS做一个Switch开关

    本文为博主原创,转载请注明出处. Switch开关: 根据需求可知,Switch开关只有两种选择,true或false.所以我们想到HTML的checkbox控件,用它来做. <input id ...

  6. 2019年春季学期《C语言程序设计II》助教注意事项

    本学期<C语言程序设计II>课程安排 理论课时24(1-12周),实验课时8(13周),课程设计课时16(14-15周) 理论课教学内容 附:教学进度表 本学期实验课和课程设计参考教材 & ...

  7. JAVA程序员必看的15本书-JAVA自学书籍推荐

    作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...

  8. 6、使用jconsole+VisualVM分析JVM

    一.不断增加对象触发GC的代码 VM 参数:-Xms100m -Xmx100m -XX:+UseSerialGC import java.util.ArrayList; import java.uti ...

  9. 外部事件/中断的区别及EXTI->SWIER的用途

    EXTI_SWIER作用:允许我们通过程序控制就可以启动中断/事件线 1.产生事件的线路最终的产物是一个脉冲信号,这个脉冲信号可以给其他外设电路使用,比如定时器TIM.模拟数字转换器ADC等等. 2. ...

  10. ElasticSearch查询 第二篇:文档更新

    <ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...