• 【mybatis】03-Mapper文件配置


     
    一、select 
    <select id="selectPerson" parameterType="int" resultType="hashmap">
      SELECT * FROM PERSON WHERE ID = #{id}
    </select>

    说明: #{id}告诉mybatis创建PreparedStatement参数     vs     ORDER BY   ${columnName}: 不转义

    select支持的参数说明,具体参考 https://mybatis.org/mybatis-3/zh/sqlmap-xml.html

       

    二、insert, update 和 delete
     
    支持主键自动生成的配置
    <insert id="insertAuthor" useGeneratedKeys="true" keyProperty="id">
      insert into Author (username,password,email,bio)
      values (#{username},#{password},#{email},#{bio})
    </insert>
     
    <update
      id="updateAuthor"
      parameterType="domain.blog.Author"
      flushCache="true"
      statementType="PREPARED"
      timeout="20">
    
    <delete
      id="deleteAuthor"
      parameterType="domain.blog.Author"
      flushCache="true"
      statementType="PREPARED"
      timeout="20">

    执行效果:

    <mapper namespace="com.test.mapper.UserMapper">
    
        <insert id="save" useGeneratedKeys="true" keyProperty="user_id">
            insert into t_user (user_name, password, user_type, locked, credit, last_visit, last_ip)
            values ( #{user_name}, #{password}, #{user_type}, #{locked}, #{credit}, #{last_visit}, #{last_ip})
        </insert>
    </mapper>

    测试代码

    User user = User.builder().user_name("aaa").password("123456").user_type(1).credit(100).last_ip("11.11.11.11").build();
    userMapper.save(user);

      


    三、sql
      定义可重用的 SQL 代码片段,以便在其它语句中使用
     

    四、ResultMap
    1)基本使用: 
    <!-- mybatis-config.xml 中,别名 -->
    <typeAlias type="com.someapp.model.User" alias="User"/>
    
    <!-- 解决列名不匹配 -->
    <resultMap id="userResultMap" type="User">
      <id property="id" column="user_id" />
      <result property="username" column="user_name"/>
      <result property="password" column="hashed_password"/>
    </resultMap>
    
    <select id="selectUsers" resultMap="userResultMap">
      select user_id, user_name, hashed_password
      from some_table
      where id = #{id}
    </select>
  • 相关阅读:
    分层应用——怎样实现登录?
    浅谈UML的概念和模型之UML九种图
    C++ 顶层 const
    Cooley-Tukey算法 (蝶形算法)
    Android 4.4 Kitkat 使能 USB adb 功能
    Linux多线程编程小结
    排序算法汇总总结
    nodeJs基础
    MyBatis入门学习(一)
    IOC/DI的基本思想
  • 原文地址:https://www.cnblogs.com/clarino/p/14787100.html
Copyright © 2020-2023  润新知