刚开始学java,看了几个例子程序,然后改写,JSP调用bean如果返回rs对象,在jsp中通过<rs.getString("属性")>可以返回正确的值。我想作一个密码验证bean,传人用户名,和密码,检索数据库看是否吻合,给个提示,可是总也不成,查询有问题,可能执行sql语句没结果。我把这个程序简化,参数也直接在bean里面初始化了,看能不能返回一个记录属性的字符串。程序如下-------------------------AddrBook.java--------------
package test;
import java.sql.*; public class AddrBook {
String a;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null; public String executeQuery() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/artikel","root","7788");
} catch(java.lang.ClassNotFoundException e) {
System.err.println("Load Driver Error: " + e.getMessage());
}
catch(SQLException ex) {
System.err.println("Get Connection Error: " + ex.getMessage());
}
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM user WHERE username = 'ga'"); // 查询数据库,指向用户ga的记录
a= rs.getString("key"); //ga的密码 赋值给 a, System.out.println(a);
} catch(SQLException ex) {
System.err.println("SQL Error: " + ex.getMessage());
}
return a; //返回密码
} public void close() throws SQLException {
stmt.close();
conn.close();
}
}
-----------------check.jsp--------------
<%@ page language="java" import="java.sql.*" %><jsp:useBean id="workM" scope="page" class="test.AddrBook" /><%
String a=workM.executeQuery();
%> a=
<%=a%>
<% workM.close(); %>
-------------------------------------------
结果应该是 用户 ga 的密码,可是总显示 a=null我刚开始学java,不大适应面向对象编程,可能上面有些想当然的东西,高手一定能手到擒来,不胜感激
package test;
import java.sql.*; public class AddrBook {
String a;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null; public String executeQuery() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/artikel","root","7788");
} catch(java.lang.ClassNotFoundException e) {
System.err.println("Load Driver Error: " + e.getMessage());
}
catch(SQLException ex) {
System.err.println("Get Connection Error: " + ex.getMessage());
}
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM user WHERE username = 'ga'"); // 查询数据库,指向用户ga的记录
a= rs.getString("key"); //ga的密码 赋值给 a, System.out.println(a);
} catch(SQLException ex) {
System.err.println("SQL Error: " + ex.getMessage());
}
return a; //返回密码
} public void close() throws SQLException {
stmt.close();
conn.close();
}
}
-----------------check.jsp--------------
<%@ page language="java" import="java.sql.*" %><jsp:useBean id="workM" scope="page" class="test.AddrBook" /><%
String a=workM.executeQuery();
%> a=
<%=a%>
<% workM.close(); %>
-------------------------------------------
结果应该是 用户 ga 的密码,可是总显示 a=null我刚开始学java,不大适应面向对象编程,可能上面有些想当然的东西,高手一定能手到擒来,不胜感激
if(rs.next())
{
a= rs.getString("key");
}这样试试吧....---------------如果可以请结贴吧
所以要
rs.next()
将游标指向第一个结果
这样才可以取得结果楼上应当告之错在何处