在程序開發中,咱們常常有寫數據庫表的操做,數據表中常常帶有主鍵自增序列,如何獲取自增序列。spring中提供了相應的類 DataFieldMaxValueIncrementer。spring
DataFieldMaxValueIncrementer 接口定義了3個獲取下一個主鍵值的方法:
int nextIntValue(): 獲取下一個主鍵值,主鍵數據類型爲int;
long nextLongValue(): 獲取下一個主鍵值,主鍵數據類型爲long;
String nextStringValue(): 獲取下一個主鍵值,主鍵數據類型爲String;數據庫
在spring工程的spring-dao.xml中添加配置以下:緩存
Oracle 配置post
<bean id="incre" class="org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer"> <property name="incrementerName" value="seq_post_id"/> ①指定序列名 <property name="dataSource" ref="dataSource"/> ②設置數據源 </bean>
MySQL 配置spa
<bean id="incre" class="org.springframework.jdbc.support.incrementer.MySQLMaxValueIncrementer"> <property name="incrementerName" value="t_post_id"/> ①設置維護主鍵的表名 <property name="columnName" value="sequence_id"/>②用於生成主鍵值的列名 <property name="cacheSize" value="10"/> ③緩存大小 <property name="dataSource" ref="dataSource"/> </bean>
代碼中用時以下:code
@Autowired
private DataFieldMaxValueIncrementer unitIniIncre;xml
//獲取主鍵序列blog
long gid = unitIniIncre.nextLongValue();接口