1.需要知道的:
- DBCP在hibernate3中以及不再被支持了,由于作者提出过bug,后续版本没有加入对其的支持。
- 推荐使用proxool,负面新闻最少的连接池
- 下面的图显示了,Hibernate 数据源的四种,分别是C3p0、JDBC、JNDI、Proxool,下面分别做解析
C3p0:
1org.gjt.mm.mysql.Driver 2root 3jdbc:mysql://localhost:3306/hibernate 4root 5hibernate 6testdb 7org.hibernate.dialect.MySQL5InnoDBDialect 8true 9true 10create 11true 12UTF-8 13 14org.hibernate.c3p0.internal.C3P0ConnectionProvider 1520 165 17120 18100 19120 202
JDBC:
在没有做任何配置的情况下,默认就是JDBC 由Hibernate 自发完成对数据库连接的创建
1org.gjt.mm.mysql.Driver 2root 3jdbc:mysql://localhost:3306/hibernate 4root 5hibernate 6testdb 7org.hibernate.dialect.MySQL5InnoDBDialect 8true 9true 10create 11true 12UTF-8
JNDI:
JNDI是Java 命名和目录接口(Java Naming and Directory Interface,JNDI)的简称.从一开始就一直是 JavaEE 企业的核心技术之一。在JMS,JMail,JDBC,EJB等技术中,就大量应用的这种技术。
-
修改conf/server.xml文件,在GlobalNamingResources节点中添加
1
然后接着再修改conf/context.xml文件,在Context节点中添加引用,最后还需要重启一下tomcat服务
1
然后再hibernate.cfg.xml配置文件中加入JNDI的配置即可
1 2 56 7 8 9 10 11 12 13 27java:comp/env/jdbc/bookshop 14 15update 16true 17true 18 19org.hibernate.dialect.MySQL5Dialect 20 21thread 22 23 2425 26
Proxool(推荐):
主配置文件:
1 2org.hibernate.proxool.internal.ProxoolConnectionProvider 3DBPool 4proxoolconf.xml
次要配置文件:
1 2 3 56 31 32 ```7 8 30DBPool 9 1011 jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=UTF812 13 14com.mysql.jdbc.Driver 1516 19 2017 18 90000 21 2220 23 245 25 26100 27 2810 29