(1)MyBatis 简单介绍

(1)MyBatis 简单介绍_第1张图片
image.png
(1)MyBatis 简单介绍_第2张图片
image.png

(1)MyBatis 简单介绍_第3张图片
image.png

mybatis 快速入门

1.加入mybatis 的依赖
2.添加mybatis的配置文件
3.场景介绍
4.编写实体类,mapper 接口 以及mapperxml文件
5.编写实例代码

(1)MyBatis 简单介绍_第4张图片
image.png
作用
SqlSessionFactoryBuilder 读取配置信息创建SqlSessionFactory,建造者模式,方法级别生命周期。
SqlSessionFactory 创建Sqlsession ,工厂单列模式,存在程序的整个什么周期。
SqlSession 代表一次数据库连接,可以直接发送SQL执行,也可以通过调用mapper 访问数据库;线程不安全,要保证线程独享。方法级。
SQL Mapper 由一个Java 接口和XML 文件组成,包含要执行的SQL 语句,和结果集映射规则。方法级别生命周期;

mybatis 配置

属性名 说明 备注
properties 定义配置,配置的属性可以在整个配置文件中其它位置引用 重要,优先使用property配置文件解藕
settings 设置,用于指定MyBatis的一些全局配置属性,这些属性非常重要,它们会改变MyBatis的运行时行为。 重要
typeAliases 别名,为Java类型设置一个短的名字,映射时方便使用,分为系统定义别名和自定义别名。 可以通过xml和注解配置
typeHandlers 用于JDBCType与java之间转换。 无特殊需求不需要调整
ObjectFactory Mybatis每次创建结果对象的新实列时,它都会使用对象工厂(ObjectFactory)去构建POJO 大部分场景下无需修改
plugins 插件,myBatis 允许你在已映射的语句执行过程中的某一点进行拦截 后续
environments 用于配置多个数据源,每个数据源分为数据库源和事务的配置 在多数据源环境中使用
databaseldProvider MyBatis 可以根据不同的数据库厂商执行不同的语句,用于一个系统内多厂商数据源支持。 大部分场景下无需修改。
mappers 配置引入映射器的方法,可以使用相对类路径的资源引用,或完全限定资源定位符,或类名和包名等 后续

mybatis setting 配置

参数 描述 有效值 默认值
cacheEnabled 该配置影响的所有映射器中配置的缓存的全局开关 true/false true
lazyLoadingEnabled 延迟加载开关,当开启时,所有关联对象都会延迟加载,特定关联关系中可通过设置fetchType属性来覆盖项目的开关状态 true/false false
aggressiveLazyLoading 当启用时,对任意延迟属性的调用会使带有延迟加载属性的对象完整加载,反之,每种属性将会按需加载。 ture/false true
multipleResultSetsEnabled 是否允许单一语句返回多结果集合(需要兼容驱动) true/false true
useColumnLabel 使用列标签代替列名。不同的驱动在这方面会有不同的表现, 具体可参考相关驱动文档或通过测试这两种不同的模式来观察所用驱动的结果 true/false ture
useGeneratedKeys 允许 JDBC 支持自动生成主键,需要驱动兼容。 如果设置为 true 则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍可正常工作(比如 Derby)。 true/false false
autoMappingBehavior 指定 MyBatis 应如何自动映射列到字段或属性。 NONE 表示取消自动映射;PARTIAL 只会自动映射没有定义嵌套结果集映射的结果集。 FULL 会自动映射任意复杂的结果集(无论是否嵌套) NONE, PARTIAL, FULL PARTIAL
defaultExecutorType 配置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会重用预处理语句(prepared statements); BATCH 执行器将重用语句并执行批量更新。 SIMPLE、REUSE、BATCH SIMPLE
defaultStatementTimeout 设置超时时间,它决定驱动等待数据库响应的秒数 任何正整数 null
mapUnderscoreToCamelCase 是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。 true / false false
localCacheScope MyBatis 利用本地缓存机制(Local Cache)防止循环引用(circular references)和加速重复嵌套查询。 默认值为 SESSION,这种情况下会缓存一个会话中执行的所有查询。 若设置值为 STATEMENT,本地会话仅用在语句执行上,对相同 SqlSession 的不同调用将不会共享数据。 SESSION /STATEMENT SESSION
jdbcTypeForNull 当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER JdbcType 枚举,最常见的是: NULL, VARCHAR and OTHER OTHER
lazyLoadTriggerMethods 指定哪个对象的方法触发一次延迟加载。 如果是方法列表用逗号隔开 equals,clone,hashCode,toString
callSettersOnNulls 指定当结果集中值为 null 的时候是否调用映射对象的 setter(map 对象时为 put)方法,这对于有 Map.keySet() 依赖或 null 值初始化的时候是有用的。注意基本类型(int、boolean等)是不能设置成 null 的。 true / false false
logPrefix 指定 MyBatis 增加到日志名称的前缀 任意字符 null
logImpl 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 SLF4J / LOG4J/LOG4J2 / JDK_LOGGING/COMMONS_LOGGING/ STDOUT_LOGGING / NO_LOGGING not set
proxyFactory 指定 Mybatis 创建具有延迟加载能力的对象所用到的代理工具。 CGLIB/JAVASSIST 版本3.3.0以上JAVASSIST

Mybatis配置 environments

元素 作用
environment 元素是配置一个数据源的开始,属性id是它的唯一标识
transactionManager 元素配置数据库事务,其中type属性有三种配置方式jdbc,采用jdbc的方式管理事务;managed,采用容器的方式管理事务,在JNDI数据中使用;自定义,自定义数据库事务管理办法;
dataSource 元素配置数据源连接信息,type属性是连接数据库的方式配置,有四种配置方式1:UNPOOLED 非连接池方式连接.2 :POOLED 使用连接池连接3:JNDI 使用JNDI数据源.4:自义数据源
 
    
        
        
            
            
                
                
                
                
            
        
    

Mybatis配置 mapper

用classPath 下资源引用





使用包名引入映射器名





mybatis 主要配置如下





    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
    

    
    
        
        
        
    

    
    
        
    

    
    
        
        
            
            
            
            
            
                
                
                
                
                
            
        

        
        
            
            
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
                
            
        

        
        
            
            
                
                
                
            
        
    

    
    
        
        
        
        
    

  

你可能感兴趣的:((1)MyBatis 简单介绍)