1.增加(insert)
<!--添加所有的商品-->
<insert id="add" parameterType="类的全路径" useGeneratedKeys="true" keyProperty="id">
insert into "表名"
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="goodsId != null">
goods_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="goodsId != null">
#{goodsId ,jdbcType=INTEGER},
</if>
</trim>
</insert>
上述写法主要是为了增加健壮性。
返回新增的数据的id
添加:useGeneratedKeys=“true” keyProperty=“id”
<insert id="add" parameterType="类的全路径" useGeneratedKeys="true" keyProperty="id">
</insert>
Controller层代码
activityService.add(activity);
Integer id = activity.getId(); // id就是返回的主键
2.查询(select)
范围查询以及删除(传入的字符串类型)
<select id="" resultType="java.util.List" parameterType="java.lang.String">
select name from "表名" where id in (${goodsIds})
</select>
模糊查询并且防注入sql语句
<select id="get" resultMap="BaseResultMap">
SELECT * FROM table where isdeleted = 0
<if test="name != null and name != '' " >
AND name like concat('%',#{name},'%')
</if>
</select>
3.更新(update)
最简单的不使用便签的形式。
<update id="update" parameterType="实体类全路径">
update "表名" set status = "2" where id = ${id}
</update>
使用和标签
<update id="update" parameterType="com.community.model.Activity">
update t_activity
<set>
<if test="name != null">
name = #{name,jdbcType=VARCHAR},
</if>
</set>
where id = #{id}
</update>
4.删除(delete)
单个数据删除忽略不写,下面主要提供两种批量删除的方式,原理都是用关键字“in”,但是写法不同,方式二可以防注入。
one: 直接使用in+范围(传进来的是字符串类型,逗号拼接)
Mapper.java接口:
// ids是字符串类型,用逗号(,)拼接
int del(String ids);
Mapper.xml文件:
<delete id="del" parameterType="java.lang.String">
delete from member
where id in (${ids})
</delete>
two:使用foreach标签删除,可以防注入,传进来的是数组
Mapper接口:
/**
* @Description: del 根据ids集合删除
* @Param: [ids] 数组
* @return: void
*/
public void del(String[] ids);
Mapper.xml文件:
<delete id="del" parameterType="String">
delete from t_team_type where id in
<foreach collection="array" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
补充:返回类型resultMap和resultType的使用
resultMap用于实体类的映射,把表中字段和实体类的字段建立映射。
<select id="get" resultType="类的全路径">
SELECT * FROM ...
</select>
2.也可以是基本的数据类型,最常用的List,map等,map类型如下:
<select id="get" resultType="java.util.HashMap">
SELECT * FROM ...
</select>
<!--返回值可以使Map类型,也可以是List<Map<?,?>>类型,list<Map>接口如下-->
List<Map<String,Object>> get();