一.基本标签
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修改数据