Mybatis再学习

我怕爱的太早我们不能终老 提交于 2019-11-27 12:14:26

1.Mybatis全局配置文件

文件结构如下:

  configuration配置

    properties属性

    setting设置

    typeAliases类型命名

    typeHandler类型处理器:Mybatis在预处理语句中设置一个参数,还是从结果取值,都会用类型处理器将获取的值以合适方式转换成java

    objectFactory 对象工厂

    plugins插件

    environments环境:配置多种环境

    environment环境变量:指定具体环境

    id:指定当前环境的唯一标识

    transactionManager

      type: JDBC|MANAGED|自定义

          JDBC:使用了JDBC的提交和回滚设置,依赖于从数据源得到的连接来管理事务范围

          MANAGED:不提交或回滚一个连接,让容器来管理事务的整个生命周期

          自定义:实现transactionFactory接口,type=全类名/别名

      datasource:

          UNPOOLED:不使用连接池

          POOLED:使用连接池

          JNDI:在EJB或应用服务器这类容器中查找指定的数据源

          自定义:实现DataSourceFactory接口,定义数据源的获取方式

 

    transactionManager事务管理器

    databaseidProvider数据库厂商标识

  mappers映射器

1.用来在mybatis初始化的时候,告诉mybatis需要引入哪些Mapper映射文件

2.mapper逐个注册SQL映射文件

    resource:引入类路径下的文件

    url:应如网络路径或是磁盘路径下的文件

    class:引入mapper接口

    有SQL映射文件,要求Mapper接口与SQL映射文件同名同位置

    没有SQL映射文件,使用注解在接口的方法上写SQL语句

 

 

 

参数传递

  参数传递方式:

    1.单个参数,可以接受基本类型,对象类型

    2.多个参数,会被重新包装成一个Map传入,Map的key就是param1,param2或0,1,值就是参数的值

    3.命名参数,为参数使用@Param起一个名字,Mybatis就会将这些参数封装进map,key就是我们自己指定的名字

    4.POJO,当这些参数属于我们业务pojo时,我们直接传递pojo

    5.Map 封装参数为map,直接传递

    6.Collection/Array,会封装成一个map传入,Collection对应的key是collection,Array对应的key是array,若为LIst集合,key还可以是list

  参数的获取方式:

  1.#{key}:获取参数的值,预编译到SQL中,安全

  2.${ksy}:获取参数的值,拼接到SQL中,有SQL注入问题

  select查询的几种情况

  resultType 自动映射 :autoMappingBehavior默认是PARTIAL,开启自动映射的功能,唯一要求是列名和javaBean属性名一致

  resultMap 自定义映射:

    id:用于完成主键值的映射

    result:用于完成普通列的映射

    association:一个复杂的类型管理,许多结果将包成这种类型

    collection:复杂类型的集

      1.id&result

        property:映射到列结果的字段或属性

        column:数据表列名

      2.association

        属性可能是一个对象,我们可以使用联合查询,并以级联属性的方式封装对象,使用association标签定义对象的封装规则

        association分步查询

        association分步查询延迟加载

        

      3.collection

        collection分步查询

        collection分步查询延迟加载

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!