前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis中crud操作范例

mybatis中crud操作范例

作者头像
Gxjun
发布2018-03-27 11:29:13
1.9K0
发布2018-03-27 11:29:13
举报
文章被收录于专栏:ml
代码语言:javascript
复制
  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4 
  5 <!--提供基本版,依据业务情况,酌情添加-->
  6 <!--author XiJun.Gong-->
  7 
  8 <mapper namespace="com.qunar.qexam2.course.dao.CourseDao">
  9 
 10     <insert id="insertCourse" parameterType="com.qunar.qexam2.course.model.CourseDomain"
 11             useGeneratedKeys="true" keyProperty="id">
 12         INSERT INTO
 13             course
 14             (
 15                 classification_id,
 16                 course_name,
 17                 create_time,
 18                 create_user,
 19                 update_time,
 20                 update_user,
 21                 is_delete
 22             )
 23         VALUES
 24             (
 25                 #{classificationId},
 26                 #{name},
 27                 #{createTime},
 28                 #{creatorTalkId},
 29                 #{modifyTime},
 30                 #{menderTalkId},
 31                 #{isDelete}
 32             )
 33     </insert>
 34     <!--批量插入数据-->
 35     <insert id="insertCourseBatch" parameterType="com.qunar.qexam2.course.model.CourseDomain">
 36         INSERT INTO
 37         course
 38         (
 39         classification_id ,
 40         course_name ,
 41         create_time ,
 42         create_user,
 43         update_time,
 44         update_user,
 45         is_delete
 46         )
 47         VALUES
 48         <foreach collection="list" item="item" index="index" separator=",">
 49             (
 50             #{item.classificationId},
 51             #{item.name} ,
 52             #{item.createTime} ,
 53             #{item.creatorTalkId},
 54             #{item.modifyTime},
 55             #{item.menderTalkId},
 56             #{item.isDelete}
 57             )
 58         </foreach>
 59 
 60     </insert>
 61 
 62     <!--物理删除-->
 63     <delete id="deleteCourse">
 64 
 65         DELETE course1 , question1
 66         FROM course course1
 67         JOIN question question1
 68         ON course1.id = question1.course_id
 69         AND question1.use_count = 0
 70 
 71         WHERE
 72         course1.id = #{CourseId};
 73 
 74     </delete>
 75 
 76 
 77     <update id="updateCourse" parameterType="com.qunar.qexam2.course.model.CourseDomain">
 78 
 79         UPDATE course
 80         <set>
 81 
 82             <if test="classificationId != null and classificationId !='' ">
 83                 course.classification_id = #{classificationId} ,
 84             </if>
 85 
 86             <if test=" name != null and name != '' ">
 87                 course.course_name = #{name} ,
 88             </if>
 89 
 90             <if test="createTime != null and createTime !='' ">
 91                 course.create_time = #{createTime} ,
 92             </if>
 93 
 94             <if test="creatorTalkId != null and creatorTalkId!='' ">
 95                 course.create_user = #{creatorTalkId} ,
 96             </if>
 97 
 98             <if test="modifyTime != null and modifyTime != '' ">
 99                 course.update_time = #{modifyTime} ,
100             </if>
101 
102             <if test="menderTalkId != null and menderTalkId !='' ">
103                 course.update_user = #{menderTalkId} ,
104             </if>
105 
106             <if test="isDelete != null and isDelete != '' ">
107                 course.is_delete = #{isDelete}
108             </if>
109 
110         </set>
111         WHERE course.id =#{id}
112 
113     </update>
114 
115     <!--逻辑删除-->
116     <update id="updateCourseStatus">
117         UPDATE course AS course1
118          JOIN question AS  question1
119         ON course1.id = question1.course_id
120         AND question1.use_count = 0
121         SET
122         course1.is_delete = 1,
123         question1.is_delete = 1
124         WHERE
125         course1.id = #{CourseId}
126 
127     </update>
128 
129     <!--分类逻辑删除-->
130     <!--逻辑删除-->
131     <update id="updateBatchCourseStatus">
132 
133         UPDATE course  As course1
134             JOIN question As question1
135         ON
136         course1.id = question1.course_id
137         AND question1.use_count = 0
138         SET course1.is_delete = 1,
139         question1.is_delete = 1
140         WHERE
141         course.classification_id = #{classificationId}
142     </update>
143 
144     <!--逻辑添加-->
145     <update id="updateCourseOnline">
146         UPDATE course
147         SET course.is_delete = 0
148         WHERE
149             course.id = #{CourseId}
150     </update>
151 
152     <select id="selectCourses" resultType="com.qunar.qexam2.course.model.CourseDomain">
153 
154         SELECT
155         course.id as id ,
156         course.classification_id as classificationId ,
157         course.course_name as name ,
158         course.create_time as createTime ,
159         course.create_user as creatorTalkId ,
160         course.update_time as modifyTime ,
161         course.update_user as menderTalkId ,
162         course.is_delete as isDelete
163 
164         FROM course
165 
166         <where>
167 
168             <if test="classificationId != null and classificationId != '' ">
169                 AND
170                 course.classification_id = #{classificationId}
171             </if>
172             <if test="isDelete != null and isDelete != '' ">
173                 AND
174                 course.is_delete = #{isDelete}
175             </if>
176 
177         </where>
178         order by course.create_time desc
179     </select>
180 
181     <select id="selectCourseVoAll" resultType="com.qunar.qexam2.course.vo.CourseVo">
182         SELECT
183             course.id          AS id,
184             course.course_name AS name
185         FROM course
186         WHERE
187             course.is_delete = 0
188         ORDER BY course.create_time DESC
189     </select>
190 
191 
192     <select id="CountCourses" resultType="com.qunar.qexam2.course.model.CourseDomain">
193         SELECT COUNT(*)
194         FROM course
195         <where>
196             <if test="classificationId != null  and classificationId != '' ">
197                 AND
198                 course.classification_id = #{classificationId}
199             </if>
200             AND
201             course.is_delete = 0
202         </where>
203     </select>
204 
205     <!--统计未进行逻辑删除的课程-->
206     <select id="CountCoursesByCourseId" resultType="java.lang.Integer">
207         SELECT count(*)
208         FROM course
209         WHERE course.is_delete = 0
210     </select>
211 
212     <!--统计多个分类下的课程数目-->
213     <select id="CountCoursesByCategoryId" resultType="Integer">
214         SELECT COUNT(*)
215         FROM course
216         WHERE
217         course.is_delete = 0
218         AND course.classification_id IN
219         <foreach item="classificationId" index="index" collection="classificationIdList"
220                  open="(" separator="," close=")">
221             #{classificationId}
222         </foreach>
223     </select>
224 
225 
226     <select id="selectCourseByName" resultType="com.qunar.qexam2.course.model.CourseDomain">
227 
228         SELECT
229         course.id as id ,
230         course.classification_id as classificationId ,
231         course.course_name as name ,
232         course.create_time as createTime ,
233         course.create_user as creatorTalkId ,
234         course.update_time as modifyTime ,
235         course.update_user as menderTalkId ,
236         course.is_delete as isDelete
237 
238         FROM course
239         <where>
240             <if test="CourseName != null and CourseName != '' ">
241                 AND
242                 course.course_name like #{CourseName}
243             </if>
244             <if test="isDelete != null  and isDelete != '' ">
245                 AND
246                 course.is_delete = #{isDelete}
247             </if>
248         </where>
249 
250         order by course.create_time desc
251     </select>
252 
253     <select id="selectCourse" resultType="com.qunar.qexam2.course.model.CourseDomain">
254 
255         SELECT
256         course.id as id ,
257         course.classification_id as classificationId ,
258         course.course_name as name ,
259         course.create_time as createTime ,
260         course.create_user as creatorTalkId ,
261         course.update_time as modifyTime ,
262         course.update_user as menderTalkId ,
263         course.is_delete as isDelete
264 
265         FROM course
266         <where>
267             <if test="CourseId != null and CourseId != '' ">
268                 AND
269                 course.id = #{CourseId}
270             </if>
271             <if test="isDelete != null and isDelete !='' ">
272                 AND
273                 course.is_delete = #{isDelete}
274             </if>
275         </where>
276         order by course.create_time desc
277     </select>
278 
279 
280     <select id="selectCourseWithoutLimit"
281             resultType="com.qunar.qexam2.course.model.CourseDomain">
282 
283         SELECT
284             course.id                AS id,
285             course.classification_id AS classificationId,
286             course.course_name       AS name,
287             course.create_time       AS createTime,
288             course.create_user       AS creatorTalkId,
289             course.update_time       AS modifyTime,
290             course.update_user       AS menderTalkId,
291             course.is_delete         AS isDelete
292         FROM course
293 
294         WHERE course.is_delete = 0
295         ORDER BY course.create_time DESC
296     </select>
297 
298     <select id="selectCourseByAuthor" resultType="com.qunar.qexam2.course.model.CourseDomain">
299 
300         SELECT
301         course.id as id ,
302         course.classification_id as classificationId ,
303         course.course_name as name ,
304         course.create_time as createTime ,
305         course.create_user as creatorTalkId ,
306         course.update_time as modifyTime ,
307         course.update_user as menderTalkId ,
308         course.is_delete as isDelete
309 
310         FROM course
311         <where>
312             <if test="creatorTalkId != null  and creatorTalkId != '' ">
313                 AND
314                 course.create_user = #{creatorTalkId}
315             </if>
316 
317             <if test="isDelete != null and isDelete != '' ">
318                 AND
319                 course.is_delete = #{isDelete}
320             </if>
321         </where>
322         order by course.create_time desc
323     </select>
324 
325     <select id="selectClassificationName" resultType="java.lang.String">
326         SELECT classification.tag_name
327         FROM course
328         LEFT JOIN classification
329         ON course.classification_id = classification.id
330         <where>
331             <if test="courseId != null and courseId !='' ">
332                 AND
333                 course.id = courseId
334             </if>
335         </where>
336     </select>
337 
338     <select id="queryCourseVoByCategoryId" resultType="com.qunar.qexam2.course.vo.CourseVo">
339         SELECT
340         course.id AS id ,
341         course.course_name AS name,
342         FROM course
343         <where>
344             <if test="classificationId != null and classificationId != '' ">
345                 AND
346                 course.classification_id = #{classificationId}
347             </if>
348         </where>
349     </select>
350 
351 
352     <!--依照分类来返回课程列表信息-->
353     <select id="queryCourseInfVoByCategoryId" resultType="com.qunar.qexam2.course.vo.CourseInfoVo">
354 
355         SELECT
356         course.id AS id ,
357         course.course_name AS courseName,
358         course.create_user AS createUser,
359         course.create_time As createTime
360         FROM course
361 
362         <where>
363             <if test="classificationId != null and classificationId != '' ">
364                 AND
365                 course.classification_id = #{classificationId}
366             </if>
367         </where>
368 
369     </select>
370 
371     <!--依照分类来返回课程列表信息-->
372     <select id="queryCourseInfVoByCategoryIdList" resultType="com.qunar.qexam2.course.vo.CourseInfoVo">
373         SELECT
374         course.id AS id ,
375         course.course_name AS courseName,
376         course.create_user AS createUser,
377         course.create_time As createTime
378         FROM course
379         WHERE course.classification_id IN
380         <foreach item="classificationId" index="index" collection="classificationIdList"
381                  open="(" separator="," close=")">
382             #{classificationId}
383         </foreach>
384     </select>
385 
386     <!--
387         &lt;!&ndash;给予课程Id查询课程所属的一二级部门部门&ndash;&gt;
388         <select id="queryCourseAffiliation" resultType="com.qunar.qexam2.course.vo.CourseAffiliation">
389 
390           SELECT
391             course1.course_name AS courseName ,
392             category1.tag_name  As firstDepart ,
393             category2.tag_name  AS secondDepart
394 
395           FROM
396               course course1
397 
398            JOIN classification category2 ON
399              category2.id  =  course1.classification_id
400 
401            JOIN  classification category1 ON
402             category1.id = category2.parent_id
403 
404           WHERE course1.id = #{courseId}
405 
406         </select>
407     -->
408 
409     <!--依照分类来返回课程列表信息-->
410     <select id="queryCategoryIdByCourseId" resultType="java.lang.Integer">
411         SELECT
412         course.classification_id AS classificationId
413         FROM course
414         WHERE course.id IN
415         <foreach item="courseId" index="index" collection="courseIdList"
416                  open="(" separator="," close=")">
417             #{courseId}
418         </foreach>
419     </select>
420 
421 
422     <!--依照分类Id来返回课程Id列表信息-->
423     <select id="queryCourseIdByCategoryId" resultType="java.lang.Integer">
424         SELECT
425         course.id
426         FROM course
427         WHERE course.classification_id IN
428         <foreach item="classificationId" index="index" collection="categoryIdList"
429                  open="(" separator="," close=")">
430             #{classificationId}
431         </foreach>
432     </select>
433 
434 
435 </mapper>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-04-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档