hibernate动态链接数据库(非spring)

最近要做一个项目,考虑到流量达到一定程度以后要实现一定的抗负荷能力,所以考虑动态链接多个数据库。

该项目基于struts2+hibernate4。

在网络上察看了大量的教程,但是设置都有问题:主要是当设置Configeration的时候无法加载配置文件或者setProperty有问题。现在解决方案如下:

1、关于配置文件

凡是使用了hibernate的人都知道默认的配置文件有两种:hibernate.property和hibernate.cfg.xml。因此,当你要动态加载(就是new Configeration.configure("???")的时候)你的classpath(默认是src)下不能有以上两个文件出现,否则貌似会产生各种意想不到的冲突。

2、关于property

本人做的项目当中主要是通过setProperty设置connection.url等,因此原来的代码是:

protected Configuration conf=new Configuration().configure("/000000000000002.cfg.xml")
			.setProperty("connection.url", "jdbc:mysql://localhost/user");
但是后来发现死活是不行的,通过察看consol的信息:

INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL []
发现url总是没有设置好……最后通过观察网络上的各种解释发现:

在setProperty当中,connection.url虽然符合在配置文件当中的设置,但是不能在setProperty当中起作用,因此,代码修改成这样:

protected Configuration conf=new Configuration().configure("/000000000000002.cfg.xml")
			.setProperty("hibernate.connection.url", "jdbc:mysql://localhost/user");
加上一个hibernate以后就ok了……

你可能感兴趣的:(java,Hibernate)