SSM框架之Mybatis学习笔记2

SSM框架之Mybatis学习笔记2,第1张

SSM框架之Mybatis学习笔记2 Mybatis 配置解析
核心配置文件
  • mybatis-config.xml
  • Mybatis 的配置文件包含了会深深影响 Mybatis 行为的设置和属性信息

  • 核心配置文件中的标签必须按照下图的顺序书写

属性(properties)
  • 可以通过 properties 属性来实现引用配置文件
  • 这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置
外部配置文件
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?userSSL=true&userUnicode=true&characterEncoding=utf-8
username=root
password=123456
将配置文件引入核心配置文件



           
    
        
            
            
                
                
                
                
            
        
    
    
        
    

properties 标签中也可以增加一些属性配置


    
    

如果内外配置文件有相同一个字段,优先使用外部配置文件的字段

设置(settings)
  • 这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为
  • 相对重要的三个设置

日志
日志工厂
  • 如果一个数据库 *** 作出现了异常,日志是最好的排错助手
  • 在 Mybatis 中具体使用哪一个日志实现,在设置中设定

SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING

LOG4J
  • 通过使用 LOG4J,我们可以控制日志信息输送的目的地是控制台,文件,GUI 组件等
  • 可以控制每一条日志的输出格式
  • 通过定义每一条日志信息的级别,能够更加细致的控制日志的生成过程
  • 通过一个配置文件来灵活地进行配置,不需要修改应用的代码

    log4j
    log4j
    1.2.17
    compile

#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
log4j.rootLogger=DEBUG,console,file

#控制台输出的相关设置
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n

#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/yqly.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n

#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

    

STDOUT_LOGGING

    

在类中使用 LOG4J 时,需要导入包 import org.apache.log4j.Logger

static Logger logger=Logger.getLogger(UserMapperTest.class);

日志级别

logger.info();
logger.debug();
logger.error();
类型别名(typeAliases)
  • 类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写
  1. 直接给实体类起别名

    在实体类少的时候使用


    

  1. 扫描指定包下的所有 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名比如 com.yqly.pojo.User 的别名为 user;若有注解(@Alias(“注解值”)),则别名为其注解值

    在实体类多的时候使用


    

环境配置(environments)
  • MyBatis 可以配置成适应多种环境
  • 尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境

    
        
        
            
            
            
            
        
    

事务管理器(transactionManager)

在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]")

JDBC(默认使用)
  • 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域
MANAGED
  • 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接。然而一些容器并不希望连接被关闭,因此需要将 closeConnection 属性设置为 false 来阻止默认的关闭行为
数据源(dataSource)
  • 作用:连接数据库
  • 大多数 MyBatis 应用程序会按示例中的例子来配置数据源。虽然数据源配置是可选的,但如果要启用延迟加载特性,就必须配置数据源。

有三种内建的数据源类型(也就是 type="[UNPOOLED|POOLED|JNDI]")

UNPOOLED
  • 这个数据源的实现会每次请求时打开和关闭连接。虽然有点慢,但对那些数据库连接可用性要求不高的简单应用程序来说,是一个很好的选择。 性能表现则依赖于使用的数据库,对某些数据库来说,使用连接池并不重要,这个配置就很适合这种情形
POOLED(默认使用)
  • 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。 这种处理方式很流行,能使并发 Web 应用快速响应请求
JNDI
  • 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用
映射器(mappers)
  • 用于注册绑定我们的 mapper 文件
  1. 使用相对于类路径的资源引用

    

  1. 使用映射器接口实现类的完全限定类名

    接口和他的 Mapper 配置文件必须同名

    接口和他的 Mapper 配置文件必须在同一个包下


    

  1. 将包内的映射器接口实现全部注册为映射器

    接口和他的 Mapper 配置文件必须同名

    接口和他的 Mapper 配置文件必须在同一个包下

        
其他配置
  • typeHandlers(类型处理器)
  • objectFactory(对象工厂)
  • plugins(插件)
    • mybatis-generator-core
    • mybatis-plus
    • 通用 mapper

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5697634.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存