补充一点,vbb.user中有1条记录,但输出为0。
解决方案 »
- java 中继承后class 修饰符问题!
- java学习书籍推荐
- java如何实现解码
- JComboBox的addItem()中的参数问题
- java文件编译后的.class 用打开方式 打了下+>记事本,不小心点了永久方式 ,后删了重新编译.JAVA文件,后的.class 文件,还是出现输出乱码.怎
- 想做java程序员有没有必要学jsp 来者有分
- 紧急求助:jsp 在windows下访问sqlserver能正常显示数据库里的中文,而在linux下就显示?(乱码)
- class literal是什么意思;请指教其确切中文翻译
- 用JAVA开发 中国式报表,请大家给点意见
- 理解JDK和JRE过程中有一些不明白的地方
- 我安装的tomcat启动时,会出现如下错误,为什么?有谁知道啊?谢谢
- 一个关于JDBC的问题
...
li_count = rs.getInt("no");这样呢?
我怀疑你的数据库连接建立没有成功,cuz如果成功,应该有输出“数据库连接成功!”,否则应该有SQLException。另外,请在Statement Stmt = con.createStatement();和ResultSet rs = Stmt.executeQuery(ls_sql);两行语句前加上assert判断:
if( con != null ){
Statement Stmt = con.createStatement();
}else{
// out put invalid connection
}
if( Stmt != null ){
ResultSet rs = Stmt.executeQuery(ls_sql);
}else{
// out put invalid statement
}因为是jsp代码,我不便本地测试,你给出详细输出会更有帮助。
输出内容就这些,没有其它的了。我在resin中用:
<resource-ref>
<res-ref-name>jdbc/vbb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="com.caucho.jdbc.mysql.Driver"/>
<init-param url="jdbc:mysql_caucho://localhost:3306/vbb"/>
<init-param user="root"/>
<init-param password=""/>
<init-param max-connections="20"/>
<init-param max-idle-time="30"/>
</resource-ref>然后用以下servlet,可以正常运行,输出结果也是正确的:
import java.io.*;import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.naming.*;
import javax.sql.*;public class TestDatabase extends HttpServlet {
DataSource pool; public void init()
throws ServletException
{
try {
Context env = (Context) new InitialContext().lookup("java:comp/env"); pool = (DataSource) env.lookup("jdbc/vbb"); if (pool == null)
throw new ServletException("`jdbc/vbb' is an unknown DataSource");
} catch (NamingException e) {
throw new ServletException(e);
}
} public void doGet(HttpServletRequest req,
HttpServletResponse res)
throws IOException, ServletException
{
res.setContentType("text/html");
PrintWriter out = res.getWriter(); Connection conn = null;
try {
conn = pool.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select username, password from user"); out.println("Users:<br>");
while (rs.next()) {
out.print(rs.getString("username"));
out.print(" ");
out.print(rs.getString(2));
out.println("<br>");
} rs.close();
stmt.close();
} catch (SQLException e) {
throw new ServletException(e);
} finally {
try {
if (conn != null)
conn.close();
} catch (SQLException e) {
}
}
}
}
我按你说的加了assert的判断,结果输出信息中说明:
Undefined variable or class name: Stmt................好象是数据库没有连接成功,怎么回事?
Class.forName("org.gjt.mm.mysql.Driver");
的时候就出现异常了,奇怪的是这个异常为什么没有catch好象是org.gjt.mm.mysql.Driver这样一个class没找到........
在java.sun.com/jdbc上,有很明显的说明:
jdbc api已经完全地包含在j2se1.4中............
可为什么找不到呢??
还有,这些JDBC Driver我该在哪里找?是不是MYSQL的,我就该到mysql去找?
还有,我用jdbc-odbc桥也出同样的错,我又该到哪里去找呢?
Class.forName("jdbc.odbc.JdbcOdbcDriver")加载,另外你要为你的mysql数据库配置一个odbc源mm mysql jdbc是一个常用的mysql jdbc driver
参考以下链接:
http://www.mysql.com/downloads/api-jdbc.html至于参考图书,你可以先看看网上的教程,wrox的书不错,推荐