0x00:文件介绍
在MyBatis中,Mapper映射文件就是sql语句的配置文件,其会在运行时加载sql语句并映射相应参数。在映射文件中,根据不同的sql语句性质,要使用不同的标签来包裹,其中涉及到的标签如下表:
0x01:增删改查示例
insert配置示例:
<insert id="insertUser" parameterType="cn.com.mybatis.pojo.User">
insert into user(username,password,gender,birthday,email,province,city)
value(#{username},#{password},#{gender},#{birthday,jdbcType=DATE},#{email},#{province},#{city})
</insert>
update配置示例:
<update id="updateUserName" parameterType="cn.com.mybatis.pojo.User">
update user set username=#{username} where id=#{id}
</update>
delete配置示例:
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from user where id=#{id}
</delete>
select配置示例:
<select id="findUserById" parameterType="int" resultType="cn.com.mybatis.pojo.User">
select * from user where id=#{id}
</select>
其中,paramterType为输入参数类型,resultType为输出参数类型,#{}为占位符,类似于sql语句中的?,起到预编译的作用。
0x02:属性拓展
在insert、update、delete、select配置标签中,可以配置很多属性,具体如下:
<select
id="selectPerson"
parameterType="int"
resultType="hashmap"
resultMap="personResultMap"
flushCache="false"
useCache="true"
timeout="10000"
fetchSize="256"
statementType="PREPARED"
resultSetType="FORWARD_ONLY">
<insert
id="insertAuthor"
parameterType="domain.blog.Author"
flushCache="true"
statementType="PREPARED"
keyProperty=""
keyColumn=""
useGeneratedKeys=""
timeout="20">
<update
id="updateAuthor"
parameterType="domain.blog.Author"
flushCache="true"
statementType="PREPARED"
timeout="20">
<delete
id="deleteAuthor"
parameterType="domain.blog.Author"
flushCache="true"
statementType="PREPARED"
timeout="20">
这些属性的含义如下表:
0x03:总结
MyBatis程序通过sql与数据库打交道,其sql语句是写在映射配置文件中的。通过insert、update、delete、select标签来配置增删改查语句,其属性含义参见上表。