這篇文章主要為大家展示了“Mapper如何批量插入Oracle數(shù)據(jù)@InsertProvider注解”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Mapper如何批量插入Oracle數(shù)據(jù)@InsertProvider注解”這篇文章吧。
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括攀枝花網(wǎng)站建設(shè)、攀枝花網(wǎng)站制作、攀枝花網(wǎng)頁(yè)制作以及攀枝花網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,攀枝花網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到攀枝花省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
Mapper:
@Mapper
@OracleRepository
public interface OracleRadiusMapper{ @InsertProvider(type = OracleRadiusProvider.class , method = "insertRadiusDataBatch") int insertRadiusDataBatch(@Param("list")ListacctInfoList); }
//@Param("list")
可以省略,在處理list的時(shí)候默認(rèn)是list
Provider:
public class OracleRadiusProvider { public String insertRadiusDataBatch(Map map) { ListradiusAcctInfoList = (List ) map.get("list"); StringBuilder sb = new StringBuilder(); sb.append(" INSERT ALL "); String inVal=" INTO RADIUS_ACCT (RADACCT_ID,ACCT_SESSIONID,ACCT_UNIQUEID,USER_NAME,GROUP_NAME,REALM,NAS_IP_ADDRESS,NAS_PORT_ID,NAS_PORT_TYPE,ACCT_START_TIME,ACCT_UPDATE_TIME,ACCT_STOP_TIME,ACCT_INTERVAL," + "ACCT_SESSION_TIME,ACCT_AUTHENTIC,CONNECTINFO_START,CONNECTINFO_STOP,ACCT_INPUTOCTETS,ACCT_OUTPUTOCTETS,CALLED_STATION_ID,CALLING_STATION_ID,ACCT_TERMINATE_CAUSE,SERVICE_TYPE," + "FRAMED_PROTOCOL,FRAMED_IP_ADDRESS) VALUES"; sb.append(inVal); MessageFormat mf = new MessageFormat("(" + "#'{'list[{0}].radacctId,jdbcType=NUMERIC}, #'{'list[{0}].acctSessionid,jdbcType=VARCHAR}, #'{'list[{0}].acctUniqueid,jdbcType=VARCHAR}, #'{'list[{0}].userName,jdbcType=VARCHAR}" + ", #'{'list[{0}].groupName,jdbcType=VARCHAR}, #'{'list[{0}].realm,jdbcType=VARCHAR}, #'{'list[{0}].nasIpAddress,jdbcType=VARCHAR}, #'{'list[{0}].nasPortId,jdbcType=VARCHAR}, #'{'list[{0}].nasPortType,jdbcType=VARCHAR}" + ", #'{'list[{0}].acctStartTime,jdbcType=DATE}, #'{'list[{0}].acctUpdateTime,jdbcType=DATE}, #'{'list[{0}].acctStopTime,jdbcType=DATE}, #'{'list[{0}].acctInterval,jdbcType=NUMERIC}, #'{'list[{0}].acctSessionTime,jdbcType=NUMERIC}" + ", #'{'list[{0}].acctAuthentic,jdbcType=VARCHAR}, #'{'list[{0}].connectinfoStart,jdbcType=VARCHAR}, #'{'list[{0}].connectinfoStop,jdbcType=VARCHAR}, #'{'list[{0}].acctInputoctets,jdbcType=NUMERIC}, #'{'list[{0}].acctOutputoctets,jdbcType=NUMERIC}" + ", #'{'list[{0}].calledStationId,jdbcType=VARCHAR}, #'{'list[{0}].callingStationId,jdbcType=VARCHAR}, #'{'list[{0}].acctTerminateCause,jdbcType=VARCHAR}, #'{'list[{0}].setviceType,jdbcType=VARCHAR}, #'{'list[{0}].framedProtocol,jdbcType=VARCHAR}" + ", #'{'list[{0}].framedIpAddress,jdbcType=VARCHAR} )"); for (int i = 0; i < radiusAcctInfoList.size(); i++) { sb.append(mf.format(new Object[] { i+"" })); if (i < radiusAcctInfoList.size() - 1) { sb.append(inVal); } } sb.append(" select 1 from dual");//記得加這句 return sb.toString(); } }
可以在數(shù)據(jù)庫(kù)直接咨詢(xún)這語(yǔ)句
insert all into jack_20170206_aa values('4014033') into jack_20170206_aa values('4065304') into jack_20170206_aa values('4088136') into jack_20170206_aa values('4092405') select 1 from dual;
以上是“Mapper如何批量插入Oracle數(shù)據(jù)@InsertProvider注解”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!