MyBatis学习笔记(二)根据配置文件优化

上一篇:MyBatis学习笔记(一)完整查询数据库流程+增删改查

mybatis_config.xml文件中可以包含以下部分

本文接下来的优化都是针对于mybatis_config.xml文件,并且每个标签都必须按照上图顺序


一、属性:相当于全局变量 

1. 在properties文件中配置的变量通过properties标签引用后可以直接读取 

db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username=root
password=123456

mybatis_config.xml

<properties resource="db.properties"/>

<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="${driver}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${username}"/>
            <property name="password" value="${password}"/>
        </dataSource>
    </environment>
</environments>

2. 其中一部分变量写在标签内也可以直接读取 

3. 如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载:

  • 首先读取在 properties 元素体内指定的属性。
  • 然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。
  • 最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性。

因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的则是 properties 元素中指定的属性。

二、设置之日志工厂 

日志工厂可以详细的输出数据库操作的过程和错误

1. STDOUT_LOGGING 

2. LOG4J 

(1)导包 

依旧是通过maven仓库

(2)新建配置文件 

(3)在mybatis_config.xml中配置 

(4)在UserDaoTest.java中添加:

(5)函数中的几句可以放在该类的任意一个函数中使用 

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

@Test
public void testLog4j(){
    logger.info("info:进入了方法");
    logger.debug("debug:进入了方法");
    logger.error("error:进入了方法");
}

三、类型别名

1. 为类起一个别名,使 UserMapper.xml 中resultType为类时,不用写长长的文件夹前缀

mybatis_config.xml

<typeAliases>
    <typeAlias type="pojo.User" alias="User"/>
</typeAliases>

UserMapper.xml

<select id="getUserList" resultType="User">
    select * from mybatis.user
</select>

2. 也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean

(1)在没有注解的情况下包里的所有类会自动拥有别名:首字母小写的类名来作为它的别名

mybatis_config.xml

<typeAliases>
  <package name="pojo"/>
</typeAliases>

UserMapper.xml

<select id="getUserList" resultType="user">
    select * from mybatis.user
</select>

 (2)在有注解的情况下,注解就是别名

3. 系统自带类本身就拥有别名 

四、环境配置

尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。

每个数据库对应一个 SqlSessionFactory 实例

1. 环境变量 

  • 默认使用的环境 ID(比如:default="development")。
  • 每个 environment 元素定义的环境 ID(比如:id="development")。
  • 事务管理器的配置(比如:type="JDBC")。
  • 数据源的配置(比如:type="POOLED")。

2. 事务管理器 

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

如果你正在使用 Spring + MyBatis,则没有必要配置事务管理器,因为 Spring 模块会使用自带的管理器来覆盖前面的配置。

3. 数据源 

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

池是可以重复使用的

五、mapper映射器 

1. 使用接口实现xml文件注册 

     <mappers>
        <mapper resource="UserMapper.xml"/>
    </mappers>

2. 采用类接口注册 

如果不通过xml文件注册,而采用类接口注册,那么接口实现的xml文件必须和类在同一个文件夹下,并且类的名字和xml必须是同名

用包名的方式注册,两文件也要同名且在同一包下,并且类的名字和xml必须是同名

下一篇:MyBatis学习笔记(三)生命周期_分页_使用注解增删改查_mybatis执行流程

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值