<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
<!--簡單SQL--> insert into userinfo (USERID, USERNAME, AGE) values(1001,'小明',20); <!--Mybatis寫法1,有序列,主鍵是自增ID,主鍵是序列--> <insert id="insert" parameterType="com.zznode.modules.bean.UserInfo"> <selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="userid"> SELECT userinfo_userid_seq.nextval as userid from dual </selectKey> insert into EPG_ALARM_INFO (USERID, USERNAME, AGE) values (#{userid}, #{username}, #{age}) </insert> <!--Mybatis寫法2,無序列,主鍵是uuid,字串--> <insert id="insert" parameterType="com.zznode.modules.bean.UserInfo"> insert into EPG_ALARM_INFO (USERID, USERNAME, AGE, TIME) values (#{userid}, #{username}, #{age}, sysdate) </insert>
insert all into 的方式返回值由最後的select 決定:
<!--簡單SQL, 方法1--> 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; <!--簡單SQL, 方法2--> 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; <!--簡單SQL, 方法3--> 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
<!--Mybatis寫法1,無序列--> <insert id="insertBatch" parameterType="java.util.List"> INSERT ALL <foreach collection="list" index="index" item="item"> INTO userinfo (USERID, USERNAME, AGE) VALUES (#{item.userid}, #{item.username}, #{item.age}) </foreach> select list.size from dual </insert> <!--Mybatis寫法2,無序列--> <insert id="insertBatch"> insert into EPG_ALARM_INFO (USERID, USERNAME, AGE) <foreach collection="list" item="item" index="index" separator="union all"> <!-- <foreach collection="list" item="item" index="index" separator="union all" open="(" close=")"> --> <!-- (select #{item.userid}, #{item.username}, #{item.age} from dual) --> <!-- 上面帶括號,下面不帶括號,都可以,少量資料不帶括號效率高 --> select #{item.userid}, #{item.username}, #{item.age} from dual </foreach> </insert> <!--Mybatis寫法3,有序列--> <insert id="insertBatch"> insert into EPG_ALARM_INFO (USERID, USERNAME, AGE) SELECT userinfo_userid_seq.nextval, m.* FROM ( <foreach collection="list" item="item" index="index" separator="union all"> select #{item.username}, #{item.age} from dual </foreach> ) m </insert>
刪除序列語法: drop sequence seq_表名
<!-- create sequence 序列名 increment by 1 --每次增加幾個,我這裡是每次增加1 start with 1 --從1開始計數 nomaxvalue --不設定最大值 nocycle --一直累加,不迴圈 nocache; --不建緩衝區 在插入語句中呼叫:序列名.nextval 生成自增主鍵。 --> <!--建立序列--> create sequence SEQ_USERINFO minvalue 1 maxvalue 9999999999 start with 1 increment by 1 nocache; <!--刪除序列--> drop sequence SEQ_USERINFO
service業務實現:
public List<TBadUserW> queryPageBadUserInfo(TbadUserQuery queryModel) { log.info("分頁查詢請求引數,{}", JSON.toJSONString(queryModel)); int pageNum = queryModel.getPageNum(); // 開始頁 int pageSize = queryModel.getPageSize(); // 每頁數量 queryModel.setStart((pageNum - 1) * pageSize); // 開始行數 (+1後) queryModel.setEnd(pageNum * pageSize); // 結束行數 List<TBadUserW> beans = badUserWDao.queryPageBadUserInfo(queryModel); log.info("最終查詢數量:", beans.size()); return beans; }
mapper.xml檔案:
<select id="queryPageInfo" parameterType="com.zznode.test.bean.TbadUserQuery" resultMap="BaseResultMap" > SELECT tt.* FROM ( <!--前端分頁需要 total總記錄--> SELECT t.*, ROWNUM rown, COUNT (*) OVER () total FROM ( select <include refid="Base_Column_List"/> from T_BAD_USER_W <where> <if test="city != null and city !=''"> and city = #{city} </if> <if test="county != null and county != ''"> and county = #{county} </if> <if test="startTime != null and startTime !=''"> and loadtime >= to_date(#{startTime} , 'yyyy-mm-dd hh24:mi:ss') </if> <if test="endTime != null and endTime !=''"> and loadtime <![CDATA[<=]]> to_date(#{endTime} , 'yyyy-mm-dd hh24:mi:ss') </if> </where> )t )tt where tt.rown > #{start} and tt.rown <![CDATA[<=]]> #{end} </select>
service業務實現:
public List<TBadUserW> queryPageBadUserInfo(TbadUserQuery queryModel) { log.info("分頁查詢請求引數,{}", JSON.toJSONString(queryModel)); List<TBadUserW> result = new ArrayList<>(); int pageNum = queryModel.getPageNum(); // 開始頁 int pageSize = queryModel.getPageSize(); // 每頁數量(可以每頁設定為200/500/1000),每次查詢的條數 boolean searchAll = true; while (searchAll){ queryModel.setStart((pageNum - 1) * pageSize); // 開始行數 (+1後) queryModel.setEnd(pageNum * pageSize); // 結束行數 List<TBadUserW> beans = badUserWDao.queryPageBadUserInfo(queryModel); if (null == beans || beans.size() < pageSize) { searchAll = false; } if (CollectionUtils.isNotEmpty(beans)) { result.addAll(beans); } pageNum++; } log.info("最終查詢數量:", result.size()); return result; }
mapper.xml檔案編寫
<!--這種寫法是比較高效的分批查詢方法,分批不需要查詢total總量,不支援total--> <select id="queryPageInfo" parameterType="com.zznode.test.bean.TbadUserQuery" resultMap="BaseResultMap" > SELECT tt.* FROM ( SELECT t.*, ROWNUM rown FROM ( select <include refid="Base_Column_List"/> from T_BAD_USER_W <where> <if test="city != null and city !=''"> and city = #{city} </if> <if test="county != null and county != ''"> and county = #{county} </if> <if test="startTime != null and startTime !=''"> and loadtime >= to_date(#{startTime} , 'yyyy-mm-dd hh24:mi:ss') </if> <if test="endTime != null and endTime !=''"> and loadtime <![CDATA[<=]]> to_date(#{endTime} , 'yyyy-mm-dd hh24:mi:ss') </if> </where> )t where ROWNUM <![CDATA[<=]]> #{end} )tt where tt.rown > #{start} </select>
到此這篇關於基於Java 利用Mybatis實現oracle批次插入及分頁查詢的文章就介紹到這了,更多相關Mybatis實現oracle批次插入 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45