Configuration 对象创建

要创建SessionFactory , 首先要创建Configuration 对象。

这个对象就是去读取hibernate 的一些配置信息。

默认状况下, hibernate会到 classPath 目录下加载hibernate.cfg.xml 文件。

这里延续上一篇的例子:

在Eclipse 中进行开发。

这个配置文件的方式可以有多种, 可以是xml , 可以是properties , 也可以直接在代码中写配置。

方式1.  在src 目录下放入  hibernate.cfg.xml, 类似上篇的例子

方式2.  在 src 目录下放入 hibernate.properties

内容如下:

[html] view plain copy
  1. hibernate.dialect=org.hibernate.dialect.MySQLDialect
  2. hibernate.connection.driver_class=com.mysql.jdbc.Driver
  3. hibernate.connection.url=jdbc:mysql://localhost:3306/test
  4. hibernate.connection.username=root
  5. hibernate.connection.password=123456
  6. #hibernate.hbm2ddl.auto=create

可以看出, 这种方式无法添加 User.hbm.xml 的配置, 所以可以在代码中添加:

[java] view plain copy
  1. Configuration configuration = new Configuration().addResource("com/oscar999/Usr.hbm.xml");

方式3.  可以直接在代码中进行设置, 类似

[java] view plain copy
  1. Configuration configuration = new Configuration().addResource("com/oscar999/Usr.hbm.xml")
  2. .setProperty("hibernate.connection.driver_class","com.mysql.jdbc.Driver")
  3. .setProperty("hibernate.connection.url", "jdbc:mysql://localhost:3306/test")
  4. .setProperty("hibernate.connection.username", "root")
  5. .setProperty("hibernate.connection.password", "123456")
  6. .setProperty("hibernate.dialect","org.hibernate.dialect.MySQLDialect")
  7. .setProperty("hibernate.hbm2ddl.auto", "update");

也可以通过

[java] view plain copy
  1. Configuration configuration = new Configuration().addClass(com.oscar999.Usr.class)

添加映射文件。

一般状况下, 添加 hibernate.cfg.xml 会比较常用, .properties 和 .xml 也可以并存。

除此之外, 如果不想使用默认的文件名, 也可以这样:

[java] view plain copy
  1. File file = new File("src/com/oscar999/myhibernate.xml");
  2. Configuration config = new Configuration();
  3. config.configure(file);

SessionFactory 对象的创建

Configuration 创建完成之后, 接下来就是创建 SessionFactory 了。

在Hibernate 3中,创建SessionFactory 的方式是:

[java] view plain copy
  1. SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

但是在, Hibernate 4 中, 这种方法已经过时了。

目前推荐的使用方式是:

[java] view plain copy
  1. ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
  2. .applySettings(configuration.getProperties()).build();
  3. SessionFactory sessionFactory = configuration
  4. .buildSessionFactory(serviceRegistry);

至于为什么要使用这种方式, 可以参考:

http://planet.jboss.org/post/hibernate_orm_service_registry

session 的使用

sessionFactory 有了, 接下来就简单了,直接贴一个例子

[java] view plain copy
  1. Configuration configuration = new Configuration().addClass(com.oscar999.Usr.class);
  2. ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
  3. .applySettings(configuration.getProperties()).build();
  4. SessionFactory sessionFactory = configuration
  5. .buildSessionFactory(serviceRegistry);
  6. Session session = sessionFactory.openSession();
  7. session.beginTransaction();
  8. session.save(new Usr("uesr3"));
  9. session.getTransaction().commit();
  10. session.close();
  11. sessionFactory.close();

需要注意的就是, 记得关闭Session 和 SessionFactory

[Hibernate系列—] 2. 创建SessionFactory 与 Session相关推荐

  1. Hibernate初始化创建SessionFactory,Session,关闭SessonFactory,session

    1.hibernate.cfg.xml 1 <?xml version='1.0' encoding='UTF-8'?> 2 <!DOCTYPE hibernate-configur ...

  2. Hibernate之代码创建SessionFactory

    hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibe ...

  3. Hibernate的执行流程——SessionFactory的创建

    Hibernate的执行流程: 1.创建Configuration类实例,用来读取并解析配置文件(如Hibernate.cfg.xml),一个Configuration实例代表hibernate所有P ...

  4. hibernate之SessionFactory和Session

    1. 关于SessionFactory 1.) SessionFactory是一个与连接池的类差不多的东西,在这里存着多个Session-与数据库的会话(相当于connection) 2.) 因为连接 ...

  5. Hibernate - SessionFactory和Session详解

    [1]SessionFactory 接口 SessionFactory 接口是针对单个数据库映射关系经过编译后的内存镜像,是线程安全的. SessionFactory 对象一旦构造完毕,即被赋予特定的 ...

  6. 【SSH框架】之Hibernate系列一

    微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.Hibernate框架概述 (1).什么是Hibernate Hibernate是一个开放源 ...

  7. (Hibernate进阶)Hibernate系列——总结篇(九)

    这篇博文是hibernate系列的最后一篇,既然是最后一篇,我们就应该进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通. 概念 Hibernate是一个对象关系映射框架,当然从分层的角度看,我 ...

  8. Hibernate 系列 02 - Hibernate介绍及其环境搭建

    引导目录: Hibernate 系列教程 目录 昨晚喝多了,下午刚清醒,继续搞Hibernate.走起. 觉得还行的话,记得点赞哈,给我这个渣渣点学习的动力.有错误的话也请指出,省的我在错误上走了不归 ...

  9. 使用Struts2,Hibernate和MySQL创建个人MusicManager Web应用程序的研讨会

    概述: 在本研讨会教程中,我们将使用Struts 2,Hibernate和MySQL数据库开发一个个人音乐管理器应用程序. 该Web应用程序可用于将您的音乐收藏添加到数据库中. 我们将显示用于添加唱片 ...

最新文章

  1. 使用visualvm远程监控LINUX服务器JVM
  2. java基础之包装类
  3. YbtOJ#20066-[NOIP2020模拟赛B组Day4]筹备计划【线段树,树状数组】
  4. 第一个将Palette Mode引入VVC(H.266),阿里云在JVET会议上引起关注
  5. Maven学习总结(54)——使用 git-commit-id-plugin 插件来管理项目发版
  6. 不会框架不要紧,我带你自定义框架
  7. 4.网络层(2)---子网划分
  8. SQL数据库基础(六)
  9. STM32中使用MMA7660重力加速度传感器
  10. 蚂蚁全媒体中心总编刘鑫炜解答:「李子柒说时代给了我一阵风」,成就自媒体网红需要哪些助力?
  11. Landsat系列卫星数据应用介绍
  12. 设置多个dns_迅雷:要想下载速度快 请避免使用国外公共DNS服务
  13. 地址解析(仅供参考与学习)<Java>
  14. 网络工程师软件安装包合集
  15. 快速在数据库添加一年的日期,区分休息日和工作日
  16. 一次正交设计和组合设计之旅
  17. 用 HTTPS 安全吗?HTTPS 的原理是啥?
  18. 文件下载的三种方式,前端和后端实现
  19. 7-1 求N分之一序列前N项和 (15 分)
  20. 太弱的愿望 = 没有愿望

热门文章

  1. 【数字信号处理】线性时不变系统 LTI ( 判断某个系统是否是 “ 非时变 “ 系统 | 案例一 | 先变换后移位 | 先移位后变换 )
  2. 【错误记录】Windows 系统 bat 脚本报错 ( 使用 pause 拦截窗口自动关闭 | 方便查看错误 )
  3. 【Java 并发编程】线程池机制 ( 线程池状态分析 | 线程池状态转换 | RUNNING | SHUTDOWN | STOP | TIDYING | TERMINATED )
  4. 【刷题记录】杂题记录
  5. 二周第三次课(3月28日)
  6. pdf.js 在线阅读PDF
  7. window.open打开一个新空白页面,不会自动刷新【解决方案】
  8. 网页瀑布流效果实现的几种方式
  9. 关于 微软必应词典客户端(pc) 的案例分析
  10. mysql空间扩展 VS PostGIS