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)
posted @ 2021-01-05 18:16  Godwin_Zhang  阅读(94)  评论(0编辑  收藏  举报