-
文件内容结构
-
<?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"> <mapper namespace="cn.test.mapper.UserMapper"> <insert id="add" parameterType="User"> insert into stu (name,clsid) value (#{name},#{clsid}) </insert> <update id="update" parameterType="User"> update stu set name=#{name} ,clsid=#{clsid} where id = #{id} </update> <delete id="delete" parameterType="int"> delete from stu where id = #{id} </delete> <select id="select" parameterType="int" resultType="User"> select * from stu where id = #{id} </select> </mapper>
-
- Mapper元素只有一个属性namespace,它有两个作用:
一 是用于区分不同的mapper
(在不同的mapper文件里,子元素的id可以相同,mybatis通过namespace和子元素的id联合区分),
二是与接口关联
(应用程序通过接口访问mybatis时,mybatis通过接口的完整名称查找对应的mapper配置,因此namespace的命名务必小心一定要某接口同名)
sql – 可以重用的 SQL 块,也可以被其他语句引用。
insert – 映射插入语句
update – 映射更新语句
delete – 映射删除语句
select – 映射查询语句sql这个元素可以被用来定义可重用的 SQL 代码段,可以包含在其他语句中。比如
Select<sql id="userColumns"> id,username,password </sql>
<select id="selectUsers" resultType="map"> select <include refid="userColumns"/> from some_table where id = #{id} </select>
Parameters
<insert id="insertUser" parameterType="User"> insert into users (id, username, password) values (#{id}, #{username}, #{password}) </insert>
Result Maps
<select id="selectUsers" resultMap="userResultMap"><resultMap id="userResultMap" type="User"> <id property="id" column="user_id" /> <result property="username" column="username"/> <result property="password" column="password"/> </resultMap>
select user_id, user_name, hashed_password
from some_table
where id = #{id}
</select>-
文件内容结构
ResultMap高级结果映射
<!-- 当数据库中的字段信息和对象的二属性不一致时需要通过resultMap来映射 -->
<resultMap type="Address" id="addressMap" atuoMapping="true">
<id column="a_id" property="id"/>
<result column="post_code" property="postcode"/>
<!-- 使用关联 -->
<association property="user" javaType="User">
<id column="user_id" property="id" />
<result column="username" property="username" />
<result column="nickname" property="nickname" />
</association>
</returnMap>
<select id="load" parameterType="int" resultMap="addressMap">
select * ,t1.id as 'a_id' from t_address t1 right join t_user t2 on(t1.user_id=t2.id) where t1.id = 1;
</select>