1.为什么获取自动生成的主健
自动生成的主键 顾名思义就是数据库每插入一天数据 ID会自增,然而当数据增加很多的时候,如果想更改之前插入的其中某一条数据 你会怎么 更改,只有id是唯一的主键
只有通过主键才能确定这条数数据的准确性 在实际应用中 int primaryKey=dao.insert(user);每次插入一条数据之后,并把主键的id返回回来。
2.怎么获取自动生成的主健:分为两方面 执行静态SQL和执行动态SQL两方面
2.1执行静态sql-statement
加载驱动
获取连接对象
获取执行语句对象
执行SQL语句
Statement.executeUpdate(sql,Statement.RETURN_GENERATED_KEYS)//返回自增的主键
Statement.executeUpdate(sql,Statement.NO_GENERATED_KEYS)//不返回自增的主键
获取自增主键
ResultSet resultSet = Statement.getGeneratedKeys();
处理结果集对象
if (resultSet.next()) {
Long id = resultSet.getLong(1);
System.out.println(id);
}
释放资源
2.2执行动态sql-预编译-prepareStatement
加载驱动
获取连接对象
获取执行语句对象1 (con.prepareStatement("update user set name= ? where id = ?",Statement.RETURN_GENERATED_KEYS))//返回主键
获取执行语句对象2 (con.prepareStatement("update user set name= ? where id = ?",Statement.NO_GENERATED_KEYS))//不反悔主键
给sql添加参数
for (int i = 0; i < parms.length; i++) {
prepareStatement.setObject(i + 1, parms[i]);
}
执行SQL语句
prepareStatement.executeUpdate();
获取自增主键
ResultSet resultSet = prepareStatement.getGeneratedKeys();
处理结果集对象
if (resultSet.next()) {
Long id = resultSet.getLong(1);
System.out.println(id);
}
释放资源