JDBC 获取被插入数据的主键ID值

除了用存储过程还有以下方法可以获取:

 

 

static int create() throws SQLException {
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    try {
        // 2.建立连接
        conn = JdbcUtils.getConnection();
        // conn = JdbcUtilsSing.getInstance().getConnection();
        // 3.创建语句
        String sql = "insert into user(name,birthday, money) values ('name2 gk', '1987-01-01', 400) ";
        ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);//参数2最好写上,虽然Mysql不写也能获取但是不代表别的数据库可以做到
        ps.executeUpdate();

        rs = ps.getGeneratedKeys();
        int id = 0;
        if (rs.next())
            id = rs.getInt(1);
        return id;
    } finally {
        JdbcUtils.free(rs, ps, conn);
    }
}

 

 

 


getGeneratedKeys
ResultSet getGeneratedKeys()throws SQLException
获取由于执行此 Statement 对象而创建的所有自动生成的键。如果此 Statement 对象没有生成任何键,则返回空的 ResultSet 对象。

注:如果未指定表示自动生成键的列,则 JDBC 驱动程序实现将确定最能表示自动生成键的列。

返回:
包含通过执行此 Statement 对象自动生成的键的 ResultSet 对象
抛出:
SQLException - 如果发生数据库访问错误,或者在已关闭的 Statement 上调用此方法
SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法
从以下版本开始:
1.4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 5.6的新特性

MySQL 5.6是一个主要的版本发布,它在性能、可伸缩性、可靠性和可用性方面引入了多项重要改进和新特性。它在2013年发布,相比于它的前身MySQL 5.5,MySQL 5.6带来了以下关键升级: 优化的InnoDB存储引擎:MySQL 5.6中的Inn…

简易数字时钟软件详细制作过程

这是我自己用VS2010制作的简易数字时钟小软件,在制作过程中收获知识不少,希望和初学MFC编程的朋友分享一下。 一、其功能有一下三点: 1.打开软件后,其程序自动获取当前电脑系统的日期、时间和周次,并同步显示在主对 …

关于后台系统自动生成的一点思考

大量实践发现后台管理程序,其实90%的代码都是相同的,当然是在抛弃复杂逻辑业务的情况下,那么如何能高效的节约这些时间呢,那就是接下来我要说的,对于后台系统自动生成的一些思考。 适用情景: 1、表编号id为…

MFC定时器SetTimer函数用法总结

CWnd类的SetTimer成员函数只能在CWnd类或其派生类中调用,而API函数SetTimer则没有这个限制,这是一个很重要的区别。 1、启动定时器。 启动定时器就需要使用CWnd类的成员函数SetTimer。CWnd::SetTimer的原型如下: 参数nIDEvent指定一个非零的…

全网最全的Numpy开发入门教程(详细案例版)

概述 NumPy是一个Python库,每个数据科学专业人员都应该熟悉它这个全面的NumPy教程从头开始介绍NumPy,从基本的数学运算到NumPy如何处理图像数据本文中有大量的Numpy概念和Python代码 介绍 我非常喜欢Python中的NumPy库。在我的数据科学之旅中&#xff…

android开源库收集

1. google valley Android网络通信库 git clone https://android.googlesource.com/platform/frameworks/volley 介绍 http://www.cnblogs.com/bvin/p/3291611.html#2806770 http://liubin.org/2013/05/27/android-volley-at-a-glance/ 2.Afinal是一个android的ioc&#xff…

微信分享JSSDK-invalid signature签名错误的解决方案

核对官方步骤,确认签名算法。 确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?tjsapisign 页面工具进行校验。确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timesta…

MFC操作Excel2003的CRange类的Copy函数和Delete函数实现方法

一、CRange类的Copy函数实现方法 具体步骤: 1.实例化一个CRange类对象range1,关联你要拷贝的区域; 2.实例化一个CRange类对象range2,关联你要将要粘贴到的区域; 3.调用前一个range1对象的Copy函数,就可…

Django代码编写规范

1. 编码声明 在 Python 解释器执行代码时,需要告诉解释器代码的编码方式。Python 代码实际上是文本数据,如果代码的编码方式与解释器读取的编码方式不一致,将会因编码错误,代码无法执行。Python 2 解释器读取代码时,默…

Get sdcard directory by adb

解决方案: adb shell echo $EXTERNAL_STORAGE I am making an application, which pulls files(Saved by android app) from the device sdcard by adb. The problem is that different devices, have various sdcard directories i.e: sdcardsdcard/external_sdFi…

VueJs开发笔记—IDE选择和优化、框架特性、数据调用、路由选项及使用

一、IDE的选择: VsCode和WebStorm都是不错的选择,说一下两者的优缺点,调试便捷性来说两者不相上下. WebStorm缺点:性能方面VsCode远好于WebStorm; WebStorm优点:代码引用追踪Ws有VsCode无,控制台…

MFC新建文件夹、打开文件夹的实现方法

一、 MFC新建文件夹到指定路径的实现方法 典例: 二、 MFC保存文件到指定路径的实现方法 典例: 三、 MFC打开指定路径的文件夹的实现方法 典例: 注意:ShellExecute函数还可以打开指定路径的普通文件或者可执行文件。

VueJs生产环境部署

VueJs为客户端语言,所以部署的时候是不需要基于nodejs或其他服务器运行环境,只需要像其他静态站点的方式发布就可以了,下面介绍一下VueJs具体发布的流程还有需要注意的点。 先来看VueJs最终生成的文件目录: 具体的步骤如下&#x…

a20隐藏底部按钮及隐藏状态栏和虚拟按键栏

2019独角兽企业重金招聘Python工程师标准>>> 隐藏RecentButton按钮: 在源码android4.2/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java的makeStatusBarView()方法中添加(这是全志androi…

如何计算一个网段的子网掩码,网络ID,广播地址和可用IP地址数

1.判断两个IP在不在一个网段,主要看这两个IP的网络ID,如果网络ID相同则这两个IP在同一网段 示例:判断192.168.0.11/26 和 192.168.0.111/26在不在同一网段 首先计算两个IP的网络ID: 192.168.0.11/26 子网掩码(2进…

WebApi开启CORS支持跨域POST

概念:CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。 现象:如请…

MFC中CString类字符串与长整型、浮点型、字符数组char数据之间的相互转换

一、长整型数据与CString类字符串相互转换 1.将长整型数据转换为CString字符串类 CString str; long ld; str.Format(_T("%ld"),ld); 2.将CString字符串类转换为长整型数据 CString str; long ld; ld_wtol(str); _wtol()在<stdlib.h> and <wchar.h>…

SSH2 后端编程思路总结

课程快结束了&#xff0c;那我就总结一下利用SSH2框架设计网站后端的思路吧。网站的后端设计大部分操作都是数据的存取&#xff0c;那么就总结一下Strut2中后端操作以及几点要注意的事项吧。后端操作&#xff1a;后端的操作基本上都是在Model、Action以及Service中完成的&#…

如何给APP开发属于自己的小程序

前言 工欲善其事&#xff0c;必先利其器。 首先&#xff0c;我们需要知道微信小程序是什么&#xff1f;微信小程序内核是什么&#xff1f;微信小程序的开发语言什么&#xff1f;这样才能更好的开发微信小程序&#xff0c;以及解决遇到的问题。 一、微信小程序是什么 微信小程…

Xamarin开发笔记—WebView双项事件调用

1.Xamarin调用WebView&#xff1a; 原理&#xff1a;Xamarin.Forms WebView内置方法xx.Eval(..)可以调用到页面里面的js函数。 WebView展示的代码如下&#xff1a; var htmlSource new HtmlWebViewSource();htmlSource.Html "<html><head><meta charse…