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中:

    @Autowired
    private DataFieldMaxValueIncrementer incre;
    public void addPost(final Post post){
    //  方法体参见上一节
    }

测试:参见上一节

行集

SqlRowSet、SqlRowSetMetaData两个接口
RowSet会一次性装载所有的匹配数据,ResultSet会分批次装载数据。所以对于大结果集的数据,使用SqlRowSet会造成大的内存消耗。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值