mybatits基本标签及增删改查操作语句

一.基本标签

1.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>

prefix:在trim标签内sql语句加上前缀。

suffix:在trim标签内sql语句加上后缀。

suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。

prefixOverrides:指定去除多余的前缀内容

 

2.SQL语句段,定义经常被使用到的SQL语句 

<sql id="Base_Column_List">//SQL语句段
    ID, HISTORY_ID, STUDENT_ID, STUDENT_COURSE_ID
</sql> 

3.调用SQL语句段

<include refid="Base_Column_List" />


 

二.增删改查

1查找数据

1根据用户名模糊查询用户列表

eg:select * user where name like '%${value}%'

${} :表示SQL的连接符

${value}:里面value表示输入参数的参数名称,如果该参数是简单类型,name ${}里面的参数名称必须写成value

${}这种写法存在SQL注入风险,所以要慎用!但是在一些场景下(排序时,动态传入排序的列名 ${}会原样输出)

2查询数据

 1.通过固定条件查询

  <sql id="Base_Column_List">//SQL语句段
    ID, HISTORY_ID, STUDENT_ID, STUDENT_COURSE_ID, USER_ID, COURSE_ID, COURSE_TYPE, 
  </sql> 
 <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />//通过这个标签调用SQL标签
    from A_ASSIGN_DETAILS
    where ID = #{id,jdbcType=INTEGER}
  </select>

2.多添件查询

  (1)直接通过<if >标签判断查找

    (如以下代码,这样写当ac="all"的时候,SQL语句会变成SELECT  m , count(0) as warnNum  FROM apm.vox_logs_memory
        where  and os=#{os,jdbcType=VARCHAR} )

<select id="selectMemoryByMTop10" resultType="java.util.Map">
		SELECT
		m ,
		count(0) as warnNum
		FROM apm.vox_logs_memory
		where
		<if test="ac != 'all'"> <!-- activity名称-->
			ac = #{ac,jdbcType=VARCHAR}
		</if>
		<if test="os != null"> <!-- 系统-->
			and os = #{os,jdbcType=VARCHAR}
		</if>
		GROUP BY m
		ORDER BY warnNum DESC
		LIMIT 10
</select>

       (2) 通过<tirm>标签进行操作

<select id="selectMemoryByMTop10" resultType="java.util.Map">
		SELECT
		m ,
		count(0) as warnNum
		FROM apm.vox_logs_memory
       <trim prefix="where" prefixOverrides="and">  <!--以下SQL语句最前面加入where,并去除无用的and-->
		  <if test="ac != 'all'"> <!-- activity名称-->
		 	 ac = #{ac,jdbcType=VARCHAR}
		  </if>
		  <if test="os != null"> <!-- 系统-->
			 and os = #{os,jdbcType=VARCHAR}
		  </if>
        </tirm>
		GROUP BY m
		ORDER BY warnNum DESC
		LIMIT 10
</select>

         (3)通过 <where> 标签

           where 元素知道只有在一个以上的if条件有值的情况下才去插入“WHERE”子句。而且,若最后的内容是“AND”或“OR”开头      的,where 元素也知道如何将他们去除。

<select id="selectMemoryByMTop10" resultType="java.util.Map">
		SELECT
		m ,
		count(0) as warnNum
		FROM apm.vox_logs_memory
		<where>
		  <if test="ac != 'all'"> <!-- activity名称-->
			  ac = #{ac,jdbcType=VARCHAR}
		   </if>
		   <if test="os != null"> <!-- 系统-->
			  and os = #{os,jdbcType=VARCHAR}
		   </if>
        </where>
		GROUP BY m
		ORDER BY warnNum DESC
		LIMIT 10
</select>

2.插入数据时(入参是pojo时)

#{}里面通过User类里面的属性名来取值

3.插入数据并返回主键id

(1)插入数据之后并返回自动生成的主键id

(2)先通过UUID生成id,再添加到数据库中

 

 

3删除数据

4修改数据

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值