文档章节

MyBatics的CRUD总结

厮以为
 厮以为
发布于 2015/12/01 10:52
字数 466
阅读 120
收藏 3

1 MyBatics

定义Pojo

写CRUD的XML,或者接口

注册到全局文件中

2 查询

业务逻辑和SQL的耦合

<!--单条件判断-->

<select id="selectReaderMoney" resultType="jikeReader" parameterType="jikeReader">

   select * from reader 

      where 1=1

      <if test="money!=null">

         and money>#{money}

      </if>

</select>  

<!--多条件的联合判断-->

<select id="selectJiKeUserChoose" resultType="JiKeUser" parameterType="JiKeUser">

      select * from jikeuser where 1=1

      <choose>

         <when test="userName!=null">

            and userName like #{userName}

         </when>

         <when test="id!=0">

            and id =#{id}

         </when>

      

         <otherwise>

            and password is not null

         </otherwise>

      </choose>

</select>

<!--where条件 第一ifwhere会自行判定是否有and-->

<select id="selectJiKeUserWhere" resultType="JiKeUser" parameterType="JiKeUser">

   select * from jikeuser  

      <where>

         <if test="userName!=null">

            and userName like #{userName}

         </if>

         <if test="id!=null">

            and id =#{id}

         </if>

      </where>

</select>

<!-- foreach 循环查询 (将集合转化in中的条件)-->

<select id="selectJiKeUserForeach" resultType="JiKeUser" parameterType="list"> 

   select * from jikeuser  

      <where>

         id in

         <foreach item="item" index="index" collection="list"

            open="(" separator="," close=")">

            #{item}

         </foreach>

      </where>

</select>

连表查询

<resultMap id="JiKeAuthorMapByCon" type="Author">

   <id property="id" column="author.id" />

   <result property="realName" column="realName" />

   <result property="IDCard" column="IDCard" />

   <association property="jikeUser" column="userID" javaType="JiKeUser">

      <constructor>

            <arg column="userName" javaType="String" />

            <arg column="password" javaType="String" />

      </constructor>

   </association>

</resultMap>

<select id="selectAuthorJoin" resultMap="JiKeAuthorMapByCon">

   select * from author inner join jikeUser 

      on jikeuser.id=author.userID

</select>

懒加载配置

<select id="findById" parameterType="int" resultType="jike.book.pojo.JiKeUser">

   select * from jikeUser where id=#{id}

</select>

<!--标明了连接条件?但是有多条件关联呢-->

<resultMap id="JiKeAuthorSubMap" type="Author">

   <id property="id" column="author.id" />

   <result property="realName" column="realName" />

   <result property="IDCard" column="IDCard" />

   <association property="jikeUser" column="userID"

      javaType="JiKeUser" select="findById">

   </association>

</resultMap>

<select id="selectAuthor" resultMap="JiKeAuthorSubMap">

   select * from author 

</select>

 

注:

不明白的地方:1,association 和collector的区别 2 鉴别器

3 更新

<update id="updateJiKeUserSet" parameterType="JiKeUser">

   update JiKeUser

   <set>

      <if test="userName != null">userName=#{userName},</if>

      <if test="password != null">password=#{password},</if>

   </set>

   where id=#{id}

</update>

<!--trim格式化标记(当然也可以替代很多choose,where and so on)-->

<update id="updateUserTrim" parameterType="JiKeUser">

   UPDATE JiKeUser 

          <trim prefix="SET" suffixOverrides="," suffix="WHERE id = #{id}" >  

          <if test="userName != null and userName != '' ">  

                     userName = #{userName},

             </if>

              <if test="password != null and password != '' ">  

                     password=#{password},

              </if>  

   </trim>

</update>

4 多条插入

<insert id="insertJiKeUserForeach">

    insert into jikeUser (userName, password) values  

     <foreach item="item" index="key" collection="list"  

          open="" separator="," close="">(#{key}, #{item.password})

      </foreach>   

</insert>


© 著作权归作者所有

厮以为
粉丝 31
博文 64
码字总数 83208
作品 0
深圳
架构师
私信 提问
求 spring boot mybatics框架

求 spring boot mybatics框架

niniNever
2016/12/05
227
2
mybatics通用mapper保存返回主键

@Liuzh_533 你好,想跟你请教个问题: mybatics oracle 保存 返回主键 可以通过通用 save 方法么

IT785643439
2017/07/03
304
3
JAVA WEB项目文件上传下载求思路,求指教

1.使用的框架是springmvc + mybatics 2.问题点在于使用java上传文件时如何把进度传给前端制作出一个进度条。 3.目前本人使用七牛云java sdk连接了七牛云,并且能够成功上传文件。但是不知如何...

蛋炒饭加冰块
2017/12/15
358
5
JAVA WEB项目文件上传下载功能模块求思路

1.使用的框架是springmvc + mybatics 2.问题点在于使用java上传文件时如何把进度传给前端制作出一个进度条。 3.目前本人使用七牛云java sdk连接了七牛云,并且能够成功上传文件。但是不知如何...

蛋炒饭加冰块
2017/12/15
565
0
MyBatis入门学习教程 MyBatis快速入门1-8(2)

上一章:http://my.oschina.net/u/2608629/admin/edit-blog?blog=715422 上一篇MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个...

筱飞
2016/07/21
92
0

没有更多内容

加载失败,请刷新页面

加载更多

反编译9.png图片还原

本文链接:https://blog.csdn.net/a1140778530/article/details/10528507 经常反编译apk文件找资源,9.png的文件处理起来很麻烦。 最近使用Ant自动编译打包app时,从别处搜罗来的9.png文件导...

shzwork
10分钟前
2
0
Shell脚本应用 – for、while循环语句

一、for循环语句 在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同。例如:根据通讯录中的姓名列表创建系统账号等情况。 当面对各种...

linux-tao
10分钟前
2
0
RPA风潮下企业财务工作模式的变革

RPA(机器人流程自动化)在财务领域的应用,正给企业财务带来前所未有的改变。 前RPA时代,财务领域面临的痛点 在RPA机器人应用之前,企业财务工作进程的推进,主要通过财务人员人工操作或信...

UiBot
15分钟前
3
0
Hive之命令行修改表注释

最近遇到一个需求,在不重建表的情况下,修改表的注释,hive有没有类似关系型数据库的SQL命令来修改呢,找了下,亲测有效,如下List-1 List-1 hive>use your_schemahvie>ALTER TABLE tabl...

克虏伯
15分钟前
3
0
是什么,它的作用是什么

在HTML文档的首部往往会有这么一句话<!DOCTYPE html>,许多时候我们忽视了它的存在,它实际上是一个声明,告诉浏览器用哪种HTML版本的规范来解读HTML文档。 尽管我们不给出这句声明浏览器照样...

前端老手
21分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部