方式1:${} 字符串拼接
方式2:#{} 占位符
1.Mapper接口参数为单个参数
Integer deleteById(Integer id);
-
-
- <delete id="deleteById" parameterType="int">
-
- delete from user where id = #{id}
-
- delete>
2.Mapper接口参数是多个参数的获取
User selectUserByUserNameAndPassword(String username,String password);
- <select id="selectUserByUserNameAndPassword" resultType="user">
- select * from user where user_name = #{arg0} and password = #{arg1}
- select>
3.将参数设为map集合进行数据的传递
User selectUserByMap(Map map);
- <select id="selectUserByMap" resultType="cn.kgc.mybatis.entity.User">
- select * from user where user_name = #{username} and password = #{password}
- select>
4.通过注解@param("键名")设置参数的获取名字
Integer addUser(@Param("username") String username,@Param("password") String password);
- <insert id="addUser" >
- insert into user(username,password)values(#{username},#{password})
- insert>
5.将多个参数设置成对象进行数据的传递
int insertUser(User user);
- <insert id="insertUser" parameterType="user" useGeneratedKeys="true" keyProperty="id" >
- insert into user values ( #{id},#{userName},#{password})
- insert>
方式1:
- SELECT * FROM tableName WHERE name LIKE #{text};
-
- -- 传递的参数需要拼接 ‘%text%’
方式2:
- SELECT * FROM tableName WHERE name LIKE '%${text}%';
- -- 使用$替代# 参数无需在拼接% 存在sql注入
方式3
- SELECT * FROM tableName WHERE name LIKE CONCAT('%', #{text}), '%');
- -- 使用mysql的函数 实现拼接
批量删除
int deleteMore(String ids);
- <delete id="deleteMore">
- delete from user where id in(${ids})
- delete>
自定义映射的用法之一,解决表格查询的字段名和实体类中不一致的情况
- <resultMap id="userMap" type="user">
- <id column="id" property="id">id>
- <result column="user_name" property="userName">result>
- <result column="password" property="password">result>
- resultMap>
mybatis对象的关联关系
一对多关系处理(一方)
- <resultMap id="selectByEIdMap" type="cn.kgc.mybatis.entity.Emp">
- <result column="id" property="dept.id" >result>
- <result column="dname" property="dept.dName">result>
- resultMap>
-
-
- <resultMap id="selectByEIdMap2" type="cn.kgc.mybatis.entity.Emp">
- <id column="eid" property="eId">id>
- <result column="ename" property="EName">result>
- <result column="age" property="age">result>
- <result column="deptno" property="deptNo">result>
-
- <association property="dept" javaType="dept">
- <id column="id" property="id">id>
- <result column="dname" property="dName">result>
- association>
- resultMap>
-
-
- <resultMap id="selectByEIdMap3" type="cn.kgc.mybatis.entity.Emp">
- <id column="eid" property="eId">id>
- <result column="ename" property="EName">result>
- <result column="age" property="age">result>
- <result column="deptno" property="deptNo">result>
- <association property="dept" select="cn.kgc.mybatis.mapper.DeptMapper.selectById"
- column="deptno"
- fetchType="eager">
- association>
- resultMap>
-
- 注:延迟加载设置 :
- 1. <setting name="lazyLoadingEnabled" value="true"/>
- 2. <setting name="aggressiveLazyLoading" value="false"/> 3.4.1之前的版本需要设置
-
- <select id="selectByEId" resultMap="selectByEIdMap2">
- select * from emp left join dept on emp.deptno = dept.id where eid = #{eid}
- select>
-
- <select id="selectByEId2" resultMap="selectByEIdMap3">
- select * from emp where eid = #{eid}
- select>
一对多关系处理(多方)
- <resultMap id="BaseResultMap" type="cn.kgc.mybatis.entity.Dept">
- <id property="id" column="id" />
- <result property="dName" column="dname" />
- <collection property="emps" ofType="emp">
- <id column="eid" property="eId">id>
- <result column="ename" property="EName">result>
- <result column="age" property="age">result>
- <result column="deptno" property="deptNo">result>
- collection>
- resultMap>
-
-
- <resultMap id="BaseResultMap2" type="cn.kgc.mybatis.entity.Dept">
- <id property="id" column="id" />
- <result property="dName" column="dname" />
- <collection property="emps" select="cn.kgc.mybatis.mapper.EmpMapper.selectByDeptId" column="id">collection>
- resultMap>
-
- <select id="selectById" resultType="dept">
- select * from dept where id = #{id}
- select>
-
- <select id="selectById2" resultMap="BaseResultMap">
- select emp.* ,dept.* from dept left join emp on dept.id = emp.deptno where id = #{id}
- select>
-
- <select id="selectById3" resultMap="BaseResultMap2">
- select dept.* from dept where id = #{id}
- select>