在Hibernate.cfg.xml中既可以配置JDBC,也可以配置JNDI。在本小节中讲述数据源如何配置。
hibernate.cfg.xml
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"">
2. c3p0连接池
c3p0连接池是Hibernate推荐使用的连接池,若需要使用该连接池时,需要将c3p0的jar包加入到classpath中。c3p0连接池的配置示例如下:
hibernate.cfg.xml
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"">
项目需要构建一个java环境,使用hibernate作为数据持久层,一兄弟按照网上的说法配置了hibernate,结果搞了几天都没搞好,总是报错“could not find datasource”,最后还是我自己动手在自己机器上配个环境才引导他弄好。
要配好hibernate首先的弄清楚java在寻找hibernate.cfg.xml这个文件的时候在哪些目录中寻找,java将在以下目录中寻找hibernate.cfg.xml这个文件:
webappsname/web-inf/classes/
tomcathome/
tomcathome/lib
所以我们的hibernate.cfg.xml务必放在webapp的web-inf/classes/目录下了,放在其他目录下都不是很合适。
另外就是关于hibernate.cfg.xml中的jdbc配置了,网上的说法各异,其实最简单的就是在hibernate.cfg.xml中直接使用jdbc配置了,如下:
更改其中的driverclass和connection.url、username、password和dialect,再添加一些mapping就可以了,需要注意的是property节点的name属性中最好在前面加上hibernate。有些文章说使用tomcat的jndi,不建议这么做。同时要注意的是在hibernate.cfg.xml不要同时使用datasource和连接字符串两种配置(那个兄弟非要使用两种配置结果来不成功),因为没有必要。
其实从部署的角度来看的话,就应该是这样的,首先在生产环境下,很多时候是没有办法拿到tomcat的管理权限的是配不了jndi的,而且要去配jndi无形增加的部署的难度,在hibernate.cfg.xml中配置连接字符串就很方便部署(hibernate要是像.net中那样支持连接字符串加密就好了)。hibernate.cfg.xml存放的位置也是一样的,放在web-inf/classes/目录下,部署的时候只要拷贝webapp整个目录就可以完成部署了。
网上的文章用来做参考最好,很多东西还得靠自己领会,特别是碰到问题的时候,尽心书不如无书嘛(也别太相信我写的,说不定那天不管用了。^_^)。
附:使用tomcat jndi 数据源配置方法
参考博客:http://www.cnblogs.com/haquanwen/p/3812611.html
展开全部