• xml开发mybatis


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

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

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

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

    动态sql:

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

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

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

            :属性:collection:遍历的集合。

                                            item:遍历出来的元素。

                                            sparator:分隔符。

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

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

    sql片段:

            :定义可重用的sql片段。

            :通过属性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 selectAll();
    5. public List selectByCondition(String name, Short gender, Date startTime,Date endTime);
    6. public void deleteById(List ids);
    7. public void insertValues(List emps);
    8. }

  • 相关阅读:
    PTA 7-27 组合数的和
    Knockoutjs属性绑定(Bindings)之流程控制(Control flow)
    sql常用基础语句
    MySQL中如何处理并发写入问题?
    UVA1210 连续素数之和 Sum of Consecutive Prime Numbers
    Kafka开启SASL认证 【windowe详细版】
    家政服务预约小程序,推拿spa上门预约系统
    A1140 Look-and-say Sequence(20分)PAT 甲级(Advanced Level) Practice(C++)满分题解【字符串处理】
    人脸识别4G执法记录仪、一体化智能AI布控球在智慧社区、智能网格中的应用
    1688商品详情(商品主图、sku)
  • 原文地址:https://blog.csdn.net/weixin_62514331/article/details/137976312