新建web项目的博文和项目目录结构,请参考 上一篇
基本的目录结构和必要的.java文件已经创建成功,如图
上一节已经在dao层里写了一个 查询所有记录的方法。本节写的方法有 唯一查询、删除、插入、更新方法,并依次在Test类里面测试相应的方法
打开demo下的com.dao下的UserDao.java
1.UserDao.java 中的唯一查询、删除、插入、更新 方法
/**
* 唯一查询
* @param id 通过id唯一查询数据库中的数据 [注:唯一查询的时候是
* 根据id查询的,所以要把数据库中的表的id字段设置为primary key]
* @return Users的一个实例化对象,如果查找到了就返回的是数据库中
* 的一条记录
* 否则就是 null;
*/
public Users selectById(int id) {
Users user = new Users();
//1.连接到数据库
Connection connection = db.getConnection();
//2.拼接sql语句
String sql = "select * from users where id="+id;
try {
System.out.println("准备查询....");
//3.执行发送到数据库的sql语句
Statement st = connection.createStatement();//创建一个Statement对象,用于向数据库发送数据
ResultSet rs = st.executeQuery(sql);//执行给定的sql语句,返回结果集对象
while (rs.next()) {
user = new Users(rs.getInt(1), rs.getString(2), rs.getString(3));
//执行SQL语句查找到了数据,就把数据和实体类的一个对象映射起来。
}
System.out.println("已查询!!!!");
} catch (SQLException e) {
e.printStackTrace();
} finally {
//4.关闭连接,释放资源
db.closeConnection(connection);
}
return user;
}
/**
* 删除
* @param id
* @return 删除的记录数--如果删除一条记录就返回1,若是没有删除成功则返回0
*/
public int delete(int id) {
int count = 0;
//1.连接到数据库
Connection connection = db.getConnection();
//2.拼接sql语句
String sql = "delete from users where id="+id;
try {
System.out.println("准备删除id为:"+id+" 的记录...");
//3.执行发送到数据库的sql语句
Statement st = connection.createStatement();
count = st.executeUpdate(sql);//count接收方法的返回值,为0 表示删除失败
if (count != 0) {
System.out.print("删除成功!!! ");
} else {
System.out.print("delete error!!! ");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
//4.关闭数据库连接,释放资源
db.closeConnection(connection);
}
return count;
}
/**
* 插入
* @param user Users类的对象,插入数据库的是该条记录
* @return 插入到数据库的记录数--如果插入了一条记录就返回1,若是没有插入成功则返回0
*/
public int insert(Users user) {
int count = 0;
Connection connection = db.getConnection();
String sql = "insert into users(id, username, password) values("+user.getId()+", '"+user.getUsername()+"', '"+user.getPasswards()+"')";
try {
System.out.println("准备插入记录==="+user.getId()+":"+user.getUsername()+":"+user.getPasswards()+"...");
Statement st = connection.createStatement();
count = st.executeUpdate(sql);
if (count != 0) {
System.out.print("插入成功!!! ");
} else {
System.out.print("insert error!!! ");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
db.closeConnection(connection);
}
return count;
}
/**
* 更新
* @param user Users类的对象,从数据库更新的是该条记录
* @return 从数据库更新的记录数--如果更新了一条记录就返回1,若是没有更新成功则返回0
*/
public int update(Users user) {
int count = 0;
Connection connection = db.getConnection();
String sql = "update users set username='"+user.getUsername()+"' where id="+user.getId();
try {
System.out.println("准备更新 id 为 "+user.getId()+"的记录...");
Statement st = connection.createStatement();
count = st.executeUpdate(sql);
if (count != 0) {
System.out.print("更新成功!!! ");
} else {
System.out.print("update error!!! ");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
db.closeConnection(connection);
}
return count;
}
2.Test.java中依次对 唯一查询、删除、插入、更新 进行测试
UsersDao usersDao = new UsersDao();//引入dao层的UserDao.java文件
//测试唯一查询
Users u = usersDao.selectById(1001);
System.out.println("查询信息为==id:"+u.getId()+" ,username:"+u.getUsername()+" ,password:"+u.getPasswards()+"\n");
int count;
//测试删除
count = usersDao.delete(1004);//count用来接收返回值,若为0,则说明删除不成功
System.out.println(" 删除count="+count+"\n");
//测试插入
Users user = new Users(1005, "lenovo", "444444");//初始化一个Users对象
count = usersDao.insert(user);
System.out.println(" 插入count="+count+"\n");
//测试更新
Users us = new Users(1001, "小米", "");
count = usersDao.update(us);
System.out.println(" 更新count="+count+"\n");
测试结果
学习过程中,欢迎指出错误,很开心与大家共同进步!