1.Mapper接口创建
创建Mapper包,所有的Mapper接口放在该包下。Mapper接口中声明将要实现的方法,在接下来的Mapper.xml文件中实现对应方法。
2.Mapper.xml创建
(1)在resources下创建与Mapper接口路径相同的包。如Mapper接口路径为“com.example.demo.Mapper”,则xml文件包路径因与之相同“com.example.demo.Mapper”,位置相同mybatis才能识别。
(2)xml文件首先声明实现哪个接口,如下
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespqce:对应Mapper接口文件位置--> <mapper namespace="com.mybatis.Mapper.UserMapper"> </mapper>
(3)实现相应接口,进行sql操作。id:接口方法名;resultType:返回类型,可不写;useGeneratedKeys:true或false,是否返回主键;keyProperty:返回主键对应表列名,如id。
<!--1.属性名和实体字段不同时可以用过取别名的方式手动映射--> <!--2.sql片段--> <!-- <sql id="selectall"> id as use_id ...... </sql> --> <!--3.resultmap映射 column:表字段名 property:实体属性名 <resultMap id="userResultMap" type="user"> <result column="id" property="user_id"></result> </resultMap> --> <!-- #:替换为?进行匹配,防止sql注入 $:拼接sql,存在sql注入 表名列名动态设定只能使用$ --> <!-- 1.转义字符 <: < 2.CDATA区 <![CDATA[ ]]> --> <!--<select id="selectall" resultType="User">--> <!--select * from user--> <!--</select>--> <select id="selectById" resultType="User" parameterType="int"> select * from user where id <![CDATA[ < ]]> #{id} </select> <!--多条件查询--> <!--<select id="selectByCondition" resultType="User">--> <!--select * from user--> <!--where name like #{name}--> <!--or number like #{number}--> <!--</select>--> <!--动态条件查询--> <select id="selectByCondition" resultType="User"> select * from user <where> <if test="name != null and name != ''"> name like #{name} </if> <if test="number != null and number != ''"> and number like #{number} </if> </where> </select> <select id="selectByConditionByObject" resultType="User"> select * from user <where> <choose> <when test="name !=null and name != ''"> name = #{name} </when> <when test="number !=null and number != ''"> number = #{number} </when> </choose> </where> </select> <!--useGeneratedKeys="true" keyProperty="id":主键返回--> <insert id="add" parameterType="User" useGeneratedKeys="true" keyProperty="id"> insert into user(id,name,password,number) values (#{id},#{name},#{password},#{number}) </insert> <!--update可以使用<set></set>标签与where标签类似--> <delete id="deleteById"> delete from user where id = #{id} </delete> <!--批量删除 mybatis会将传入的数组封装为Map集合 默认key的名称为array,使用@param可以改变默认名称 separator:分隔符 open:添加前缀 close:添加后缀 --> <delete id="deleteByIds"> delete from user where id in <foreach collection="ids" item="id" separator="," open="(" close=")"> #{id} </foreach> </delete>
浙公网安备 33010602011771号