美文网首页
【mybatis】

【mybatis】

作者: giraffecode9668 | 来源:发表于2020-03-21 11:53 被阅读0次

Spring MyBatis配置扫描

Mybatis 全局配置文件中typeAliases(别名)

mybatis:
    # 搜索指定包别名
    typeAliasesPackage: com.ruoyi.project.**.domain
    # 配置mapper的扫描,找到所有的mapper.xml映射文件
    mapperLocations: classpath*:mybatis/**/*Mapper.xml
    # 加载全局的配置文件
    configLocation: classpath:mybatis/mybatis-config.xml

结果映射

MyBatis中resultType和resultMap的区别

xml写sql语句,含有<select><update><insert><delete>几种标签,常使用resultTyperesultMap表示映射从数据库对象到POJO

resultType:严格按照名称相同进行映射
resultMap:可以设置coloum和property进行映射

参数

mybatis中_parameter使用和常用sql

mybatis参数传递规则是Map

  • 参数可以使用#{},${},建议使用#{}占位符,可以防止sql注入攻击,${}为原封替换值进去
  • 使用paramType可以对参数属性进行说明,该说明可选
  • 如果是多参数,可以使用#{0....n}进行代表下标为n的参数,也可以在mapper中使用@Param(value)进行别名设置,或者包装成Map使用#{key}取key值进行
  • 单参数,<if>取_parameter拿参数,#{value}value随便写
  • 多参数,_parameter.get(0)#{0.key}

遍历foreach

mybatis 中 foreach collection的三种用法

使用foreach可以遍历参数,如果是Listcolleactionlist,如果是Arraycolleactionarray,如果是Mapcolleaction为对应的key

一对一(一对多)映射

支持联表设置包装Object或者List,在resultMap中设置对应属性associationcollection

构造器映射

使用构造器映射,POJO使用构造方法,不提供set方法注入,更安全

<constructor>
   <idArg column="id" javaType="int"/>
   <arg column="username" javaType="String"/>
</constructor>

public class User {
       //...
       public User(int id, String username) {
         //...
      }
    //...
}

鉴别器

MyBatis之级联——鉴别器
鉴别器使用于相关表分成多张表,比如按性别分,分成多张表

  <discriminator javaType="int" column="vehicle_type">
    <case value="1" resultMap="carResult"/>
    <case value="2" resultMap="truckResult"/>
    <case value="3" resultMap="vanResult"/>
    <case value="4" resultMap="suvResult"/>
  </discriminator>

使用columnPrefix

在colleaction中使用columnPrefix,记得在select中加上as别名设置

动态Sql

mybatis trim标签的使用
Mybatis choose (when, otherwise)标签

  • if :判断条件
  • choose (when, otherwise):choose相当于java的Switch,when相当于case有break的那种,otherwise相当于default
  • trim (where, set):where和set都可以通过trim修改得到同效果,用于规范“and” ,“or”,“,”在sql中的应用
  • foreach:遍历,常用于in

相关文章

网友评论

      本文标题:【mybatis】

      本文链接:https://www.haomeiwen.com/subject/tcyaehtx.html