标签:实现 数据 抽象 nbsp 管理 return tin void 方案
tomcat配置数据源步骤:
1、配置Tomcat的conf/context.xml -----------> 直接粘贴到<context></context>中
<Resource name="jdbc/news" 数据源的逻辑名称,可以随便取,但是会用到
auth="Container" 认证、容器管理的、不用管
type="javax.sql.DataSource" 容器类型
maxActive="100" 连接池里最大的连接数量
maxIdle="30" 最大同时能有30个空闲链接
maxWait="10000" 最大的等待时间。等待连接
username="root"
password="kgc"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/kgcnews"
/>
2、使用JNDI获取连接对象
/*** * 用过数据源连接数据库 */ public static void getConn(){ try { //初始化上下文 Context context = new InitialContext(); //获取在context.xml中已配好的数据源java:comp/env/ + 数据源逻辑名 DataSource ds = (DataSource) context.lookup("java:comp/env/bigwork"); //根据数据源获得连接对象 conn = ds.getConnection(); } catch(Exception e) { e.printStackTrace(); } }
3.错误
(1)找不到数据源
解决办法:
在eclipse中的server中直接配置,可能在tomcat电脑路径中配置了但是没有配上
<Resource 配到server.xml中,又在context.xml中添加<ResourceLink。。。name=" 数据源逻辑名">
(2)java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z
解决方案:
mysql-connector 版本为 5.0.4 ,那么对应的 dbcp 和 pool 版本应该为 1.4 和 1.6 。
5.0.4 不应该使用 2.0 及以上版本的 dbcp 和 pool。因为 在 dbcp 中 org.apache.commons.dbcp2.DelegatingConnection 有如下代码:
try {
return _conn.isValid(timeout);
}
catch (SQLException e) {
handleException(e);
return false;
}
上述代码中 isVaild 在 com.mysql.jdbc.Connection (5.0.4 ) 中并未实现上述方法,因此将会抛出抽象方法错误。
如果需要使用 dbcp 2.0 ,那么 mysql-connector 必须使用 5.1.3 版本。
标签:实现 数据 抽象 nbsp 管理 return tin void 方案
原文地址:http://www.cnblogs.com/sangong/p/7043924.html