如何向数据库添加时同时返回ID
我们在做项目开发时很多时候都需要数据库的增删改查,而添加数据后又想得到该项数据在数据库中的主键值,这里有一个非常方便的方法可以在插入数据的同时获得主键值。
	public void save(Person p) throws SQLException {
		String sql = "insert into person (name,pwd,sex,age,email,loves) values(?,?,?,?,?,?)";
		Connection conn = DbUtil.getConnection();
		PreparedStatement pst = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
		pst.setString(1, p.getName());
		pst.setString(2, p.getPwd());
		pst.setString(3, p.getSex());
		pst.setInt(4, p.getAge());
		pst.setString(5, p.getEmail());
		StringBuffer loves = new StringBuffer("");
		//将爱好信息拼成字符串
		for(String s:p.getLoves()){
			loves.append(s);
			loves.append(",");
		}
		//如果用户没选择爱好,则写入""
		if(loves.length()>0){
			loves.substring(0, loves.length()-1);
			pst.setString(6, loves.toString());
		}else{
			pst.setString(6,"");
		}
		pst.executeUpdate();
		ResultSet rs = pst.getGeneratedKeys();
		rs.next();
		int id = rs.getInt(1);
		p.setId(id);
		DbUtil.closeConnection(conn);
	}
注意上面代码:要添加Statement.RETURN_CENERATED_KEYS
conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
就可以用 pst.getGenerateKeys()方法得到主键。
如何向数据库添加时同时返回ID的更多相关文章
- php返回数据库查询时出现Resource id #2
		1.使用php调用MySQL数据库的过程是不是先用mysql_query(SELECT*...)或mysql_list_dbs()等查询函数返回结果指针(mysql查询函数中还有没有这样的返回指针函数 ... 
- 黄聪:MYSQL提交一批ID,查询数据库中不存在的ID并返回
		假设你数据库有个A表: ID NAME 1 aaa 2 bbb 3 ccc 4 ddd 需求:给你几个ID,返回A表中不存在的ID? 例如提交1,2,8,9 返回8,9 sel ... 
- Mybatis添加用户&&Mybatis添加用户返回ID
		(1)添加用户(添加User记录) <!--插入用户 --> <insert id="insertUser" parameterType="com.so ... 
- TkMybatis添加对象后返回数据的id
		在实体类的id属性上加上下面的注解 //导入的包import javax.persistence.GeneratedValue; @GeneratedValue(generator = "J ... 
- 为mongodb数据库添加安全账户
		最近的数据库服务器有些不稳定,遇到了黑客的骚扰,mongodb的安全存在一些漏洞.首要任务是给数据库添加账号.之前大家都习惯于mongodb的不加安全账号和密码来连接数据库,那么问题是添加了安全账户后 ... 
- 从C#中通过Windows窗体添加信息到数据库 (添加学生信息)
		如上图所示界面,当我们点击保存按钮时将会将表格中的数据保存到数据库中去,与数据库进行一个交互 第一步我们就是要获取到表格中的数据 string pwd = textpwd.Text; //获得第一次输 ... 
- 数据库添加数据II及SQL语句错误
		前些时候,写的代码(数据库添加数据I),往数据库添加数据都是很基本的一条一条地添加.但是平常用于测试时,总不可能一条一条地添加测试数据吧,然后我就尝试着一次性添加几百上千条,但是再次操作的时候,就出问 ... 
- echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端
		1.echarts的官网上的demo,都是直接写死的随机数据,没有和数据库的交互,所以就自己写了一下,ok,我们开始一步一步走一遍整个流程吧. 就以官网最简单的那个小demo来做修改吧.官网上的小de ... 
- 解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题
		我们使用Spring中的JdbcDaoSupport往Mysql中插入数据并返回主键代码,我们使用的mysql数据库,主键在数据库中设置为自增长:该类继承自JdbcDaoSupport,所以能直接使用 ... 
随机推荐
- 【】maze
			[链接]点击打开链接 [题意] 小 T 被放到了一个迷宫之中,这个迷宫由 n 个节点构成,两个节点之间可能存在多条无 向边,小 T 的起点为 1 号节点,终点为 n 号节点.有 m 条无向边,对于每一 ... 
- 从零开始使用git第一篇:下载安装配置
			从零开始使用git 第一篇:下载安装配置 第一篇:从零开始使用git第一篇:下载安装配置 第二篇:从零开始使用git第二篇:git实践操作 第三篇:从零开始使用git第三篇:git撤销操作.分支操作和 ... 
- ArcGIS中ObjectID,FID和OID字段区别
			lysc_forever 原文 ArcGIS中ObjectID,FID和OID字段有什么区别 ArcGIS Desktop 独立的表和属性表都有一个ObjectID字段.这个字段中包含一个唯一的,长整 ... 
- xmppframework开发基础
			xmppframework是XMPP协议的一个objective-c实现. 要了解xmppframework, 从这里開始吧:https://github.com/robbiehanson/XMPPF ... 
- [Nuxt] Build a Navigation Component in Vue.js and Use in a Nuxt Layout
			You can isolate parts of templates you want to re-use into components, but you can also reuse those ... 
- ASP.NET配置文件里经常使用到的节点信息
			 web.config文件是一个XML文件,是以<confirguration>为根结点展开的. 上一面从宏观上解说了一下有关配置的文件的内容,以下是一些有关于配置文件经常使用的操作. ... 
- spring(3)------控制反转(IOC)/依赖注入(DI)
			一.spring核心概念理解 控制反转: 控制反转即IoC (Inversion of Control).它把传统上由程序代码直接操控的对象的调用权交给容器.通过容器来实现对象组件的装配和管理. 所谓 ... 
- Nutch+Hadoop集群搭建                                                    分类:            H3_NUTCH             2015-01-18 10:55    362人阅读    评论(0)    收藏
			转载自:http://www.open-open.com/lib/view/open1328670771405.html 1.Apache Nutch Apache Nutch是一个用于网络搜索 ... 
- Oracle列加密
			加密函数 create or replace function encrypt_des(p_text varchar2, p_key varchar2) return varchar2 isv_tex ... 
- [SCSS] Use Standard Built-in SCSS Functions for Common Operations
			We can use javascript for color and opacity variations, math, list and map logic or to see if someth ... 
