• mybatis配置涉及模块&配置文件说明


    1.      搭建框架:

    web.xml

    Springmvc

    spring-service

    spring-transaction

    spring-mapper

    SqlMapConfig.xml

     

     

     

     

     

     

     

     

     

     

     

     

    2.      生成Mapper接口和Mapper配置文件(接口和配置文件中的方法名要一一对应),以及POJO

    3.      mybatis配置文件说明:

    a.      用#表示占位符,如where stuID = #{stuid}

    b.      拼接符$,如where username like ‘%${value}$%’ 定义输入到sql中的映射类型,${value}表示使用参数将${value}替换,做字符串的拼接。注意:如果是取简单数量类型的参数,括号中的值必须为value,POJO类型时参数可以是属性名。

    #{} 和 ${} 区别:

    #{}表示一个占位符,通过#{}可以实现preparedStatement(预处理语句)向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。#{}可以接收简单类型值或POJO属性值。如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。

    ${}表示拼接sql串,通过${}可以将parameterType传入的内容拼接在sql中且不进行jdbc类型转换,${}可以接收简单类型值或POJO属性值。如果parameterType传输单个简单类型值,${}括号中只能是value。

    c.      自增主键插入数据库后,返回自增的id值,

    如果值自增的整数类型,是在插入之后才有值,所以主键值的获取阶段是after,order = “AFTER”,插入成功后MyBatis会把自增的id值赋值给POJO。

    第二种主键形式,UUID形式,这种形式的主键是需要在插入之前为POJO对象赋主键值,如果不想自己通过java代码来手动赋值,那么可以让MyBatis自动为POJO的主键属性赋值,这时就得在插入之前执行,Mybatis会自把生成的UUID值赋值给POJO。

    4.      一对一映射:由于MyBatis是半自动化的映射,所以不会自动加载对应关联属性,需要自己进行查询结果映射。(在POJO中添加关联属性的get,set方法)

    在mapper.xml中配置返回属性映射,因为这种非字段属性MyBatis不会自动组装,一对一用association节点进行包裹关联属性,关联属性和查询的结果字段中,如果和主表栏目字段名冲突了得起别名,如左连接结果id改为uid别名进行关联。

    5.      一对多映射:

    POJO中添加集合属性;

    mapper中配置属性映射,集合属性包裹在collection节点中

    6.      批量查询:

    sql中的 in(1,2,3,4) 在MyBatis中也可以通过内置的循环标签属性foreach进行,如查询ids,这时用 in 就比较快一些,foreach 标签支持传入 list 和 map 进行遍历,但是map用的不多,因为多个属性时一般传入POJO,但是 list 用的地方还挺多,其可以遍历POJO下的list类型属性,也支持直接传入 list 集合进行遍历(直接传入 list 集合)。

    批量操作如果传入的是POJO,那么collection 指定为 POJO 属性名。

     

    参考:https://www.cnblogs.com/javabg/p/7472287.html

  • 相关阅读:
    手指抽搐强迫症 之 APM病理分析器 v0.0.0.3 (11月24日更新)
    [转帖]修改MySql密码及访问限制设置详解
    C#学习笔记
    CodeSmith快速向导
    奇葩的maxscript
    MASM中可以定义的变量类型
    js琐记
    史上最全的css hack(ie69,firefox,chrome,opera,safari)
    逆向win32程序的思路琐记
    makefile伪目标
  • 原文地址:https://www.cnblogs.com/arrows/p/10334593.html
Copyright © 2020-2023  润新知