mysql getgeneratedkeys,JDBC获得数据库生成的主键(JDBC、Primary Key)
JDBC获得数据库生成的主键 佟强 http://blog.csdn.net/microtong 在实际开发中,数据库中表的主键经常会由数据库负责生成,INSERT语句插入数据时插入除了主键以外的字段。很多情况下,当INSERT语句提交给数据库引擎执行完成后,程序需要获得生成的主键以便根
JDBC获得数据库生成的主键 佟强
http://blog.csdn.net/microtong
在实际开发中,数据库中表的主键经常会由数据库负责生成,INSERT语句插入数据时插入除了主键以外的字段。很多情况下,当INSERT语句提交给数据库引擎执行完成后,程序需要获得生成的主键以便根据主键查询插入的记录。JDBC通过在调用语句对象的executeUpdate()方法时,给出第二个参数Statement.RETURN_GENERATED_KEYS
来说明希望数据库引擎返回生成的主键。生成的主键以结果集的形式返回,程序调用语句对象的getGeneratedKeys()
方法得到一个结果集。遍历这个结果集,即得到数据库生成的主键。
我们以MySQL5.0数据库为例,创建会员表“member”,其中字段ID是数据负责生成的自动增量的整数。下列SQL语句创建会员表:
/* 创建MySQL5.0 表member*/
create table member(
id int not null auto_increment
, /*数据库自动生成的主键*/
name varchar(100), /*会员姓名*/
email varchar(255), /*电子邮件*/
primary key (id)
)type = InnoDB default character set gbk;
获得主键的代码 GeneratedKey.java
package cn.oakcms;
import java.sql.*;
public class GeneratedKey {
public static void main(String[] args) {
Connection conn = null; //连接对象
Statement stmt = null; //语句对象
ResultSet rs = null; //结果集
try{
//加载MySQL驱动程序
Class.forName("com.mysql.jdbc.Driver");
//连接字符串
String url = "jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=gbk";
//建立数据库连接
conn = DriverManager.getConnection(url,"root","");
//创建语句对象
stmt = conn.createStatement();
//INSERT语句
String sql = "insert into member(name,email) values('张三','zhangsan@gmail.com')
";
//执行INSERT语句,说明要返回数据库生成的主键
int count = stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
System.out.println("成功插入"+count+"条记录!");
//产生的主键以结果集的形式返回
rs = stmt.getGeneratedKeys();
//遍历结果集,输出主键,实际上结果集只有一条记录
while(rs.next()){
long id = rs.getLong(1);
System.out.println("产生的主键是:"+id);
}
//关闭结果集、语句、连接
rs.close(); stmt.close(); conn.close();
}catch(Exception e){
e.printStackTrace();
}finally{
if(rs!=null) try{rs.close();}catch(Exception ignore){}
if(stmt!=null) try{stmt.close();}catch(Exception ignore){}
if(conn!=null) try{conn.close();}catch(Exception ignore){}
}
}
}
程序的运行结果如下,每次运行都将插入一条新的记录,生成一个新的ID。
成功插入1条记录!
产生的主键是:6
OakCMS内容管理系统
http://www.oakcms.cn
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
mysql getgeneratedkeys,JDBC获得数据库生成的主键(JDBC、Primary Key)相关推荐
- mysql之列属性篇四之 —— 主键(primary key)
主键 顾名思义:主要的键,primary key,在一张表中,有且只有一个字段,里面的值具有唯一性 创建主键 随表创建 系统提供了两种增加主键的方式 1. 方案1:直接在需要当做主键的字段之后,增加p ...
- 主键约束(PRIMARY KEY) [MySQL][数据库]
主键约束(PRIMARY KEY) 主键约束的特点: 主键约束相当于唯一性约束+ 非空约束,主键约束不允许重复,也不允许出现空值 一个表最多只能有一个主键约束,建立主键约束可以在列级别创建,也可以再表 ...
- MySQL数据库——MySQL主键(PRIMARY KEY)
主键(PRIMARY KEY)的完整称呼是"主键约束",是 MySQL 中使用最为频繁的约束.一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一个主键. 主键 ...
- MySQL主键(PRIMARY KEY)
"主键(PRIMARY KEY)"的完整称呼是"主键约束".MySQL 主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键 ...
- 2、MySQL主键(PRIMARY KEY)
主键(PRIMARY KEY)的完整称呼是"主键约束",是 MySQL 中使用最为频繁的约束.一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一个主键. 主键 ...
- Oracle数据库-主键(primary key)、外键(foreign key)、候选键(candidate key)、超键(super key)和references总结...
主要介绍一下个人对主键(primary key).外键(foreign key).候选键(Candidate key).超键(super key).references的总结 概念: 主键:用户选择元 ...
- SQL约束(主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)
注意: A.表中有数据不能创建约束 B.视图下设置后,要点击保存(只有保存后在才看的到) c 别忘了,点刷新,才会出来呀! 1.主键约束 primary key 主键是每行的唯一标识符,仅仅通过它 ...
- 主键(primary key)的设置和添加
主键(primary key)的设置和添加 1.先创建了表,往表里添加主键 mysql> alter table user-> add primary key(useID); 2.创建表时 ...
- mysql中的主键关键字_MySQL主键(PRIMARY KEY)
"主键(PRIMARY KEY)"的完整称呼是"主键约束".MySQL 主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键 ...
最新文章
- 软件测试用python一般用来做什么-想要成为一个优秀的软件测试人员,应该学些什么?...
- 【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 序列化 | Protobuf 反序列化 )
- nginx 网站目录重写
- 【干货】PMcaff干货课程学习精彩分享:Apple Watch 技术特性详解
- matlab的开方算法_正确的「记事本」打开方式:能渲染3D图像,还能玩贪吃蛇
- String,StringBuffer与StringBuilder的区别?
- 给一名准90后程序员的指导——学好IT?无用论?
- 只能在测试中注射吗?
- JAVA获取Classpath根路径的方法
- css网格_CSS网格初学者指南
- mysql完全手册阅读笔记
- 八位流水灯的verilog代码_Arduino入门 第七节-彗星灯 呼吸流水灯
- 原子性 - synchronized关键词
- Laravel Eloquent 数据查询结果中日期的格式化
- 干货丨面向新基建,安全厂商都准备了哪些前瞻性的“武器”?
- 220v降压成5v电路图-220v降压5v简单电路
- 看甲骨文如何在云端一路高歌猛进!
- 如何在Genymotion虚拟设备上安装Google框架(Play,Accounts等)? [重复]
- 建筑力学与结构【3】
- C++中关于switch的一些理解
热门文章
- 【目标检测-YOLO】YOLOv5-5.0v-数据处理(第三篇)
- 【jQuery教科书】从jQuery语法到jQuery ajax的每一个知识点(学习总结)
- 论文笔记:DeepFuse: A Deep Unsupervised Approach for Exposure Fusion with Extreme Exposure Image Pairs
- 力扣刷题-专项突破-SQL入门
- 超简单案例:分层卡方检验怎么做?
- 一木.溪桥---Python之周边
- 黑马程序员 学习毕老师java视频第14.15.16天
- 【Abp VNext】实战入门(七):【1】xxx.Web网站层 —— API接口服务添加跨域访问支持
- 智慧城市借助计算机 物联网,面向智慧城市的物联网应用支撑平台解决方案(CCIDIT-IOT)...
- Unity3D课程——粒子系统与流动效果