SpringJDBC新增记录怎么返回自增主键值

本篇内容主要讲解“Spring JDBC新增记录怎么返回自增主键值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring JDBC新增记录怎么返回自增主键值”吧!

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网页空间、营销软件、网站建设、莲花网站维护、网站推广。

在JDBC3.0规范中,当新增记录时,允许将数据库自动产生的主键值绑定到Statement或PreparedStatement中。使用Statement时,可以通过以下方法绑定主键值:

int executeUpdate(String sql,int autoGeneratedKeys)

也可以通过Connection创建绑定自增值的PreparedStatement:

PreparedStatement prepareStatement(String sql,int autoGeneratedKeys)

当autoGeneratedKeys参数设置为Statement.RETURN_GENERATED_KEYS值时即可绑定数据库产生的主键值,设置为Statement.NO_GENERATED_KEYS时,不绑定主键值。如下代码所示:

Statement stmt = conn.createStatement();
String sql = "insert into user(username,age) values('tom',22)";
stmt.executeUpdate(sql,Statement.RETURN_GENERATED_KEYS);
ResultSet rs = stmt.getGeneratedKeys();
if(rs.next()){
    int key = rs.getInt(0);
}

Spring利用这一技术,提供了一个可以返回新增记录对应主键值的方法;

了解springcloud架构可以加求求:三五三六二四七二五九

int update(PreparedStatementCreator psc,KeyHolder generatedKeyHolder)

org.springframework.jdbc.support.KeyHolder是一个回调接口,Spring使用它保存新增记录对应的主键,该接口的接口方法描述为:

Number getKey() throws InvalidDataAccessApiUsageException

当仅插入一行记录时,主键不是复合键而是数字类型时,通过该方法可以直接返回新的主键值。如果是复合主键,或者有多个主键返回时,该方法抛出InvalidDataAccessApiUsageException。

Map getKeys() throws InvalidDataAccessApiUsageException

如果是复合主键,则列名和列值构成Map中的一个Entry。如果返回的是多个主键,则该方法抛出InvalidDataAccessApiUsageException异常。

List> getKeyList()

如果返回多个主键,即PreparedStatement新增了多条记录,则每一个主键对应一个Map,多个Map构成一个List。

到此,相信大家对“Spring JDBC新增记录怎么返回自增主键值”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


本文题目:SpringJDBC新增记录怎么返回自增主键值
文章出自:http://hbruida.cn/article/jheiej.html