jdbcTemplate插入MYSQL时怎么返回主键ID

jdbcTemplate插入MYSQL时怎么返回主键ID,第1张

Statement暴露以下方法可以访问到主键:ResultSet getGeneratedKeys() throws SQLException;

为了简化该方法的使用,轻松获得RDBMS生成的主键,Spring内置了KeyHolder接口及GeneratedKeyHolder实现者。

下面的类的内置方法中都使用到了KeyHolder,可以使用他来访问主键。

JdbcTemplate: int update(PreparedStatementCreator psc,KeyHolder generatedKeyHolder) throws DateAccessException;

NamedParameterJdbcTemplate的两个update方法

SimpleJdbcInsert辅助类。

SqlUpdate辅助类。

等。

DataFieldMaxValueIncrementer继承链。

能够返回全局唯一、递增的取值,这种特性是企业应用的常见需求,考虑到RDBMS的不同情况,Spring提供了DataFieldMaxValueIncrementer接口,这些方法返回唯一的、递增的、不同类型的取值。

各个数据库底层都以此类为接口,来实现具体的业务逻辑。

比如:Oracle:OracleSequenceMaxValueIncrementer实现类采用Oracle数据库支持的序列发生器。

HsqlMaxValueIncrementer采用HSQLDB的表实现,从而模拟了序列发生器的行为等。

类似的还有:

MysqlMaxValueIncrementer

DerbyMaxValueIncrementer

SybaseMaxValueIncrementer

SqlServerMaxValueIncrementer

PostgreSqlSequenceMaxValueIncrementer

DB2SequenceMaxValueIncrementer

H2SequenceMaxValueIncrementer等等

Spring JDBC对行集的支持:

RowSet,用于它能够以JavaBean方式同RDBMS数据进行交互,因此比ResultSet更为灵活。

JdbcTemplate内置queryForRowSet()方法集合。

NamedParameterJdbcTemplate内置的queryForRowSet()方法集合。

都可以很方便的获取到RowSet对象,方便数据库的 *** 作。

Spring对数据库的 *** 作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。

Spring提供的JdbcTemplate对jdbc做了封装,大大简化了数据库的 *** 作。找到Spring JdbcTemplate源码,可以看到如下方法:

Connection con = DataSourceUtilsgetConnection(getDataSource());

如果直接使用JDBC的话,需要我们加载数据库驱动、创建连接、释放连接、异常处理等一系列的动作;繁琐且代码看起来不直观。

此外,Spring提供的JdbcTempate能直接数据对象映射成实体类,不再需要获取ResultSet去获取值/赋值等 *** 作,提高开发效率;

如下:

return (User) jdbcTemplatequeryForObject("select  from tb_test1 where id = 100", Userclass)

以上就是关于jdbcTemplate插入MYSQL时怎么返回主键ID全部的内容,包括:jdbcTemplate插入MYSQL时怎么返回主键ID、spring jdbctemplate和java web中jdbc的区别,它有什么好处、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9311135.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存