Tomcat 中JDBC资源是利用JNDI来设计的,要在Tomcat中配置JDBC资源,学会如何配置JNDI资源就可以了。下面就以JDBC资源来说明如何使用Tomcat的资源服务。
1、定义JNDI资源
可以定义成全局资源,也可以定义为针对某个Web Context的资源。
方案1:在Context中定义JNDI资源:
定义资源,要使用,下面定义一个JDBC资源:
name=”jdbc/mysql_jdbcTest”
type=”javax.sql.DataSource”
driverClassName=”com.mysql.jdbc.Driver”
username=”cloudlink”
password=”cloudlink”
maxIdle=”2”
maxWait=”5000”
url=”jdbc:mysql:192.168.2.92:3306/jdbcTest?useEncoding=UTF-8”
maxActive=”4”
/>
方案2:
定义全局的JNDI资源,在tomcat/conf/server.xml的中定义。
下面是一个全局资源的定义,将其放在中。
name=”jdbc_test_1”
type=”javax.sql.DataSource”
driverClassName=”com.mysql.jdbc.Driver”
username=”cloudlink”
password=”cloudlink”
maxIdle=”2”
maxWait=”5000”
url=”jdbc:mysql:192.168.2.92:3306/jdbcTest?useEncoding=UTF-8”
maxActive=”4”
/>
然后在链接全局资源:
如此就将一个全局资源链接到一个Context上了。
2、在Web应用中定义JNDI资源的引用
在web.xml中声明要引用哪些JNDI资源。
jdbc/mysql_jdbcTest
javax.sql.DataSource
Container
在web应用中定义了jndi资源的引用后,web应用中就可以根据这个引用找到相应的资源。
3、Web应用中使用JNDI资源
public void get(HttpServletRequest request, HttpServletResponse response) throws Exception{
Context context=new InitialContext();
Context envContext=(Context)context.lookup(“java:/com/env”);
DataSource ds=(DataSource)envContext.lookup(“jdbc/mysql_jdbcTest”);
Connection conn=ds.getConnection();
Statement stmt=conn.createStatement();
String sql=”select userid, username, age from User”;
ResultSet rs=stmt.executeQuery(sql);
PrintWriter out= response.getWriter();
While(rs.next()){
out.println(rs.getString(1)+”\t”+rs.getString(2)+”\t”+rs.getInt(3)+”
”);
}
rs.close();
stmt.close();
conn.close();
out.flush();
out.close();
}
4、创建相应的数据库、表
插入数据:
insert into User (userid, username, age) values(‘hello1’,’name1’,20);
5、启动Tomcat,进行测试。
在启动Tomcat前,需要在Tomcat/lib下添加MySql的JDBC驱动。