
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的区别,它有什么好处、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)