您的位置:首页 > 编程语言 > Java开发

Spring JDBC 如何获得和生成主键+Spring JDBC对行集的支持

2012-08-20 22:14 686 查看
KeyHolder及GeneratedKeyHolder实现者。

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对象,方便数据库的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: