映射文件


xml版本信息和mybatis对mapper的dtd约束

<!-- xml版本信息 -->
<?xml version="1.0" encoding="UTF-8"?>
<!-- mybatis对mapper的dtd约束条件 -->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

映射根元素mapper

属性namespace指向接口全限定名

mapper的xml映射文件


<!-- namespace属性必须是接口的全限定接口名 -->
<mapper namespace="cn.dy.mapper.UserMapper">
    <!-- id属性值必须和接口中的方法名相同 -->
    <!-- resultType属性值必须是pojo的全限定接口名 -->
    <!-- parameterType属性值必须是方法参数的全限定接口名 -->
    <!-- sql中的参数以 #{pojo中的属性名} 的形式传递-->
    <select id="findUserById" resultType="cn.dy.pojo.User" parameterType="java.lang.Integer">
        SELECT username,birthday,sex,address FROM user WHERE id = #{id}
    </select>

    <!-- 这里在添加后返回主键id -->
    <!-- keyColumn为数据库中的列名 -->
    <!-- keyProperty为pojo中的属性名 -->
    <!-- order 取值:AFTER,BEFORE;AFTER:添加后返回,BEFORE:添加前返回(有可能导致id错误) -->
    <insert id="addUser" parameterType="cn.dy.pojo.User">
        INSERT INTO user (username,birthday,sex,address) values (#{username},#{birthday},#{sex},#{address})
        <selectKey resultType="java.lang.Integer" keyColumn="id" keyProperty="id" order="AFTER">
            select last_insert_id()
        </selectKey>
    </insert>

</mapper>

基础

```
### 删
``` XML

```
### 查
``` XML

参数深入

使用组合代替继承的方式来解决多表的问题

返回值结果集的封装(用来解决数据库列名与pojo实体类属性不一致的情况)

方式一

sql语句中起别名

方式二

使用resultMap映射数据库中的列名

<mapper namespace="cn.dy.mapper.UserMapper">
  <!-- resultMap标签用来封装结果集,id的值为自己起的名字,type的值为要映射的实体类的全限定名 -->
  <resultMap id="userMap" type="cn.dy.pojo.User">
  <!-- property 为实体类中的属性名 -->
  <!-- column 为数据库中的列名 -->
      <!-- id 用来映射主键  -->
      <id property="" column="" ></id>
      <!-- result 用来映射其它数据 -->
      <result property="" column=""></result>
  </resultMap>
  <!-- resultMap的值为上方自己定义的名字    -->
  <select id="findAll" resultMap="userMap">
          SELECT id,username,birthday,sex,address FROM user
  </select>
</mapper>

文章作者: zrh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zrh !
  目录