JDBC增删改查。
上一次主要是介绍了JDBC如何操作的,包括加载驱动、连接数据库,然后写接口调用MySQL数据库中的数据操作。这一节主要是在上一节的基础上进行拓展研究。
1.按ID查找数据
首先先写一个接口:
(还是上一节那个查找所有数据的接口类)
返回值类型是User类,给出一个id,要找到这个人的信息。
public interface UserInterface {
//按id查找
public User selectUserById(Integer id);
}
紧接着实现这个接口:
(还是上一节实现接口的类中写)
其中有几个注意的点:
- 预编译中如果sql语句中有?(即后续要添加条件),后面就一定要赋值。
- 赋值语句第一个参数是第几个问号,第二个参数是赋的值。
- executeQuery();产生单个结果集。只能执行查询select语句
- executeUpdate();增删改。返回的是更改的条数。
public User selectUserById(Integer id) {
try {
Connection conn = DBUtil.getConnetion();
//预编译,?中不一定是什么。写了问号一定要赋值。
String sql = "select * from users where id=?";
PreparedStatement ps = conn.prepareStatement(sql);
//在?中放东西,第一个数字指的是给第1个问号赋值,第二个指赋的值。
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
//ps.executeUpdate(); 增删改查
User user = new User();
if(rs.next()){
//把数据库中找到的数据放到user类中的username中
user.setUsername(rs.getString("username"));
user.setAge(rs.getInt("age"));
user.setPassword(rs.getString("password"));
user.setId(rs.getInt("id"));
}
return user;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
然后我们就可以调用接口来进行按id查询用户啦~
UserInterface u = new UserImpl();
System.out.println(u.selectUserById(2));
2.增加数据
首先提供接口,写接口实现类,然后调用。步骤一样在这里就放在一起写。
//增加一条数据
public void addUser(User u);
public void addUser(User u) {
try {
Connection conn = DBUtil.getConnetion();
String sql = "insert into users (username,password,age) values(?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(3, u.getAge());
ps.setString(1, u.getUsername());
ps.setString(2,u.getPassword());
ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
UserInterface u = new UserImpl();
User user = new User();
user.setId(6);
user.setAge(19);
user.setPassword("123456");
user.setUsername("Fangmuheng");
u.addUser(user);
3.删除数据
public void deleteUser(Integer id);
public void deleteUser(Integer id) {
try {
Connection conn = DBUtil.getConnetion();
String sql = "delete from users where id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
4.修改数据
public void updateUser(User u);
public void updateUser(User u) {
try {
Connection conn = DBUtil.getConnetion();
String sql = "update users set username=?,password=?,age=? where id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, u.getUsername());
ps.setString(2, u.getPassword());
ps.setInt(3, u.getAge());
ps.setInt(4, u.getId());
ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!