在上一条博客中的代码基础上,进行修改。
第一步:
将原先的UserDao名字改成IUserDao,新建一个impl包,在包里新建UserDaoImpl.java
IUserDao:
package com.zhongruan.dao;
import com.zhongruan.model.User;
import java.util.List;
public interface IUserDao {
User findUserByUsername(String username);
List<User>findAll();
void delete(int id);
void addServlet(String username, String password);
void update(int id, String username, String password);
}
UserDaoImpl:
public class UserDaoImpl implements IUserDao {
@Override
public User findUserByUsername(String username) {
User user=null;
Connection connection=null;
PreparedStatement statement=null;
ResultSet resultSet=null;
try{
connection=DBUtil.getConnection();
String sql="select * from account where username=?";
statement=connection.prepareStatement(sql);
statement.setString(1,username);
resultSet=statement.executeQuery();
while (resultSet.next()){
user=new User();
user.setId(resultSet.getInt(1));
user.setUsername(username);
user.setPassword(resultSet.getString(3));
}
}catch (Exception e){
e.printStackTrace();
}finally {
DBUtil.closeAll(resultSet,statement,connection);
}
return user;
}
@Override
public List<User> findAll() {
ResultSet resultSet = null;
PreparedStatement statement = null;
Connection connection = null;
List<User>users = new ArrayList<>();
try {
connection = DBUtil.getConnection();
String sql = "select * from account";
statement = connection.prepareStatement(sql);
resultSet = statement.executeQuery();
while (resultSet.next()) {
User user = new User();
user.setId(resultSet.getInt(1));
user.setUsername(resultSet.getString(2));
user.setPassword(resultSet.getString(3));
users.add(user);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.closeALL(resultSet, statement, connection);
}
return users;
}
@Override
public void delete(int id) {
Connection connection=null;
PreparedStatement statement=null;
try {
connection=DBUtil.getConnection();
statement=connection.prepareStatement("delete from account where id=?");
statement.setInt(1,id);
statement.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.closeAll(null,statement,connection);
}
}
@Override
public void addServlet(String username, String password) {
Connection connection=null;
PreparedStatement statement=null;
try {
connection=DBUtil.getConnection();
statement=connection.prepareStatement("insert into account(username,password) values (?,?)");
statement.setString(1,username);
statement.setString(2,password);
statement.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.