【mybatis】

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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容