mybatis mapper.xml

  1 <?xml version="1.0" encoding="UTF-8" ?>
  2 <!DOCTYPE mapper
  3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5 
  6 
  7 <!-- 1. namespace必需是接口的全路径名 -->
  8 <!-- 2. 接口的方法名必需与映射文件的sql id一致 -->
  9 <!-- 3. 接口的输入参数必需与映射文件的parameterType类型一致 -->
 10 <!-- 4. 接口的返回类型必须与映射文件的resultType类型一致 -->
 11 
 12 
 13 <!-- 1. 创建UserMapper.xml映射文件(把原来的user.xml复制按开发规则要求修改一下) -->
 14 <!-- 2. 创建UserMapper接口(把原来的UserDao.java复制按开发规则要求修改一下) -->
 15 <!-- 3. 加载UserMapper.xml -->
 16 
 17 
 18 <mapper namespace="mybatis.studentMapper">
 19     <select id="getUserById" parameterType="int"
 20         resultType="cn.edu.ahtcm.student">
 21         SELECT * FROM STUDENT WHERE SID = #{id1}
 22 
 23     </select>
 24 
 25     <!-- 程序没有报错,但是后台数据库的记录也没有加进去 -->
 26     <!-- 没有加进去的原因是没有提交事务 -->
 27     <!-- 返回值被放在传入参数的属性里,而不是返回值,返回值返回的是影响的行数 -->
 28     <insert id="insertStudent" parameterType="cn.edu.ahtcm.student"
 29         useGeneratedKeys="false" keyProperty="id">
 30 
 31         <selectKey keyProperty="sid" resultType="String"
 32             order="AFTER">
 33             <!-- SELECT LAST_INSERT_ID() -->
 34             <!-- SELECT UUID() -->
 35         </selectKey>
 36         INSERT INTO `S`(SNAME,GENDER,CLASS_ID)
 37         VALUES(#{sname},#{gender},#{class_id})
 38     </insert>
 39 
 40     <!-- 修改 -->
 41     <update id="updateBySID" parameterType="cn.edu.ahtcm.student">
 42 
 43         UPDATE STUDENT SET
 44         SNAME=#{sname} WHERE SID=#{sid}
 45     </update>
 46 
 47     <!-- 删除 -->
 48 
 49     <delete id="deleteBySID" parameterType="cn.edu.ahtcm.student">
 50         DELETE FROM STUDENT WHERE
 51         SID =#{sid}
 52     </delete>
 53     <!-- 查询结果为列表,返回类型定位单个元素类型即可 -->
 54     <select id="getAllStudent" parameterType="cn.edu.ahtcm.student"
 55         resultType="cn.edu.ahtcm.student">
 56         SELECT * FROM STUDENT
 57         <include refid="sql"></include>
 58 
 59     </select>
 60 
 61 
 62     <!-- 定义sql片段,可以通过include的id使用SQL片段 -->
 63     <sql id="sql">
 64         WHERE SID BETWEEN 0 AND 10
 65     </sql>
 66 
 67 
 68     <!-- foreach可以读取数组或列表自动生成 in ()的sql语法 -->
 69     <select id="getUserBySIds" parameterType="queryvo"
 70         resultType="cn.edu.ahtcm.student">
 71 
 72         SELECT
 73         *
 74         FROM USER
 75         <!-- where会自动加上where同处理多余的and -->
 76         <where>
 77             <!-- id IN(1,10,25,30,34) -->
 78             <!-- foreach循环标签 collection:要遍历的集合,来源入参 open:循环开始前的sql separator:分隔符 close:循环结束拼接的sql -->
 79             <foreach item="uid" collection="ids" open="id IN("
 80                 separator="," close=")">
 81                 #{uid}
 82             </foreach>
 83         </where>
 84     </select>
 85 
 86 
 87     <!-- 一对一的关系映射 -->
 88     <!-- 1.resultType的返回映射,映射至设计好的类(在继承原来的类,并增加需要的属性),在SQL语句是是用联接 -->
 89     <!-- 2.使用resultMap在xml内设计映射规则(继承原来的类,添加关系映射的引用) -->
 90 
 91     <!-- resultMap -->
 92     <!-- type:映射成的pojo类型 -->
 93     <!-- id:resultMap唯一标识 -->
 94 
 95     <resultMap type="cn.edu.ahtcm.student" id="studentMap">
 96         <!-- id标签用于绑定主键 -->
 97         <!-- <id property="id" column="id"/> -->
 98 
 99         <!-- 使用result绑定普通字段 -->
100         <result property="userId" column="user_id" />
101         <result property="number" column="number" />
102         <result property="createtime" column="createtime" />
103         <result property="note" column="note" />
104 
105         <!-- association:配置一对一关联 -->
106         <!-- property:绑定的用户属性 -->
107         <!-- javaType:属性数据类型,支持别名 -->
108         <!-- 使用时需要在resultMap 的type指定的类中包含下列association中JavaType指定的类的引用 -->
109         <association property="user"
110             javaType="cn.edu.ahtcm.student">
111             <id property="id" column="user_id" />
112 
113             <result property="username" column="username" />
114             <result property="address" column="address" />
115             <result property="sex" column="sex" />
116         </association>
117 
118         <!-- collection:配置一对多关系 -->
119         <!-- property:列表的属性名 -->
120         <!-- ofType:property的数据类型,支持别名 -->
121         <!-- 使用时需要在resultMap 的type指定的类中包含下列collection中ofType指定的类的列表的引用 -->
122         <collection property="orders" ofType="order">
123             <!-- id标签用于绑定主键 -->
124             <id property="id" column="oid" />
125             <!-- 使用result绑定普通字段 -->
126             <result property="userId" column="id" />
127             <result property="number" column="number" />
128             <result property="createtime" column="createtime" />
129         </collection>
130 
131 
132     </resultMap>
133 
134     <!-- 使用resultMap -->
135     <select id="getOrderListResultMap" resultMap="orderMap">
136         SELECT * FROM
137         `student`
138     </select>
139 
140 
141 </mapper>

 

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 1. namespace必需是接口的全路径名 --><!-- 2. 接口的方法名必需与映射文件的sql id一致 --><!-- 3. 接口的输入参数必需与映射文件的parameterType类型一致 --><!-- 4. 接口的返回类型必须与映射文件的resultType类型一致 -->

<!-- 1. 创建UserMapper.xml映射文件(把原来的user.xml复制按开发规则要求修改一下) --><!-- 2. 创建UserMapper接口(把原来的UserDao.java复制按开发规则要求修改一下) --><!-- 3. 加载UserMapper.xml -->

<mapper namespace="mybatis.studentMapper"><select id="getUserById" parameterType="int"resultType="cn.edu.ahtcm.student">SELECT * FROM STUDENT WHERE SID = #{id1}
</select>
<!-- 程序没有报错,但是后台数据库的记录也没有加进去 --><!-- 没有加进去的原因是没有提交事务 --><!-- 返回值被放在传入参数的属性里,而不是返回值,返回值返回的是影响的行数 --><insert id="insertStudent" parameterType="cn.edu.ahtcm.student"useGeneratedKeys="false" keyProperty="id">
<selectKey keyProperty="sid" resultType="String"order="AFTER"><!-- SELECT LAST_INSERT_ID() --><!-- SELECT UUID() --></selectKey>INSERT INTO `S`(SNAME,GENDER,CLASS_ID)VALUES(#{sname},#{gender},#{class_id})</insert>
<!-- 修改 --><update id="updateBySID" parameterType="cn.edu.ahtcm.student">
UPDATE STUDENT SETSNAME=#{sname} WHERE SID=#{sid}</update>
<!-- 删除 -->
<delete id="deleteBySID" parameterType="cn.edu.ahtcm.student">DELETE FROM STUDENT WHERESID =#{sid}</delete><!-- 查询结果为列表,返回类型定位单个元素类型即可 --><select id="getAllStudent" parameterType="cn.edu.ahtcm.student"resultType="cn.edu.ahtcm.student">SELECT * FROM STUDENT<include refid="sql"></include>
</select>

<!-- 定义sql片段,可以通过include的id使用SQL片段 --><sql id="sql">WHERE SID BETWEEN 0 AND 10</sql>

<!-- foreach可以读取数组或列表自动生成 in ()的sql语法 --><select id="getUserBySIds" parameterType="queryvo"resultType="cn.edu.ahtcm.student">
SELECT*FROM USER<!-- where会自动加上where同处理多余的and --><where><!-- id IN(1,10,25,30,34) --><!-- foreach循环标签 collection:要遍历的集合,来源入参 open:循环开始前的sql separator:分隔符 close:循环结束拼接的sql --><foreach item="uid" collection="ids" open="id IN("separator="," close=")">#{uid}</foreach></where></select>

<!-- 一对一的关系映射 --><!-- 1.resultType的返回映射,映射至设计好的类(在继承原来的类,并增加需要的属性),在SQL语句是是用联接 --><!-- 2.使用resultMap在xml内设计映射规则(继承原来的类,添加关系映射的引用) -->
<!-- resultMap --><!-- type:映射成的pojo类型 --><!-- id:resultMap唯一标识 -->
<resultMap type="cn.edu.ahtcm.student" id="studentMap"><!-- id标签用于绑定主键 --><!-- <id property="id" column="id"/> -->
<!-- 使用result绑定普通字段 --><result property="userId" column="user_id" /><result property="number" column="number" /><result property="createtime" column="createtime" /><result property="note" column="note" />
<!-- association:配置一对一关联 --><!-- property:绑定的用户属性 --><!-- javaType:属性数据类型,支持别名 --><!-- 使用时需要在resultMap 的type指定的类中包含下列association中JavaType指定的类的引用 --><association property="user"javaType="cn.edu.ahtcm.student"><id property="id" column="user_id" />
<result property="username" column="username" /><result property="address" column="address" /><result property="sex" column="sex" /></association>
<!-- collection:配置一对多关系 --><!-- property:列表的属性名 --><!-- ofType:property的数据类型,支持别名 --><!-- 使用时需要在resultMap 的type指定的类中包含下列collection中ofType指定的类的列表的引用 --><collection property="orders" ofType="order"><!-- id标签用于绑定主键 --><id property="id" column="oid" /><!-- 使用result绑定普通字段 --><result property="userId" column="id" /><result property="number" column="number" /><result property="createtime" column="createtime" /></collection>

</resultMap>
<!-- 使用resultMap --><select id="getOrderListResultMap" resultMap="orderMap">SELECT * FROM`student`</select>

</mapper>

 

posted @ 2020-08-10 14:44  羽若星辰  阅读(267)  评论(0编辑  收藏  举报