您的位置:首页 > 数据库

JSP和Servlet连接数据库 登陆验证ResultSet.getString("power")空指针问题

2012-03-24 00:00 513 查看
今天在做一个用户登陆验证时,出现了ResultSet方法getString("power")空指针问题

我再客户端输入用户名和密码链接上数据库验证是否正确,并返回此用户的权限power(admin/ user),,发现当我输入客户端输入的用户时中文时,服务器验证后

时:

public String getUserByNameAndPwd(String userName, String password) {
String power = null;
String sql = "select power from t_user where userName='" + userName
+ "' AND password='" + password + "'";
ResultSet rs = ConnectionDB.query(sql);
try {
if (rs != null && rs.next()) {
power = rs.getString("power");//错误createSQLExeception
}
} catch (Exception e) {
e.printStackTrace();
}
return power;
}

发现用rs取出来的power总是空的,而用字母用户名验证时却总能成功,最后从数据库与Servlet的链接入手,认为java代码在链接数据库时的编码方式应该有问题。

于是我改成:

public static String url = "jdbc:mysql://localhost:3306/bbs"+"?userUnicode=true&characterEncoding=utf-8";//刚开始我没加红色的部分导致出错
public static String dbUser = "root";
public static String dbPwd = "";

public static Connection connect() {
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, dbUser, dbPwd);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}

$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});

原文链接:
http://blog.csdn.net/weiyirong/article/details/7374912
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐