• 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>

  • 相关阅读:
    C# 实现从程序集中抽取内嵌资源文件
    git clone 显著提速,解决Github代码拉取速度缓慢问题
    C# 将List数据 导出到csv 文件
    Nginx的location匹配规则-根据url 路径重定向到不同的IP
    WinForm最小化到托盘以及托盘右键菜单
    安卓手机浏览器调试-Debug模式
    C#-Forms.Timer、Timers.Timer、Threading.Timer的比较和使用
    批处理实现批量创建快捷方式
    设计模式(六)装饰模式(转)
    设计模式(五)桥接模式(转)
  • 原文地址:https://www.cnblogs.com/yrxc/p/13469694.html
Copyright © 2020-2023  润新知