Java获取最后插入MySQL记录的自增ID值的3种方法
方法一:
String sql = "INSERT INTO users (username,password,email) VALUES (?,?,?);";
PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);//传入参数:Statement.RETURN_GENERATED_KEYS
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
pstmt.setString(3, user.getEmail());
pstmt.executeUpdate();//执行sql int autoInckey = -1;
ResultSet rs = pstmt.getGeneratedKeys(); //获取结果
if (rs.next()) {
autoIncKey = rs.getInt(1);//取得ID
} else {
// throw an exception from here
}
方法二:
SELECT MAX(id) FROM table
该方法在多线程等情况下可能会造成不正确。
方法三:
SELECT LAST_INSERT_ID() 或者 SELECT @@INDENTITY
这两个都是单个连接的,不存在所谓的两个人都同时插入,分不清的问题
唯一的问题是,如果一句INSERT插入多条,返回的是第一个ID
相关推荐
-
java连接mysql数据库乱码的解决方法
解决方法一: mysql安装时候的编码, 看下my.ini,有无 复制代码 代码如下: [mysql] default-character-set=utf8 [client] default-character-set=utf8 [mysqld] default-character-set=utf8创建表的时候设置: DROP TABLE IF EXISTS `Company`; CREATE TABLE IF NOT EXISTS `Company` ( `Cname` VARCHAR(10)
-
java 下执行mysql 批量插入的几种方法及用时
方法1: Java code 复制代码 代码如下: conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS); pstmt = conn .prepareStatement("insert into loadtest (id, data) values (?, ?)"); for (int i = 1; i <= COUNT; i++) {
-
java jdbc连接mysql数据库实现增删改查操作
jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的时候才能更好的去理解这些成熟的框架是如何去实现增删改查
-
java连接MySQL数据库的代码
本文实例为大家分享了java连接MySQL数据库的具体代码,供大家参考,具体内容如下 package connect; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class Connect { //驱动程序位置 public static final String DBDRIVER="com.mysql.jdbc.Driver"; //连接地址
-
Java+Mysql学生管理系统源码
最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具:eclipse 开发此案例,首先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下面的联系方式:dingyelf@aliyun.com 此次系统比较简易:数据库中只有一个表:stu;功能:能够对学生增加.删除.修改. 开发步骤:
-
java连接MySQl数据库实例代码
复制代码 代码如下: package com.abc.dao; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement; public class BaseDao { public Connection getConn() { Connection conn=null; tr
-
Java实现获得MySQL数据库中所有表的记录总数可行方法
在MySQL中,可以通过SELECT COUNT(*) FROM table_name查询某个表中有多少条记录.如果想知道某个数据库中所有别的记录总数应该怎么做呢?本文给出两种可行的Java程序,解决该问题. 1. 首先确定数据库中有多少个表,然后对每个表执行SELECT COUNT(*) FROM table_name 复制代码 代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.Pr
-
java实现插入mysql二进制文件,blob类型,遇到问题及解决办法
首先是数据库建立要准备的: 我们要把放置二进制字段设置为Blob类型,根据文件的大小选择合适的Blob类型,一下是各个Blob类型所能容纳二进制文件的大小 MySQL的四种BLOB类型 类型 大小(单位:字节) TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G 一下是具体操作代码: 复制代码 代码如下: /** * * 把二进制文件(该二进制文件可以是本地硬盘路径,也可以是一个网络路径)存入数据库 * create date
-
Java+MySql图片数据保存与读取的具体实例
1.创建表: 复制代码 代码如下: drop table if exists photo;CREATE TABLE photo ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) COMMENT '名称', photo blob COMMENT '照片')ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_general_ci; 图片在MySql中的数据存储格式为
-
Java连接MySql的详细介绍
1. 现在工程(不是Src)上右键--Build Path--Add External Archives,选择驱动下的那个jar包,这是release版本,bin目录下的是debug版本. 示例在docs下的connector-j.html,里面有例子(其中的test是数据库名,换位自己的). 复制代码 代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; Co
随机推荐
- Powershell小技巧之获取注册表值的类型
- VBS编程教程 (第3篇)
- ASP.NET中Application、Cookie、Session、Cache和ViewState
- JavaScript闭包和范围实例详解
- 基于header的一些常用指令详解
- IOS实现的简单画板功能
- 关于js注册事件的常用方法
- 最全的Javascript编码规范(推荐)
- 利用yarn代替npm管理前端项目模块依赖的方法详解
- Ruby中百分号和字面值的使用示例
- Ruby中的循环语句的用法教程
- 解析zend studio中直接导入svn中的项目的方法步骤
- 可输入文字查找ajax下拉框控件 ComBox的实现方法
- JS中使用DOM来控制HTML元素
- listview里子项有按钮的情况使用介绍
- 加载页面遮挡耗时操作任务页面--第三方开源之AndroidProgressLayout
- 使用python提取html文件中的特定数据的实现代码
- 构建简单的Webmail系统
- mongoose更新对象的两种方法示例比较
- python+selenium识别验证码并登录的示例代码