Code: 我常用的HibernateUtil类,嘿嘿

  1. public final class HibernateUtil{
  2. private static SessionFactory sessionFactory;
  3. private HibernateUtil(){
  4. }
  5. //初始化
  6. static{
  7. Configuration cfg = new Configuration();
  8. cfg.configure();
  9. sessionFactory = cfg.buildSessionFactory();
  10. }
  11. public static SessionFactory getSessionFactory(){
  12. return sessionFactory;
  13. }
  14. public static Session getSession(){
  15. return sessionFactory.openSession();
  16. }
  17. }

上面是单数据库的HibernateUtil,Hibernate.cfg.xml文件默认在classpath下(src文件夹下)。

我自己写了个可以解析多个Hibernate.cfg.xml文件,访问多个数据库的HibernateUtil类(这就意味着你的项目可以使用多个数据库啊,不过对于多个数据库的事务管理我还不清楚,还是有点问题):

Code:

  1. import org.hibernate.Query;
  2. import org.hibernate.Session;
  3. import org.hibernate.SessionFactory;
  4. import org.hibernate.cfg.Configuration;
  5. public final class HbnUtil {// 根据hibernate.cfg.xml创建一个静态sessionFactory
  6. private static SessionFactory sf;
  7. private static SessionFactory MSsf;
  8. static {
  9. try {
  10. sf = new Configuration().configure("/hbn-sqlserver.cfg.xml")
  11. .buildSessionFactory();
  12. MSsf = new Configuration().configure("/hbn-mysql.cfg.xml")
  13. .buildSessionFactory();
  14. } catch (Exception e) {
  15. System.err.println("%%%% Error Creating SessionFactory %%%%");
  16. e.printStackTrace();
  17. }
  18. }
  19. public static SessionFactory getSessionFactory() {
  20. return sf;
  21. }
  22. public static Session getSession() {
  23. Session s = null;
  24. if (!sf.isClosed())
  25. s = sf.openSession();
  26. return s;
  27. }
  28. public static Session getSessionByDB(String DBName) {// 根据DBName判断
  29. Session s = null;
  30. if ("mysql".equals(DBName.toLowerCase())) {
  31. if (!MSsf.isClosed())
  32. s = MSsf.openSession();
  33. } else if ("sqlserver".equals(DBName.toLowerCase())) {
  34. if (!sf.isClosed())
  35. s = sf.openSession();
  36. } else {
  37. System.out.println("错误的 DBName!");
  38. }
  39. return s;
  40. }
  41. public static void closeSessionFactory() {
  42. if (!sf.isClosed()) {
  43. sf.close();
  44. }
  45. }
  46. public static void closeSessionFactoryByDB(String DBName) {
  47. if ("mysql".equals(DBName.toLowerCase())) {
  48. if (!MSsf.isClosed()) {
  49. MSsf.close();
  50. }
  51. } else if ("sqlserver".equals(DBName.toLowerCase())) {
  52. if (!sf.isClosed()) {
  53. sf.close();
  54. }
  55. } else {
  56. System.out.println("错误的 DBName!");
  57. }
  58. }
  59. }

HibernateUtil类(可用于连接多个数据库)相关推荐

  1. 用于连接PLC与数据库的定制解决方案

    当涉及到可编程逻辑控制器(PLC)项目和PLC连接解决方案时,系统集成商通常会定制解决方案,毕竟定制解决方案是系统集成商的专长.许多项目应用如可追溯性.质量监控.生产指标监控或高速排序,都涉及将工厂车 ...

  2. mysql util_关于mysql数据库操作工具类MySQLUtils用于连接数据提交sql脚本及结果转为JSONArray等操作...

    一.前言 关于实现mysql数据简单操作工具类MySQLUtils,用户密码连接数据库执行sql脚本ExecSQL.将查询结果转为com.alibaba.fastjson.JSONArray(fast ...

  3. C#连接达梦数据库基础功公共类

    c#程序访问达梦数据库 1.准备数据库驱动 达梦数据库安装完成后路径一般为:C:\dmdbms 找到  C:\dmdbms\drivers\dotNet\DmProvider: 我选择为.net 4. ...

  4. python 使用pymssql连接sql server数据库

    Python连接SQL Server数据库 - pymssql使用基础 ----原文地址:http://www.cnblogs.com/baiyangcao/p/pymssql_basic.html ...

  5. Android Studio 连接阿里云数据库【制作基于数据库的多人远程聊天APP】

    Android Studio 连接阿里云数据库的简单方法[制作基于数据库的多人远程聊天APP] 首先购买好一个阿里云数据库RDS[我买了一年用了49元] 1.进入官网–>打开右上角的控制台 2. ...

  6. vs连接mysql建一个表并增删查改_VS连接SQL Server数据库,增删改查详细教程(C#代码)...

    工具: 1.Visual Studio (我使用的是vs2013) 2.SQL Server  (我使用的是sql server2008) 操作: 1.打开SQL Server,打开后会看到数据库的初 ...

  7. JDBC连接sql server数据库及其它

    JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的 ...

  8. jfinal怎么连接oracle,如何用Jfinal连接多个数据库

    ActiveRecordPlugin可以支持多个数据库,多个语言,我们只需要添加多个ActiveRecordPlugin,分别配置即可. Jfinal连接多个数据库 1. 添加mssql-jdbc-7 ...

  9. Java 技术篇-java连接并操作数据库实例演示,执行查询、插入、更新和删除操作

    Java 操作数据库 第一章:Java 代码四个类实现 ① 项目结构展示 ② 数据库连接类 ③ 数据库查询类 ④ 数据库更新类 ⑤ 数据库主类 第二章:查询和更新操作实例演示 ① 查询操作演示 ② 更 ...

最新文章

  1. Linux内核 题目,《Linux内核完全注释》部分习题答案
  2. JVM 垃圾回收机制和常见算法
  3. c 连接mysql后 怎么用_使用C语言连接mysql,并进行操作
  4. 汉字笔画动图怎么做_“快乐学写字”之五:新笔画及生字间架结构形象化解说(课文1—4)...
  5. 2021牛客暑期多校训练营3 I Kuriyama Mirai and Exclusive Or 差分 + 二进制分治
  6. 2020 q5l使用手册电子版_关于2020下半年自考本科毕业生论文预答辩题目查询的通知...
  7. Python关于中文字符前面的u(转载)
  8. Python获取numpy数组中最大的5个元素(保持原顺序)
  9. java读取xml路径问题_java 中读取xml 和绝对路径
  10. [转载] Python Web开发最难懂的WSGI协议,到底包含哪些内容? WSGI服务器种类和性能对比
  11. 严版快速排序Partion方法
  12. C# string转DateTime DateTime转string
  13. CorelDRAWX4的VBA插件开发(六)录制宏与调试
  14. linux内核声卡管理,linux下声卡驱动简介
  15. php网页象棋源码,JS小游戏之象棋暗棋源码详解_javascript技巧
  16. uniapp H5文件预览,PDF预览
  17. 如何利用快解析快速实现动态域名解析,内网穿透?
  18. 一般将来时语法课教案_初中英语语法课教案设计
  19. 数据可视化笔记1 数据可视化简介(简史、分类、功能、目标)
  20. long型和int型的区别

热门文章

  1. 优Tech分享|YouTube推荐系统算法梳理
  2. 基于知识图谱的推荐系统综述
  3. 【报告分享】女性自我保护手册,教你应对10种常见危险处境.pdf(附189页pdf下载链接)...
  4. 【报告分享】2019Q3短视频KOL红人季度深度分析.pdf
  5. 【岗位详情】腾讯广告机制策略算法工程师(北京)
  6. ​深度学习基础 | Seq2seq+Attention
  7. 简单代码大全_VBA爱好者请进:VBA代码宝概述
  8. bigdecimal比较大小的方法_【初中数学思维训练】第7题——比较大小的常用方法...
  9. Leetcode每日一题:168.excel-sheet-column-title(Excel表名称)
  10. Linux+屏蔽脚本,Linux之劫持rm命令实现安全删除和屏蔽删除/、/*脚本