<Excerpt in index | 首页摘要>
c3p0自己搞定配置
<The rest of contents | 余下全文>
概述
帮朋友搞的那个项目,现在想接入数据库连接池,考虑了一下觉得c3p0不错。
然后配置。按照官方教程写了一个c3p0-config.xml
然后发现无论放在那里都不能正常配置。
无奈之下,决定自己搞一个配置文件自己读取算了
PS:
搞完之后,发现被官方教程坑了。现在不是叫c3p0-config.xml了是叫做c3p0-service.xml
不过我已经搞定了。就懒得再去重新搞了
具体实现
首先你需要如下的jar包
c3p0-0.9.5.2.jar //c3p0
mchange-commons-java-0.2.11.jar //c3p0
mysql-connector-java-5.1.7-bin.jar //mysql jdbc连接
dom4j-1.6.1.jar //xml解析库
我用的版本是这些,你可以根据自己的需求来下载相应的版本
首先,先看一下xml的配置:
1 2 3 4 5 6 7
| <?xml version="1.0" encoding="UTF-8"?> <sql-config> <classmame>com.mysql.jdbc.Driver</classmame> <url>jdbc:mysql:///woc</url> <username>root</username> <password>123456</password> </sql-config>
|
我这里只设定了最基本的需求,如果需要高度定制根据自己需求走
xml我这里设定的是放在WEB-INF目录下
然后创建JDBCUtils.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| public class JDBCUtils { public static final ComboPooledDataSource dataSource;
static { dataSource = new ComboPooledDataSource(); try { SAXReader reader = new SAXReader(); String path = Thread.currentThread().getContextClassLoader().getResource("").toString(); path = path.replace("file:", ""); path = path.replace("classes/", ""); path = path.substring(1); path += "mysql-connection-pool-config.xml";
Document document = reader.read(new File("/" + path)); Element node = document.getRootElement(); Iterator<Element> iterator = node.elementIterator(); while (iterator.hasNext()) { Element e = iterator.next(); switch (e.getName()) { case "classmame": dataSource.setDriverClass(e.getText()); break; case "url": dataSource.setJdbcUrl(e.getText()); break; case "username": dataSource.setUser(e.getText()); break; case "password": dataSource.setPassword(e.getText()); break; } } } catch (Exception e) { e.printStackTrace(); } } }
|
就这样吧。蛋疼的c3p0.