Spring: MyBatis


@Mapper,最终 Mybatis 会有一个拦截器,会自动的把 @Mapper 注解的接口生成动态代理类
当然,前提是,映射器(Mapper.xml)必须满足动态代理的条件:
1.namespace与接口的全限定类名相同
2.id名与接口中方法名一致

<?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">
namespace="us.transcode.thymeleaf.dao.EmployeeDao">
  
  "insertOne" parameterType="Employee" keyProperty="id" useGeneratedKeys="true">
    INSERT INTO thymeleaf.employee
    "(" suffix=")" suffixOverrides=",">
      <if test="id!=null">
        id,
      if>
      <if test="username!=null and username!=''">
        username,
      if>
      <if test="birthday!=null">
        birthday,
      if>
      <if test="salary!=null">
        salary,
      if>
      <if test="photo!=null and photo!=''">
        photo,
      if>
    
    VALUES
    "(" suffix=")" suffixOverrides=",">
      <if test="id!=null">
        "${id}",
      if>
      <if test="username!=null and username!=''">
        #{username},
      if>
      <if test="birthday!=null">
        #{birthday},
      if>
      <if test="salary!=null">
        #{salary},
      if>
      <if test="photo!=null and photo!=''">
        #{photo},
      if>
    
  

  
  <select id="selectOneById" parameterType="Integer" resultType="Employee">
    SELECT id, username, birthday, salary, photo FROM thymeleaf.employee WHERE id = #{id}
  select>

  
  <select id="selectAll" resultType="Employee">
    SELECT id, username, birthday, salary, photo FROM thymeleaf.employee
  select>

  
  "updateById" parameterType="Employee">
    UPDATE thymeleaf.employee
    <set>
      <if test="username!=null and username!=''">
        username=#{username},
      if>
      <if test="birthday!=null">
        birthday=#{birthday},
      if>
      <if test="salary!=null">
        salary=#{salary},
      if>
      <if test="photo!=null and photo!=''">
        photo=#{photo},
      if>
    set>
    WHERE id=#{id}
  

  
  "deleteOneById" parameterType="Integer">
    DELETE FROM thymeleaf.employee WHERE id = #{id}