十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
今天小編給大家分享一下基于Java如何用Mybatis實(shí)現(xiàn)oracle批量插入及分頁查詢的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、和布克賽爾蒙古ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的和布克賽爾蒙古網(wǎng)站制作公司
insert into userinfo (USERID, USERNAME, AGE) values(1001,'小明',20);SELECT userinfo_userid_seq.nextval as userid from dual insert into EPG_ALARM_INFO (USERID, USERNAME, AGE) values (#{userid}, #{username}, #{age})insert into EPG_ALARM_INFO (USERID, USERNAME, AGE, TIME) values (#{userid}, #{username}, #{age}, sysdate)
insert all into 的方式返回值由最后的select 決定:
INSERT ALL INTO userinfo (USERID, USERNAME, AGE) values(1001,'小明',20) INTO userinfo (USERID, USERNAME, AGE) values(1002,'小紅',18) INTO userinfo (USERID, USERNAME, AGE) values(1003,'張三',23) select 3 from dual; begin insert into userinfo (USERID, USERNAME, AGE) values(1001,'小明',20); insert into userinfo (USERID, USERNAME, AGE) values(1001,'小紅',18); insert into userinfo (USERID, USERNAME, AGE) values(1001,'張三',23); end; insert into userinfo (USERID, USERNAME, AGE) select 1001, '小明', 20 from dual union all select 1002, '小紅', 18 from dual union all select 1003, '張三', 23 from dual
INSERT ALL INTO userinfo (USERID, USERNAME, AGE) VALUES (#{item.userid}, #{item.username}, #{item.age}) select list.size from dualinsert into EPG_ALARM_INFO (USERID, USERNAME, AGE) select #{item.userid}, #{item.username}, #{item.age} from dual insert into EPG_ALARM_INFO (USERID, USERNAME, AGE) SELECT userinfo_userid_seq.nextval, m.* FROM ( select #{item.username}, #{item.age} from dual ) m
minvalue n (/nominvalue):最小值為n
maxvalue n (/nomaxvalue):最大值為n
start with n:從n開始計(jì)數(shù)
increment by n:每次增加n
cache n (/nocache):緩存n個(gè)sequence值 / 不緩存,如果緩存,則會(huì)有跳號的危險(xiǎn)
noorder (/order):不保證序列號按順序生成請求
cycle n (/nocycle):如果到達(dá)最大值n后,再次從start with n開始
currval:序列的當(dāng)前值,新序列必須使用一次nextval 才能獲取到值,否則會(huì)報(bào)錯(cuò)
nextval:表示序列的下一個(gè)值。新序列首次使用時(shí)獲取的是該序列的初始值,從第二次使用時(shí)開始按照設(shè)置的步進(jìn)遞增
刪除序列語法:drop sequence seq_表名
create sequence SEQ_USERINFO minvalue 1 maxvalue 9999999999 start with 1 increment by 1 nocache; drop sequence SEQ_USERINFO
service業(yè)務(wù)實(shí)現(xiàn):
public ListqueryPageBadUserInfo(TbadUserQuery queryModel) { log.info("分頁查詢請求參數(shù),{}", JSON.toJSONString(queryModel)); int pageNum = queryModel.getPageNum(); // 開始頁 int pageSize = queryModel.getPageSize(); // 每頁數(shù)量 queryModel.setStart((pageNum - 1) * pageSize); // 開始行數(shù) (+1后) queryModel.setEnd(pageNum * pageSize); // 結(jié)束行數(shù) List beans = badUserWDao.queryPageBadUserInfo(queryModel); log.info("最終查詢數(shù)量:", beans.size()); return beans; }
mapper.xml文件:
service業(yè)務(wù)實(shí)現(xiàn):
public ListqueryPageBadUserInfo(TbadUserQuery queryModel) { log.info("分頁查詢請求參數(shù),{}", JSON.toJSONString(queryModel)); List result = new ArrayList<>(); int pageNum = queryModel.getPageNum(); // 開始頁 int pageSize = queryModel.getPageSize(); // 每頁數(shù)量(可以每頁設(shè)置為200/500/1000),每次查詢的條數(shù) boolean searchAll = true; while (searchAll){ queryModel.setStart((pageNum - 1) * pageSize); // 開始行數(shù) (+1后) queryModel.setEnd(pageNum * pageSize); // 結(jié)束行數(shù) List beans = badUserWDao.queryPageBadUserInfo(queryModel); if (null == beans || beans.size() < pageSize) { searchAll = false; } if (CollectionUtils.isNotEmpty(beans)) { result.addAll(beans); } pageNum++; } log.info("最終查詢數(shù)量:", result.size()); return result; }
mapper.xml文件編寫
以上就是“基于Java如何用Mybatis實(shí)現(xiàn)oracle批量插入及分頁查詢”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。