RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
SpringJDBC新增记录怎么返回自增主键值-创新互联

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

创新互联建站-专业网站定制、快速模板网站建设、高性价比海阳网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式海阳网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖海阳地区。费用合理售后完善,十载实体公司更值得信赖。

在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://sczitong.cn/article/peces.html