在MyBatis 中Oracle 自增配置

我们在MyBatis 中可以使用Oracle的自增长,可以使用配置文件和Java代码来获取当前自增的最大值。

首先,需要自己在Oracle创建一个自增,命令如下。

 CREATE SEQUENCE  "COMMONTRADE"."UCF_RECHARGE_SUBORDER_SEQ"  MINVALUE 10000000000 MAXVALUE 99999999999 INCREMENT BY 1 START WITH 10000007200 CACHE 200 NOORDER  NOCYCLE ;


第二步:使用Spring 对Oracle 序列的支持配置。需要配置到applicationContext.xml 中。

	<bean id="oracleSequenceMaxValueIncrementer"
		class="org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer">
		<property name="incrementerName" value=""></property>
		<property name="dataSource" ref="dataSource"></property>
	</bean>

第三步:编写获取序列的工具类。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer;
import org.springframework.stereotype.Service;

import com.ucf.trade.util.enums.TradeEnum;

@Service
public class SequenceGenerator {
	private static final String UCF_RECHARGE_TRADE_ORDER_SEQ = "UCF_RECHARGE_TRADE_ORDER_SEQ";
 
	
	@Autowired
	public OracleSequenceMaxValueIncrementer oracleSequenceMaxValueIncrementer;
 
	public String nextRechargeOrderSeq(String bizProduct , String txnType){
		oracleSequenceMaxValueIncrementer.setIncrementerName(UCF_RECHARGE_TRADE_ORDER_SEQ);
		String currval = oracleSequenceMaxValueIncrementer.nextStringValue();
		return TimeUtil.getCurrentDateTime14() +bizProduct+ txnType  + currval;
		//20140328175835 100 10 10000002814  共30 位
	 
	}

第四步:使用

    把这个工具类作为一种服务注入

	@Autowired
	public SequenceGenerator sequenceGenerator;

   在需要的方法中添加

  String id =sequenceGenerator.nextRechargeOrderSeq();

按以上的步骤 就可以使用Oracle 中的序列,我们可以通过这个序列来拼接一些有意义的数字。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值