我是冬眠和try 事物的新手. 有一件事似乎让所有人都觉得好笑,那就是如何连接到不同的数据库? 我这里有两个问题:

  1. 如果在同一个Web应用程序中,我需要连接到MySQL和Oracle,我该怎么做?
  2. 我使用的是MySQL,有test1和test2两个数据库,如何连接和检索数据?

我在一篇博客中读到,我们可以创建不同的配置文件并这样做. 我试过了,但不成功. 这是我try 过的:

SessionFactory sf = (SessionFactory) new Configuration().configure(path);

其中path是配置文件的路径. 这条路对吗?

推荐答案

以注释映射为例:

Configuration cfg1 = new AnnotationConfiguration();
cfg1.configure("/hibernate-oracle.cfg.xml");
cfg1.addAnnotatedClass(SomeClass.class); // mapped classes
cfg1.addAnnotatedClass(SomeOtherClass.class);
SessionFactory sf1 = cfg1.buildSessionFactory();

Configuration cfg2 = new AnnotationConfiguration();
cfg2.configure("/hibernate-mysql.cfg.xml");
cfg2.addAnnotatedClass(SomeClass.class); // could be the same or different than above
cfg2.addAnnotatedClass(SomeOtherClass.class);
SessionFactory sf2 = cfg2.buildSessionFactory();

然后使用sf1和sf2获取每个数据库的会话.对于映射文件,只需使用cfg.addClass,而不是addAnnotatedClass.在本例中,将cfg.xml文件放在根包中.它们将具有Oracle或MySQL方言和连接信息.

Database相关问答推荐

避免数据库联接的两个查询替换

带有字符串列的 SQL 之间的子句

SQL Server - 使用计数函数与相交

sql server:在必要时在外键上创建索引

通过删除执行计划中的排序运算符来优化 SQL 查询

如何在 VS 2012 的 SQL Server 数据库项目中存储静态数据

ORM 性能成本

在 PostgreSQL 上获取数据库创建日期

将实体框架中的字符串列映射到枚举

在 PostgreSQL 中使用 pg_notify(text, text) 监听/通知

如何处理 SQL Server 中列名中的空格?

主键、唯一键和外键约束以及索引之间有什么区别?

您如何在数据库中构造配置数据?

JOOQ 与Hibernate

什么是数据库中的死锁?

谁有维基数据库?

如何使用 MySQL Workbench 架构差异两个数据库?

Twisted + SQLAlchemy 和最好的方法

最佳事件采购数据库策略

自引用表上的 SQL 递归查询 (Oracle)