【Mybatis】(三)配置解析

配置解析

1.核心配置文件

  要掌握


2.环境配置(environments)

  MyBatis可以配置成适应多种环境

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

  学会配置多套运行环境。(修改environments标签的default值即可)


  Mybatis默认的事务管理器就是JDBC,连接池:POOLED


3.属性(properties)

  可以通过properties属性实现引用配置文件

  这些属性可以在典型的java属性文件(db.properties)中配置,也可以通过properties元素的子元素来传递。

  • 编写一个配置文件

    db.properties

    driver=com.mysql.jdbc.Driver
    jdbc-url=jdbc:mysql://localhost:3306/MyBatiss?useSSL=true&useUnicode=true&characterEncoding=UTF-8
    

    在mybatis配置文件中引入

    <properties resource="db.properties">
            <property name="username" value="root"/>
            <property name="password" value="root"/>
        </properties>
    
    
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="${driver}"/>
                    <property name="url" value="${jdbc-url}"/>
                    <property name="username" value="${username}"/>
                    <property name="password" value="${password}"/>
                </dataSource>
            </environment>
        </environments>
    
  • 可以引入外部文件

  • 可以在其中增加一些属性配置

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


4.类型别名(typeAliases)

  • 类型别名就是为了减少类完全限定名的冗余。

    <!--给实体起别名-->
        <typeAliases>
            <typeAlias type="pojo.User" alias="User"/>
        </typeAliases>
    

    就可以直接这么使用

     <select id="getUserList" resultType="User">
            select * from mybatiss.user
     </select>
    
  • 也可以指定一个包名,MyBatis会在包名下面搜索需要的Java Bean,其默认别名就是这个类的类名,首字母小写。

    <!--给实体起别名-->
        <typeAliases>
            <package name="pojo"/>
        </typeAliases>
    

    使用

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

    *当实体类多的时候,建议用第二种。

  • 当扫描包时,想给类起别名可以用注解

    @Alias("uuuser")
    public class User {...}
    

5.设置

  日志实现


6.其他配置

  • plugins插件
    • MyBatis Generator Core 自动生成sql语句
    • MyBatis Plus 简化mybatis开发,不用写简单增删改查

7.映射器(mappers)(见文档)

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

  • 方式一(推荐):使用resource

  • 方式二:使用class

    注意点:

    • 接口和Mapper配置文件必须同名
    • 接口和Mapper配置文件必须在同一个包下
  • 方式三:使用扫描包进行注入绑定

    注意点:(同方二)


8.作用域和生命周期



  • SqlSessionFactoryBuilder

    • 一旦创建了SqlSessionFactory,就不再需要它了。

    • 局部变量

  • SqlSessionFactory

    • 可以想象为:数据库连接池
    • 一旦被创建就应该在应用的运行期间一直存在。
    • 最佳作用域是应用作用域。
  • SqlSession

    • 连接到连接池的一个请求。

    • SqlSession的实例不是线程安全的,因此不能被共享。其最佳作用域是请求或方法作用域。

    • 用完之后就关闭,否则资源被占用

posted @ 2021-01-20 21:04  musecho  阅读(85)  评论(0)    收藏  举报