当前位置:   article > 正文

xml开发mybatis

xml开发mybatis

1、XML映射文件定义规范:

        XML文件的名称与Mapper接口名一致,并且放置在相同包下(同包同名)。

        XML文件的namespace属性为Mapper接口全限定名一致。

        XML文件中sql语句的id与Mapper接口中的方法名一致。

动态sql:

       <if>:用于判断调价是否成立。使用test属性进行条件判断,如果条件为true,则拼接SQL。

        <where>:where元素只会在子元素有内容的情况下才插入where子句。而且会自动去除子句的开头的AND或OR。

        <set>:动态的在行首插入set关键字,并会删掉额外的逗号。(用在update语句中)

        <foreach>:属性:collection:遍历的集合。

                                        item:遍历出来的元素。

                                        sparator:分隔符。

                                        open:遍历开始前拼接的sql片段。

                                        close:遍历结束后拼接的sql片段。

sql片段:

        <sql>:定义可重用的sql片段。

        <include>:通过属性refid ,指定包含的sql片段。

mybatis-config.xml文件配置

  1. <configuration>
  2. <settings>
  3. <!-- 输出mybatis的日志-->
  4. <setting name="logImpl" value="STDOUT_LOGGING"/>
  5. <!-- 开启数据库下划线与java驼峰的自动映射-->
  6. <setting name="mapUnderscoreToCamelCase" value="true"></setting>
  7. </settings>
  8. <typeAliases>
  9. <!-- 配置别名-->
  10. <typeAlias type="com.example.demo.pojo.Emp" alias="Emp"/>
  11. <package name="com.example.demo.pojo"/>
  12. </typeAliases>
  13. </configuration>

xml映射文件:

  1. <mapper namespace="com.example.demo.mapper.EmpMapper">
  2. <!-- 列名和属性名的映射-->
  3. <resultMap id="EmpResultMap" type="Emp">
  4. <id property="id" column="id" />
  5. <result property="username" column="username"/>
  6. <result property="password" column="password"/>
  7. <result property="name" column="name"/>
  8. <result property="image" column="image"/>
  9. <result property="job" column="job"/>
  10. <result property="entrydate" column="entrydate"/>
  11. <result property="deptId" column="dept_id"/>
  12. <result property="createTime" column="create_time"/>
  13. <result property="updateTime" column="update_time"/>
  14. </resultMap>
  15. <sql id="insert">
  16. insert into emp(username,name,gender,image,job,entrydate,dept_id,create_time,update_time) values
  17. </sql>
  18. <update id="update" parameterType="Emp">
  19. update emp
  20. <set>
  21. <if test="username !=null">
  22. username=#{username},
  23. </if>
  24. <if test="name!=null">
  25. name=#{name},
  26. </if>
  27. <if test="image!=null">
  28. image=#{image},
  29. </if>
  30. <if test="gender!=null">
  31. gender=#{gender}
  32. </if>
  33. </set>
  34. where id=#{id}
  35. </update>
  36. <select id="selectAll" resultMap="EmpResultMap">
  37. select * from emp
  38. </select>
  39. <!-- 查找-->
  40. <select id="selectByCondition" resultMap="EmpResultMap">
  41. select username,name,gender,image,job from emp
  42. <where>
  43. <if test="name!=null">
  44. name like concat('%',#{name},'%')
  45. </if>
  46. <if test="gender!=null">
  47. and gender=#{gender}
  48. </if>
  49. <if test="startTime!=null and endTime!=null">
  50. and entrydate between #{startTime} and #{endTime}
  51. </if>
  52. </where>
  53. order by entrydate desc
  54. </select>
  55. <!-- 批量删除-->
  56. <delete id="deleteById">
  57. delete from emp where id in
  58. <foreach collection="list" item="id" separator="," open="(" close=")">
  59. #{id}
  60. </foreach>
  61. </delete>
  62. <!-- 批量插入-->
  63. <insert id="insertValues" parameterType="list">
  64. <include refid="insert"></include>
  65. <foreach item="emp" collection="list" separator=",">
  66. (#{emp.username},#{emp.name},#{emp.gender},#{emp.image},#{emp.job}
  67. ,#{emp.entrydate},#{emp.deptId},now(),now())
  68. </foreach>
  69. </insert>
  70. </mapper>
  1. @Data
  2. @AllArgsConstructor
  3. @NoArgsConstructor
  4. public class Emp {
  5. private Integer id;
  6. private String username;
  7. private String password;
  8. private String name;
  9. private Short gender;
  10. private String image;
  11. private Short job;
  12. private LocalDate entrydate;
  13. private Integer deptId;
  14. private LocalDateTime createTime;
  15. private LocalDateTime updateTime;
  16. }

mapper接口文件:

  1. @Mapper
  2. public interface EmpMapper {
  3. public int update(Emp emp);
  4. public List<Emp> selectAll();
  5. public List<Emp> selectByCondition(String name, Short gender, Date startTime,Date endTime);
  6. public void deleteById(List<Integer> ids);
  7. public void insertValues(List<Emp> emps);
  8. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/486525
推荐阅读
相关标签
  

闽ICP备14008679号