• MyBatis入门 (三) 配置优化


    MyBatis入门(三)

    配置之属性优化

    1.核心配置文件

    • mybatis-config.xml(官方取的名字,可自定义)
    • 属性(properties)掌握
    • 设置(settings)掌握
    • 类型别名(typeAliases)完全掌握
    • 其余了解

    2.环境配置(environments)

    MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中,

    不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。

    mybatis默认事物管理器是JDBC,默认是有连接池(POOLED)

    3.属性(properties)

    我们可以通过properties引用配置文件

    <properties resource="db.properties"> </properties>
       
    
    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/mybatis?useSSl=trueuseUnicode=truecharacterEncoding=UTF-8
    username=root
    password=root
    
    @Test
        public void test(){
            //第一步,获得SqlSession对象
            SqlSession sqlSession = MyBatisUtils.getSqlSession();
    
            //方式一getMapper:执行SQL
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            List<User> userList = mapper.getUserList();
    
            for (User user : userList) {
                System.out.println(user);
            }
    
            //关闭SqlSession
            sqlSession.close();
        }
    

    如果核心配置文件和外部properties都写了相同属性,优先外部使用properties里的。

    配置之别名优化

    类型别名(typeAliases)

    类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写

    个人喜欢写全名,排错的时候方便找,看个人喜好吧

    1. 给实体类起别名
    <typeAliases>
            <typeAlias alias="User" type="com.godwin.pojo.User"/>
        </typeAliases>
    
    <select id="getUserList" resultType="User">
            select * from mybatis.user;
        </select>
    

    2.给包起别名

    <typeAliases>
            <package name="com.godwin.pojo"/>
        </typeAliases>
    
    //官方建议用小写
    <select id="getUserList" resultType="user">
            select * from mybatis.user;
        </select>
    

    实体类比较少,使用第一种

    实体类比较多,使用第二种

    第二种可以在类上设置别名

    配置之设置优化

    设置(setting)

    **这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。

    • cacheEnabled 默认:true

      全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。

    • lazyLoadingEnabled 默认:true

      延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置 fetchType 属性来覆盖该项的开关状态。true

    • useGeneratedKeys 默认:false

      允许 JDBC 支持自动生成主键,需要数据库驱动支持。如果设置为 true,将强制使用自动生成主键。尽管一些数据库驱动不支持此特性,但仍可正常工作(如 Derby)。

    • mapUnderscoreToCamelCase 默认:false

      是否开启驼峰命名自动映射,即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn。

    • logImpl(重要) 默认:未设置

      有效值:SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING

      指定 MyBatis 所用日志的具体实现,未指定时将自动查找。

    映射器

    MapperRegistry:注册绑定我们的Mapper文件;

    方式一:推荐使用

    <!-- 使用相对于类路径的资源引用 -->
    <mappers>
            <mapper resource="com/godwin/mapper/UserMapper.xml"/>
        </mappers>
    

    方式二:

    <mappers>
         
            <mapper class="com.godwin.mapper.UserMapper"/>
        </mappers>
    

    注意点:

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

    方式三:

    <mappers>
     
            <package name="com.godwin.mapper"/>
        </mappers>
    

    注意点:

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

    其他配置

    了解,一般用不到,需要时再回来查看

    • 类处理器(typeHandlers)
    • 对象工厂(objectFactory)
    • 插件 (plugins)
  • 相关阅读:
    adb 连接小米1S真机调试
    【Docker】容器中找不到vi命令
    【BIEE】导出数据报错
    【SPSS】软件介绍
    【Oracle】查询字段的长度、类型、精度、注释等信息
    【BIRT】使用rptlibrary设置统一数据源
    【Oracle】迁移含有BLOG类型的字段的表
    【Linux】war包的解压与压缩
    【docker】挂载web应用
    【Docker】安装tomcat并部署应用
  • 原文地址:https://www.cnblogs.com/XING-ZHI-JI-DA-XUE/p/14237345.html
Copyright © 2020-2023  润新知