package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import model.Users; public class UserDao { //��¼���� public boolean findUser(Users user) { boolean flag=false; String yhm=user.getUserName(); String mima=user.getPassword(); // try { Class.forName("com.mysql.jdbc.Driver"); //连接数据库 Connection con =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/studb?characterEncoding=utf-8","root","123456"); Statement st =con.createStatement(); //连接executeQuery String sql="select * from users where username="+yhm+"";//去掉具体的值 去掉单引号 加一对双引号 然后写用户名 ResultSet rs=st.executeQuery(sql); if(rs.next()) { String mi=rs.getString(2);//取出密码 //如果输入的密码mima和数据库密码mi相同 if(mi.equals(mima)) { flag=true; } rs.close();//关闭数据库 st.close(); con.close(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return flag; } }
时间: 2024-02-17 21:00:09 浏览: 94
项目源码-java企业QQ项目
这段代码的功能是在数据库中查找是否存在指定的用户名和密码,并返回一个布尔值。
但是这段代码存在一些问题:
1. 在SQL查询语句中,用户名应该加单引号。否则,查询语句将会出错。
2. 在try/catch块中,关闭ResultSet、Statement和Connection对象的顺序不正确。应该先关闭ResultSet对象,然后是Statement和Connection对象。
3. 在try/catch块中,没有对异常进行适当的处理。应该将异常抛出或记录下来,以便进行适当的调试和修复。
4. 在try/catch块中,代码重复。应该将重复的代码提取出来,以便进行重用。
下面是修改后的代码:
```
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import model.Users;
public class UserDao {
// 登录验证
public boolean findUser(Users user) {
boolean flag = false;
String yhm = user.getUserName();
String mima = user.getPassword();
Connection con = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
// 连接数据库
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/studb?characterEncoding=utf-8", "root", "123456");
st = con.createStatement();
// 连接executeQuery
String sql = "select * from users where username='" + yhm + "'";
rs = st.executeQuery(sql);
if (rs.next()) {
String mi = rs.getString(2);// 取出密码
// 如果输入的密码mima和数据库密码mi相同
if (mi.equals(mima)) {
flag = true;
}
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return flag;
}
}
```
阅读全文