zoukankan      html  css  js  c++  java
  • mybatis_配置文件详解

    MyBatis配置文件

    mybatis配置文件的主要作用

    1:注册数据库配置文件 db.properties,方便使用

    2:注册实体类 JavaBean 的全限定性类名的别名

    3:配置MyBatis运行环境,即配置数据源和事务管理器

    4:注册映射文件的 mappeer

    ## 配置文件详解

    # 1 注册 db.properties属性文件

    该配置的作用就是注册数据库配置文件,这样就可从数据库配置文件中获取配置信息

    <!-- 注册配置文件 -->
    <properties resource="db.properties"></properties>

    # 2 注册实体类 JavaBean 的全限定性类名的别名

    在编写Mapper配置文件时需要写上一些JavaBean类的全限定名称,造成比较繁琐,所以可以使用 typeAliases标签设置该javabean类的别名;例如下方的配置,当该类在mapper中使用时,就可直接使用所配置的别名(student)

    <!-- 将类 com.doaoao.bean.Student 的别名设置为 student-->
    <typeAliases>
        <typeAlias type="com.doaoao.bean.Student" alias="student"/>
    </typeAliases>

    当有多个JavaBean时,按照上方的方法我们就得配置多个typeAlias,这时我们可以使用package指定一个包名,mybatis会在该包下搜索需要的JavaBean,当指定一个包名时,会将该包下的类的首字母变成小写作为该类的别名。例如 com.doaoao.bean.Student,该类的默认别名就是 student,下方为使用方法

    <typeAliases>
        <package name="com.doaoao.bean"/>
    </typeAliases>

    也可以不适用系统自己定义的别名,那就使用注解 @Alias自定义一个别名

    @Alias("xuesheng")
    public class Student {
    
        private int id;
    
        private String name;
    
        private int age;
    
        private double score;
    }

     # 注:mybatis为一些常见的类建立了别名

    别名     映射的类型
    _byte     byte
    _long     long
    _short    short
    _int      int
    _integer    int
    _double   double
    _float    float
    _boolean    boolean
    string    String
    byte      Byte
    long      Long
    short     Short
    int     Integer
    integer   Integer
    double    Double
    float     Float
    boolean   Boolean
    date      Date
    decimal   BigDecimal
    bigdecimal  BigDecimal
    object    Object
    map     Map
    hashmap   HashMap
    list      List
    arraylist   ArrayList
    collection  Collection
    iterator    Iterator

     # 3 配置MyBatis的运行环境

    通常在较大规模的项目中,项目在开发时会使用多个数据库,在开发阶段可能选择本地数据库,在测试时选择另一个数据库,在上线时选择另一个数据库,所以可以利用mybatis中的配置选择哪个数据库

    <environments default="development">        
        <!-- 使用本地数据库 -->
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.user}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
        <!-- 其它数据库 -->
      <environment id="online">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.online.driver}"/>
                <property name="url" value="${jdbc.online.url}"/>
                <property name="username" value="${jdbc.online.user}"/>
                <property name="password" value="${jdbc.online.password}"/>
            </dataSource>
        </environment>
    </environments>

    在 environments 标签中含有两个子标签,两个子标签 environment分别表示两个不同的数据库,可以在enbironments中的属性defaule来指定使用哪个数据库,这样在切换数据库环境时,只需要修改default属性即可

    # transactionManager标签

    该标签用来指定mybits使用的事务管理器,mybits支持两种事务管理器

    1:JDBC,该事务通过Connection的commit()方法提交,通过rollback方法回滚

    2:MANAGED,利用容器来管理事务的整个周期,默认情况下会关闭连接

    # dataSource标签

    该标签用来配置数据源,和数据库连接的基本属性,有以下三种数据源类型

    1:UNPOOLED,该配置表示步使用连接池,每次请求时会创建一个数据库连接,使用完成后变比数据库连接

    2:POOLED,表示使用mybits自带的数据库连接池

    3:JNDI,配置外部的数据源

    # 4 mapper映射器

    该标签的作用就是告诉mybits.xml配置文件我们编写的mapper所在的路径,有以下四种写法

    <!-- 第一种 -->
    mappers>
        <!-- 使用相对于类路径的资源引用 -->
        <mapper resource="com/doaoao/dao/StudentMapper.xml"/>
    </mappers>

    <!-- 第二种 -->
    <mappers>
        <!-- 使用完全限定资源定位符(URL) -->
        <mapper url="D:/xxxx/StudentMapper.xml"/>
    </mappers>

    <!-- 第三种 -->
    <mappers>
        <!-- 使用映射器接口实现类的完全限定类名 -->
        <mapper class="com.doaoao.dao.StudentDao"/>
    </mappers>
    <!-- 注意点:
    1:映射文件名要与 Dao 接口名称相同
    2:映射文件要与接口在同一包中
    3:映射文件中的 namespace 属性值为 Dao 接口的全类名 -->

    <!-- 第四种 -->
    <mappers>
        <!-- 将包内的映射器接口实现全部注册为映射器 -->
        <package name="com.doaoao.dao"/>
    </mappers>
    <!-- 注意点
    dao 使用 mapper 动态代理实现(后面再将)
    映射文件名要与 Dao 接口名称相同
    映射文件要与接口在同一包中
    映射文件中的 namespace 属性值为 Dao 接口的全类名 -->

     ...

    ...

  • 相关阅读:
    mysql中的内连接,外连接
    MySQL左连接、右连接
    attempted to assign id from null onetoone
    Hibernate session方法
    java.sql.SQLException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error
    hibernate多对一、一对一、一对多、多对多的配置方法
    齐头并进
    w5100的板子做回来了,再次犯错误。
    一个阶段的任务基本完成了
    任务繁重
  • 原文地址:https://www.cnblogs.com/Doaoao/p/10701866.html
Copyright © 2011-2022 走看看