读书人

java jndi的运用

发布时间: 2012-12-20 09:53:21 作者: rapoo

java jndi的使用

?

java jndi的使用

1.配置jndi

1-1:在WebRoot/META-INF/新建context.xml文件(也可以把tomcat/conf/下的context.xml复制过来;

文件格式如下;把这段放上面这个文件Context这个节点里面就行了

1-1-1:mysql

<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"

maxActive="600" maxIdle="32" maxWait="32" username="root" password="123"

driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.0.11:3306/test" />

1-1-2:oracle

<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"?

maxActive="600" maxIdle="32" maxWait="32" username="root" password="123"?

driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@192.168.0.11:1521:test"/>

1-2;在tomcat/server.xml里面配置也行;也就是上面这段话,放下相同的节点下也行

2.有些说需要在web.xml里面配置;

<resource-ref>

<description>de</description>

<res-ref-name>jdbc/test</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

//上面这话我也配置也行

3.在java中使用

?

import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import javax.naming.Context;import javax.naming.InitialContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.sql.DataSource;public class Test{ public  Connection getInstance()throws Exception{Connection conn = null;try{Context context = new InitialContext();   DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/test");   //jdbc/test这是上面配置好的System.out.println(ds);conn = ds.getConnection();  }catch (Exception e) {e.printStackTrace();}return conn;}public void queryUserInfo(){Connection conn=null;PreparedStatement prep=null;ResultSet rs=null;try {conn = this.getInstance();String sql="select * from userInfo";prep = conn.prepareStatement(sql);rs = prep.executeQuery();if(rs!=null){while(rs.next()){System.out.println("username:"+rs.getString("USERNAME")+"\t"+"password"+rs.getString("password"));}}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {rs.close();prep.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void main(String [] args){queryUserInfo();//执行}}

?4.问题

?org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)

at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)

//上面这错是因为mysql.jar没有在tomcat/lib下,加下lib下就ok了

读书人网 >编程

热点推荐