1. 已经在Tomcat/lib 放入了数据库驱动(.jar)
2.配置Tcocat/conf context.xml 里的配置
3.代码如下
<Resource name="jdbc/ownHome" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password = "1" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;DatabaseName=books"/>
4.
我创建了个servlet,去读取数据库。为了确保别的代码不出问题,我先写了个版本1,不用JNDI,而用servlet去读取数据库,可以正确地读取。加入JNDI之后,每次返回的结果集rs都是NULL。请教高手!
DBConnection类里面的关键方法:
public DBConnection(){
try {
Context ic = new InitialContext();
DataSource soure = (DataSource)ic.lookup("java:comp/env/jdbc/books");
dbConn= soure.getConnection();
System.out.println("Connection Successful!"); //如果连接成功 控制台输出Connection Successful!
Statement stmt = dbConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY) ;
String sql="select * from USERS";
rs= stmt.executeQuery(sql); //这里的rs,每次读出来的都是null!
} catch (Exception e) {
e.printStackTrace();
}
}
2.配置Tcocat/conf context.xml 里的配置
3.代码如下
<Resource name="jdbc/ownHome" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password = "1" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;DatabaseName=books"/>
4.
我创建了个servlet,去读取数据库。为了确保别的代码不出问题,我先写了个版本1,不用JNDI,而用servlet去读取数据库,可以正确地读取。加入JNDI之后,每次返回的结果集rs都是NULL。请教高手!
DBConnection类里面的关键方法:
public DBConnection(){
try {
Context ic = new InitialContext();
DataSource soure = (DataSource)ic.lookup("java:comp/env/jdbc/books");
dbConn= soure.getConnection();
System.out.println("Connection Successful!"); //如果连接成功 控制台输出Connection Successful!
Statement stmt = dbConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY) ;
String sql="select * from USERS";
rs= stmt.executeQuery(sql); //这里的rs,每次读出来的都是null!
} catch (Exception e) {
e.printStackTrace();
}
}
解决方案 »
- 拦截器问题
- 在myeclipse的SVN更新时,怎么弹出选择要更新的文件呢?
- JSP页面报错,求大神解决啊
- tomcat6.0配置连接池报异常javax.naming.NoInitialContextException
- 求个js
- Hibernate的问题,不知是哪里有问题?
- STRUTS,如何做表单还原
- 什么是web services?
- 为什么明明Docment doc非空,而System.out.println(doc.getDocumentElement())总输出“[root: null]”?
- WEB服务器端是标准SSH框架的,怎么调用其中的service方法?一直空指针错误
- spring配置文件中的一个bean,解析一下
- Struts2初次配置启动tomcat出错
本人新手
我的servlet类是这样的。当connection 是直接从数据库中获得,没用JNDI的时候可以正常显示,那只能说明connection不正常吧?下面这段代码总是在while(rs.next())的时候报空指针异常,这说明rs就是空的。因为断定它是空的所以我没贴出来,但是既然你提到了
req.setCharacterEncoding("gbk");
resp.setCharacterEncoding("gbk");
PrintWriter m_writer = resp.getWriter();
DBConnection m_connection = new DBConnection();
ResultSet rs= m_connection.getRs();
{
try {
while(rs.next())
m_writer.println(rs.getString(2));
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
m_connection.close();
return rs;
}
<Resource name="jdbc/ownHome" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password="666666" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ownHome"/></Context>