任务目标
通过本次课的学习,能够完成对数据库中数据表的查询与删除操作
实现步骤
1.创建JavaBean
使用上一节的User
2.创建工具类
使用上一节增加操作的工具类
3.创建DAO
使用上一节增加操作创建的DAO,在上一节查询的UsersDao中增加查询方法
3.1查询所有的User对象
// 查询所有的User对象
public ArrayList<User> findAll() {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
ArrayList<User> list = new ArrayList<User>();
try {
// 获得数据的连接
conn = JDBCUtils.getConnection();
// 发送SQL语句
String sql = "SELECT * FROM users";
// 获得Statement对象
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
// 处理结果集
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("name"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
user.setBirthday(rs.getDate("birthday"));
list.add(user);
}
return list;
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.release(rs, stmt, conn);
}
return null;
}
3.2 根据id查询user对象方法
// 根据id查找指定的user
public User find(int id) {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
// 获得数据的连接
conn = JDBCUtils.getConnection();
// 发送SQL语句
String sql = "SELECT * FROM users WHERE id=" + id;
// 获得Statement对象
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
// 处理结果集
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("name"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
user.setBirthday(rs.getDate("birthday"));
return user;
}
return null;
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.release(rs, stmt, conn);
}
return null;
}
4.创建测试类
4.1测试查询所有记录的的测试类
在cn.lctvu.test包下创建增加数据的测试类FindAllUsersTest.java
public class FindAllUsersTest{
public static void main(String[] args) {
//创建一个名称为usersDao的对象
UserDao userDao = new UserDao();
//将UsersDao对象的findAll()方法执行后的结果放入list集合
ArrayList<User> list = userDao.findAll();
//循环输出集合中的数据
for (int i = 0; i < list.size(); i++) {
System.out.println("第" + (i + 1) + "条数据的username值为:"
+ list.get(i).getUsername());
}
}
运行测试类,查看结果
4.2 测试根据id查询记录的测试类
public class FindUserByIdTest {
public static void main(String[] args) {
UserDao usersDao = new UserDao();
User user = usersDao.find(1);
System.out.println("id为1的User对象的name值为:" + user.getUsername());
}
}
4.3 测试删除记录的测试类
public class DeleteUserTest{
public static void main(String[] args) {
// 删除操作
UsersDao usersDao = new UsersDao();
boolean b = usersDao.delete(4);
System.out.println(b);
}
}