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

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对象,方便数据库的操作。

 

你可能感兴趣的:(Spring,Jdbc,DAO)