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协议 。转载请注明出处!

Servlet基本操作 上一篇
JDBC基本操作 下一篇