本文主要是介绍11.2 自增键、行集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
参考书本P384
自增键
主键产生分为应用层产生和数据库产生两种。应用层产生主键的机制值得学习!!
自增键对象让我们不依赖数据库的自增键,在应用层为新纪录提供主键值。
Oracle是以序列方式产生主键值,MySQL是以表方式产生主键值。
例:
在数据库中除了已有的t_post(里面的主键不用设成自增了,因为靠应用层产生),还需要再新建一个表t_post_id专门用来存放生成t_post主键的变量sequence_id。create table t_post_id(sequence_id int)engine=myisam;
insert into t_post_id values(0);
-- 注:因为主键维护表(即t_post_id)并发访问量很大,最好声明为myisam;提供初始值为0在applicationContext.xml中配置:
<!-- 1:基于数据表的自增器 --> <bean id="incre" class="org.springframework.jdbc.support.incrementer.MySQLMaxValueIncrementer"p:incrementerName="t_post_id"p:columnName="sequence_id"p:cacheSize="10"p:dataSource-ref="dataSource"/>
注:设置维护主键的表名,用于生成主键值得列名,缓存大小在PostDao.java中:@Autowiredprivate DataFieldMaxValueIncrementer incre;public void addPost(final Post post){// 方法体参见上一节}测试:参见上一节
行集
SqlRowSet、SqlRowSetMetaData两个接口
RowSet会一次性装载所有的匹配数据,ResultSet会分批次装载数据。所以对于大结果集的数据,使用SqlRowSet会造成大的内存消耗。
这篇关于11.2 自增键、行集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!