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驱动。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。