Tomcat:定义JNDI资源,访问数据库
Tomcat 中JDBC资源是利用JNDI来设计的,要在Tomcat中配置JDBC资源,学会如何配置JNDI资源就可以了。下面就以JDBC资源来说明如何使用Tomcat的资源服务。
1、定义JNDI资源
可以定义成全局资源,也可以定义为针对某个Web Context的资源。
方案1:在Context中定义JNDI资源:
定义资源,要使用<Resource>,下面定义一个JDBC资源:
<Context> <Resource auth=”Container” 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” /> </Context>
方案2:
定义全局的JNDI资源,在tomcat/conf/server.xml的<GlobalNamingResource>中定义。
下面是一个全局资源的定义,将其放在<GlobalNamingResource>中。
<GlobalNamingResource> <Resource auth=”Container” 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” /> </GlobalNamingResource>
然后在<Context>链接全局资源:
<Context> <ResourceLink global=”jdbc_test_1” name=”jdbc/mysql_jdbcTest” type=”javax.sql.DataSource” /> </Context>
如此就将一个全局资源链接到一个Context上了。
2、在Web应用中定义JNDI资源的引用
在web.xml中声明要引用哪些JNDI资源。
<resource-ref> <res-ref-name>jdbc/mysql_jdbcTest</res-ref-name> <res-type>javax.sql.DataSource</res-ref-name> <res-auth>Container</res-ref-name> </resource-ref>
在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)+”<br>”); } 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驱动。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。