我是一个servlet的初学者,之前用model 1 模式将所有代码放在一个文件里时连接、操作数据库都正常!可是现在对数据库的操作单独写在UserBeanC文件里面就不能通过了!!!进过我在三检查,try、catch发出就是 rs=ps.executeQuery("select top 1 password from [dbo].[user] where userId='"+u+"'");这句话有错但我完全不知道错在哪里!我甚至在sql server里面运行该语句都能查询通过,求大家帮我看看吧!!!(补充说明:我用的数据库是sql server 2008,操作系统win7)
package com.liz;
import java.sql.*;
public class UserBeanCl
{
private Connection ct=null;
private Statement ps=null;
private ResultSet rs=null;public boolean checkUser(String u,String p)
{
boolean b=false;
try {
ConnDB cd=new ConnDB();
try {
cd.getConn();
}
catch (Exception ex) {
System.out.println("没有连接");
}try {
rs=ps.executeQuery("select top 1 password from [dbo].[user] where userId='"+u+"'");}
catch (Exception ex) {
System.out.println("此处出错!!!");
} if(rs.next())
{
String dbpasswd=rs.getString(1);
if(dbpasswd.equals(p))
{
b=true;
}
}}
catch (Exception ex) {
ex.printStackTrace();
} return b;
} }
package com.liz;
import java.sql.*;
public class UserBeanCl
{
private Connection ct=null;
private Statement ps=null;
private ResultSet rs=null;public boolean checkUser(String u,String p)
{
boolean b=false;
try {
ConnDB cd=new ConnDB();
try {
cd.getConn();
}
catch (Exception ex) {
System.out.println("没有连接");
}try {
rs=ps.executeQuery("select top 1 password from [dbo].[user] where userId='"+u+"'");}
catch (Exception ex) {
System.out.println("此处出错!!!");
} if(rs.next())
{
String dbpasswd=rs.getString(1);
if(dbpasswd.equals(p))
{
b=true;
}
}}
catch (Exception ex) {
ex.printStackTrace();
} return b;
} }
System.out.println("此处出错!!!");
修改为:
System.out.println("此处出错!!!");
ex.printStackTrace();
然后把错误内容弄出来大家看看。
at com.liz.java.UserBeabCl.checkUser<UserBeanCl.java: 30>,我之所以先前那么写是想在控制台上找出具体是哪一行错了,找到发现就是rs=ps.executeQuery("select top 1 password from [dbo].[user] where userId='"+u+"'")有问题,但又不知道是怎么回事?
try {
ps=cd.createStatement();//cd就是你上面获取的jdb连接 也就是Connection对象
rs=ps.executeQuery("select top 1 password from [dbo].[user] where userId='"+u+"'");}
catch (Exception ex) {
System.out.println("此处出错!!!");
}