tomcat+dbcp+jndi 配置
1)添加jar包 tomcat6中 TOMCAT_HOME/lib 下是公用jar包
dbcp需要3个jar包:Jakarta-Commons DBCP,Jakarta-Commons Collections,Jakarta-Commons Pool, 但是tomcat6已经用1个tomcat-dbcp.jar包含了这3个jar包,该包在 TOMCAT_HOME/lib 下,因此在tomcat下不需要再添加dbcp相关的3个包;
将mysql-connector-java-5.1.6-bin.jar 拷贝到 TOMCAT_HOME/lib 下;
2)添加数据源
在 TOMCAT_HOME/conf/context.xml 中 添加数据源:
<Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Resource name= "jdbc/test" auth= "Container" type= "javax.sql.DataSource" maxActive= "100" maxIdle= "30" maxWait= "10000" username= "root" password= "" driverClassName= "com.mysql.jdbc.Driver" </Context> |
3)在web.xml 中引用数据源
<display-name>JNDI Test</display-name> <description>A test for using of JNDI</description> <resource- ref > <description>DB Connection</description> <res- ref -name>jdbc/test</res- ref -name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource- ref > |
4)在jsp(或java)中使用数据源
<sql:query var = "rs" dataSource= "jdbc/test" > select * from test </sql:query> <html> <head> <title>DB Test</title> </head> <body> <h2>Results</h2> <c:forEach var = "row" items= "${rs.rows}" > id ${row.id}<br/> str ${row.str}<br/> </c:forEach> </body> </html> |
5)tomcat的jndi实用类
/** * 从数据库连接池获取数据库的链接 */ public Connection getConnection() { try { Context context = new InitialContext(); DataSource ds = (DataSource) context.lookup( "java:comp/env/jdbc/oa" ); } catch (NamingException e) { e.printStackTrace(); throw new RuntimeException( "jndi 数据源加载失败!" ); } boolean succ = false ;<br> Connection conn= null ;<br> try { conn = ds.getConnection(); succ = true ; } catch (SQLException e) { e.printStackTrace(); System. out .println( "connection error" ); } return conn; } |
文章乃参考、转载其他博客所得,仅供自己学习作笔记使用!!!