说明:主要介绍mybatis xml文件的一般属性。
<select id="findUserAll" parameterType="com.zpkj.space.model.query.UserQuery" resultType="com.zpkj.space.model.User"> select * from user_t t WHERE '1'='1' <if test="name != null and name != ''"> AND t.name LIKE CONCAT('%',#{name},'%') </if> <if test="adress != null and adress != ''"> AND t.adress = #{adress} </if> </select>属性介绍:
id:在命名空间的唯一标识,可以用来引用该语句。
parameterType:将会传入这条语句的参数类型(完全限定名或别名)。
parameterMap:一般是直接在mapper.xml文件中定义的映射
resultMap:外部resultMap的命名引用,结果集的映射是mybatis最大的特性。
resultType:返回期望类型类的完全限定名或别名。
个别sql介绍:
左外连接介绍示例:
<select id="findUser" parameterType="com.zpkj.space.model.query.UserQuery" resultType="com.zpkj.space.model.User"> SELECT a.* FROM user_t a LEFT JOIN test_t b ON b.user_id = a.id WHERE a.pid = '1' </select><foreach>标签的运用:
<!--list里面存储的全部是id 如果List里面是对象 ,对象.属性--> <select id="foreachTest" parameterType="java.util.List" resultType="com.zpkj.space.model.User"> select * from user_t where id in <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </select>
case then用法:
<select id="forCaseEnd" resultType="com.zpkj.space.model.User"> SELECT sum( CASE WHEN sex = '1' THEN 1 ELSE 0 END) as boys, sum( CASE WHEN sex = '2' THEN 1 ELSE 0 END) as grils FROM user_t a </select>
简单的增删改查:
<!-- 新增 User --> <insert id="addUser" parameterType="com.zpkj.space.model.from.UserFrom"> INSERT INTO user_t ( id, name, adress ) VALUES( #{id}, #{name}, #{adress} ) </insert> <!-- 修改 User --> <update id="updateUser" parameterType="com.zpkj.space.model.from.UserFrom"> UPDATE user_t <set> <if test="name != null and name != ''"> name = #{name}, </if> <if test="adress != null and adress != ''"> adress = #{adress}, </if> </set> WHERE id = #{id} </update> <!-- 删除一个 User --> <delete id="deleteUser" parameterType="string"> DELETE FROM user_t WHERE id = #{id} </delete>