JDBC6 - 主键回显
主键回显
只发生在插入数据时,返回插入的数据在数据库中自增长的主键值
package com.atguigu.api.preparedStatement;
import org.junit.Test;
import java.sql.*;
public class PSOtherPart {
/**
* TODO 主键回显
* t_user插入一条数据,并且获取数据库自增长的主键
*
* TODO 使用总结
* 1.在创建PreparedStatement的时候,传入Statement.RETURN_GENERATED_KEYS
* 获取的结果携带数据库自增长主键
* 2.获取司机装主键值结果集的对象,一行一列,获取对应数据即可
* ResultSet resultSet = preparedStatement.getGeneratedKeys();
*/
@Test
public void returnPrimaryKey() throws ClassNotFoundException, SQLException {
//1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取数据库连接
Connection connection = DriverManager.getConnection("jdbc:mysql:///atguigu?user=root&password=123456");
//3.编写sql语句
String sql = "insert into t_user(account,password,nickname) values(?,?,?)";
//4.创建PreparedStatement
//传入Statement.RETURN_GENERATED_KEYS 从而在结果集中携带数据库自增长主键
PreparedStatement preparedStatement = connection.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
//5.占位符赋值
preparedStatement.setObject(1,"zzz");
preparedStatement.setObject(2,"111111");
preparedStatement.setObject(3,"hehe");
//6.发送SQL语句,并获取结果
int i = preparedStatement.executeUpdate();
//7.解析结果集
if(i > 0){
System.out.println("数据插入成功");
//可以获取回显主键
//获取司机装主键的结果集对象,一行 一列 id=值
ResultSet resultSet = preparedStatement.getGeneratedKeys();
//只有一行 光标下移一次就行
resultSet.next();
//只有一列就是主键id
int id = resultSet.getInt(1);
System.out.println("id = "+id);
}else{
System.out.println("数据插入失败");
}
//8.关闭资源
preparedStatement.close();
connection.close();
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析