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">
<mapper namespace="us.transcode.thymeleaf.dao.EmployeeDao">
  <!--插入一条记录-->
  <insert id="insertOne" parameterType="Employee" keyProperty="id" useGeneratedKeys="true">
    INSERT INTO thymeleaf.employee
    <trim prefix="(" 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>
    </trim>
    VALUES
    <trim prefix="(" 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>
    </trim>
  </insert>

  <!--通过Id查询-->
  <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>

  <!--通过set动态更新-->
  <update id="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}
  </update>

  <!--通过Id删除-->
  <delete id="deleteOneById" parameterType="Integer">
    DELETE FROM thymeleaf.employee WHERE id = #{id}
  </delete>
</mapper>
复制代码

 

posted @   ascertain  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示