根据网上资料成功配置了tomcat的数据库连接池
具体方法:
1.把数据库JDBC驱动拷贝到%TOMCAT_HOME%/common/lib和%TOMCAT_HOME%/webapps/yourweb/WEB-INF/lib下
2.%TOMCAT_HOME%/conf/catalina/localhost/yxkh.xml如下
[code="xml"]
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="10"
maxWait="1000"
username="xx"
password="xx"
driverClassName="com.ncr.teradata.TeraDriver"
url="jdbc:teradata://xx.xx.xx.xx/CLIENT_CHARSET=cp936,TMODE=TERA,CHARSET=ASCII,database=DW_PTEMP"
/>
3.web.xml添加
DB Connection
jdbc/teradataDB
javax.sql.DataSource
Container
4. 然后在jsp调用
javax.naming.Context context = new javax.naming.InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)context.lookup("java:comp/env/jdbc/teradataDB");
java.sql.Connection conn = ds.getConnection();
能够成功打开数据库连接。
现在我的想法spring注入,避免在程序中出现
javax.naming.Context context = new javax.naming.InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)context.lookup("java:comp/env/jdbc/teradataDB");
不知应该怎么配置,怎么使用,由于对spring不太熟悉,还望指教。谢谢!
补充:
再次查找了网上资料,应该如下来配置bean xml
class="org.springframework.jndi.JndiObjectFactoryBean">
java:comp/env/jdbc/TeradataDB
如果是正确的,在jsp中应该如何调用呢?
[b]问题补充:[/b]
to zhai puhong (高级程序员)
感谢你的回复。
你的意思spring配置一个bean就是数据库连接池了吗?
package yxkh.common;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class TeradataConnection {
private static Log log = LogFactory.getLog(TeradataConnection.class);
private DataSource dataSource;
public TeradataConnection() {}
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public DataSource getDataSource() {
return dataSource;
}
public Connection getConnection() {
Connection conn = null;
try {
conn = dataSource.getConnection();
} catch (SQLException e) {
log.error("连接数据库失败", e);
}
return conn;
}
}
然后在jsp中,如下使用吗?
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
TeradataConnection db = (TeradataConnection ) ctx.getBean("dbConn");
db.getConnection();