MyBatis进阶(四)

mapper.xml文件的编写

mapper.xml映射文件实现数据库和实体类之间的映射关系,定义操作数据库的sql语句。

主体部分

  • 文件头部
    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
  • 命名空间
    需要指定该mapper文件对应的dao接口的位置,<mapper namespace="com.crab.repository.UserMapper"></mapper>
  • resultMap
    指定实体类和数据库表之间的对应关系,sql返回实体类时使用。
    <resultMap id="userMap" type="com.crab.domain.User"> <id property="id" column="id" /> <result property="name" column="name" /> </resultMap>
  • sql标签
    可以将常用的大量字段名写在sql标签中,然后使用include标签引入。
    <sql id = "user_sql"> id, name, age </sql>
    之后使用<include refid="user_sql">引入。
  • CRUD标签
    • <select><.select>
    • <insert></insert>
    • <update></update>
    • <delete></delete>

CRUD标签中的属性

parameterType

  • 传递基本类型,或者一个实体类,一个list、map、array
  • 使用@Param注解传递基本类型可以不加parameterType声明

resultMap和resultType

  • resultType
    • 返回普通的String、int等简单类型,使用resultType
    • 返回一个含所有参数的实体类或者实体类的list,使用resultType
    • 返回一个map或者map的list,使用resultType
  • resultMap
    • 返回一个实体类的部分参数,定义需要的resultMap映射关系,然后使用resultMap
    • 查询出来的列名和实体类属性名不同,可以建立列名和属性的resultMap映射,然后使用resultMap

参数传递

使用#{}或者${}

优先使用#{}获取参数,防止sql注入;
order by中可以使用${}

猜你喜欢

转载自www.cnblogs.com/pycrab/p/10637468.html