JDBC-CURD
JDBC-CURD
查询
在关系型数据库中,查询会返回三种结果
- 单行单列
- 单行多列
- 多行多列
查询单行单列
确定表中有多少条数据
@Test
public void testQuerySingleRowAndCol() throws SQLException {
Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.2.2:3306/xiaobai", "root", "Zhuwenxue2002");
PreparedStatement preparedStatement = connection.prepareStatement("SELECT COUNT(*) as count FROM `user`");//如果结果集的列名不是很明确,可以给列名定义别名
ResultSet resultSet = preparedStatement.executeQuery();
//遍历结果集
// while (resultSet.next()) {
// System.out.println(resultSet.getInt(1));//使用下标获取,第一行第一个数据
// }
//如果确定只有一个结果,也要至少执行一次next的判断
if (resultSet.next()) {
System.out.println(resultSet.getInt("count"));//使用列名的别名获取
}
connection.close();
preparedStatement.close();
resultSet.close();
}
查询单行多列
输入ID查询整条数据
@Test
public void testQuerySingleRow() throws SQLException {
Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.2.2:3306/xiaobai", "root", "Zhuwenxue2002");
PreparedStatement preparedStatement = connection.prepareStatement("select * from user where u_id=?");//如果结果集的列名不是很明确,可以给列名定义别名
preparedStatement.setInt(1, 1);//给占位符赋值
ResultSet resultSet = preparedStatement.executeQuery();
//这里我们确定结果只有一行,所以仍然不用遍历(遍历的是行)
if (resultSet.next()) {
int id = resultSet.getInt("u_id");
String name = resultSet.getString("u_name");
double salary = resultSet.getDouble("u_salary");
int age = resultSet.getInt("u_age");
System.out.println(id + "\t" + name + "\t" + salary + "\t" + age);
}
connection.close();
preparedStatement.close();
resultSet.close();
}
插入
插入一条数据
@Test
public void testInsert() throws SQLException {
Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.2.2:3306/xiaobai", "root", "Zhuwenxue2002");
PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO `user`(u_name,u_salary,u_age) VALUES(?,?,?)");
preparedStatement.setString(1, "xiaoxue");
preparedStatement.setDouble(2, 4320.23);
preparedStatement.setInt(3, 24);
//根据受影响行数做判断
System.out.println(preparedStatement.executeUpdate());
connection.close();
preparedStatement.close();
}
修改
修改一条数据
输入被修改的人的ID和要修改的工资数目
@Test
public void testUpdate() throws SQLException {
Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.2.2:3306/xiaobai", "root", "Zhuwenxue2002");
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `user`SET u_salary = ? WHERE u_id = ?");
//将id为5的人的工资改为5320.23
preparedStatement.setDouble(1, 5320.23);
preparedStatement.setInt(2, 5);
//根据受影响行数做判断
System.out.println(preparedStatement.executeUpdate());
connection.close();
preparedStatement.close();
}
删除
删除一条数据
@Test
public void testDelete() throws SQLException {
Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.2.2:3306/xiaobai", "root", "Zhuwenxue2002");
PreparedStatement preparedStatement = connection.prepareStatement("DELETE FROM `user` WHERE u_id = ?");
//删除ID为5的这条数据
preparedStatement.setInt(1, 5);
//根据受影响行数做判断
System.out.println(preparedStatement.executeUpdate());
connection.close();
preparedStatement.close();
}