Class.forName("com.mysql.cj.jdbc.Driver");
Connection connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mysql?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true",
"root", //用户名
"root" //密码
);
创建Userinfo表,包含id,username,password,nickname,age字段
Statement state = connection.createStatement();
String sql = "CREATE TABLE userinfo(\n" +
" id INT PRIMARY KEY AUTO_INCREMENT,\n" +
" username VARCHAR(30),\n" +
" password VARCHAR(30),\n" +
" nickname VARCHAR(30),\n" +
" age INT(3)\n" +
")";
state.execute(sql);
向Userinfo表中插入一条记录
Statement state = connection.createStatement();
String sql = "INSERT INTO userinfo(username,password,nickname,age)\n" +
"VALUES('张三','123456','阿三',22)";
int num = state.executeUpdate(sql);
if(num>0){System.out.println("插入成功");}
修改Userinfo表中一条记录
Statement state = connection.createStatement();
String sql = "UPDATE userinfo " +
"SET password='666666' " +
"WHERE username='张三'";
int num = state.executeUpdate(sql);
System.out.println(num>0?"修改成功":"修改失败");
删除Userinfo表中一条记录
Statement state = connection.createStatement();
String sql = "DELETE FROM userinfo " +
"WHERE id=1";
int num = state.executeUpdate(sql);
System.out.println(num>0?"删除成功":"删除失败");
方法 | 功能 |
---|---|
boolean next() | 结果集向下移动一条记录,如果存在则返回true,否则返回false |
String getString(int index) | 获取该记录指定下标对应的String类型字段值 |
String getString(String name) | 获取该记录指定字段名对应的String类型字段值 |
int getInt(int index) | 获取该记录指定下标对应的int类型字段值 |
int getInt(String name) | 获取该记录指定字段名对应的int类型字段值 |
如上格式还有其他数据类型字段值的getXXX(…)方法 | 分别通过下标和字段名获取对应字段值的操作 |
try(Connection connection = DBUtil.getConnection();){
Statement statement = connection.createStatement();
String sql = "SELECT id,name,salary,title "+
"FROM teacher";
ResultSet rs = statement.executeQuery(sql);
//遍历结果集
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
int salary = rs.getInt("salary");
String title = rs.getString("title");
System.out.println(id+","+name+","+salary+","+title);
}
} catch (SQLException e){
e.printStackTrace();
}
方法 | 作用 |
---|---|
setXxx(int parameterIndex, Xxx value) | 为指定位置的占位符设置具体的值,如 setInt、setString 等 |
executeQuery() | 执行查询语句,返回一个 ResultSet 对象 |
executeUpdate() | 执行插入、更新或删除语句,返回受影响的行数 |
execute() | 执行 SQL 语句,返回一个布尔值,表示是否返回了结果集 |
根据ID修改用户信息:密码,昵称,年龄:
public class JDBCDemo10 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户ID:");
String id = scanner.nextLine();
System.out.println("请输入密码:");
String password = scanner.nextLine();
System.out.println("请输入昵称:");
String nickname = scanner.nextLine();
System.out.println("请输入年龄:");
int age = scanner.nextInt();
try (Connection connection = DBUtil.getConnection()) {
String sql = "UPDATE userinfo SET password=?,nickname=?,age=? "+
"WHERE id="+"'"+id+"'";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1,password);
ps.setString(2,nickname);
ps.setInt(3,age);
int num = ps.executeUpdate();
System.out.println(num>0?"修改成功":"修改失败");
}catch(SQLException e){
e.printStackTrace();
}
}
}