Mybatis

作者: 潇湘雨smile | 来源:发表于2017-10-02 23:56 被阅读0次

    Mybatis
    1.导包:一个主包,和其他的依赖包
    2.编写配置文件:主配置文件和映射文件,在将映射文件加入到主配置文件
    [图片上传中。。。(1)]

    [图片上传中。。。(2)]

    [图片上传中。。。(3)]

    基本的CRUD
    [图片上传中。。。(4)]

    [图片上传中。。。(5)]

    采用注解的方式:
    [图片上传中。。。(6)]

    [图片上传中。。。(7)]

    老方式:
    [图片上传中。。。(8)]

    几个特殊类的生命周期
    SqlSessionFactoryBuilder:创建好SqlSessionFactory之后,它的使命就完成了
    SqlSessionFactory:单例
    SqlSession:通过finally来关闭session

    一般将获得sqlsession的方式生成一个单例的工具类
    [图片上传中。。。(9)]
    或者直接用一类的方法来读取配置文件
    读取配置文件的配置<properties resource="jdbc.properties"/>
    [图片上传中。。。(10)]

    设置别名:
    [图片上传中。。。(11)]

    [图片上传中。。。(12)]

    [图片上传中。。。(13)]

    处理表字段和对象属性不一致时,和模糊查询的方法:
    [图片上传中。。。(14)]

    传递多个参数:
    1.使用map传参数,在通过方法参数直接将赋值之后的map传进来,然后在sql语句中直接去map中的key
    即可取出(测试程序,创建map,然后查询)
    [图片上传中。。。(15)]
    2.采用注解的方式传参数
    [图片上传中。。。(16)]
    采用param的注解取传来的值
    [图片上传中。。。(17)]
    3.采用采用javabean的方式
    [图片上传中。。。(18)]

    sql片段:就是把相同的一段sql语句抽取出来

    [图片上传中。。。(19)]

    [图片上传中。。。(20)]

    动态表格技术

    [图片上传中。。。(21)]

    [图片上传中。。。(22)]

    就是在Var对象里面设置一个String的属性,再把表字段set进去,需要的时候在取出来
    insert:主键回填,插入值后再获取其主键
    delete,update都一样

    就是在添加完user之后可以用get方法获取主键值
    [图片上传中。。。(23)]

    [图片上传中。。。(24)]

    动态sql:
    解决大量拼装SQL的工作
    if:需求:我们现在做用户查询,有可能带用户名,有可能不带查询的时候,给了不给username的值

    就是说如果要进行查询,那么先会判断你传过来的这个对象里面有没有这个属性赋值,如果判断不为空
    那就就是说属性里面有值,那么sql语句就会将条件判断的sql语句拼接在上面进行查询,反之不进行拼接,当然如果有多个参数,再在下面写if即可
    [图片上传中。。。(25)]

    where:替代我们sql语句的where 1=1
    [图片上传中。。。(26)]
    trim:替换的作用(替换sql语句)
    把sql语句中的and覆盖掉,换成where
    [图片上传中。。。(27)]
    choose、when、otherwise多条件查询,多条件查询的时候只要满足一个条件就不再向下执行了
    还是取决于里面有没有赋值
    [图片上传中。。。(28)]
    set 假如一个表有多个字段,但我只需要更新需要更新的字段
    方法的参数列表传递一个对象进来,需要哪个字段的更新就更新哪个
    [图片上传中。。。(29)]

    foreach主要是做批量删除或者修改

    形参列表传参数时传一个数组
    [图片上传中。。。(30)]
    采用集合的方式
    [图片上传中。。。(31)]
    采用map的方式
    value可以是数组和集合等
    [图片上传中。。。(32)]

    [图片上传中。。。(33)]

    resultMap结果集映射
    比如上面,我们遇到的数据表字段和类属性不一致的情况,这个时候,我们可以用resultMap来做对应的映射关系(只能在select里面使用resultMap)
    [图片上传中。。。(34)]
    在使用的时候用parameterType调用上面的结果集,因为结果集里面有返回值类型,所以在select里面不用在写返回值类型
    [图片上传中。。。(35)]

    使用枚举把属性字段变成数字存储起来,例如在程序中sex为静态常量,在数据库中为数字,取出来又是常量
    创建枚举类
    [图片上传中。。。(36)]
    填充数据
    [图片上传中。。。(37)]
    存入数据库时字段后面加上这个
    [图片上传中。。。(38)]
    取字段时也是这样,在结果集里面配置一下,取出来就是静态常量
    [图片上传中。。。(39)]

    级联:

    一对一的配置方式(是在user里面持有card的对象,card持有一个外键)

    [图片上传中。。。(40)]

    配置完了还得调用
    [图片上传中。。。(41)]
    采用这种继承的方式来进行配置:
    [图片上传中。。。(42)]
    [图片上传中。。。(43)]

    一对多的配置:
    [图片上传中。。。(44)]
    [图片上传中。。。(45)]

    相关文章

      网友评论

          本文标题:Mybatis

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