mybatis的学习1(关于mybatis的配置文件configuration)

mybatis官网详解mybatis配置官网地址
1、properties
1)在引入外部文件的时候,可以使用properties

<!--
    当需要引入外部文件时,可以使用<context:property-placeholder location>
    resource:表示从当前类路径加载,如果用的是idea,指的是resources目录下
    url:可以从当前文件系统的磁盘上寻找配置,也可以从网络资源上引入
    -->
    <properties resource="db.properties"></properties>

2)在配置数据源中的属性值时,使用properties标签进行配置

<dataSource type="POOLED">
  <property name="driver" value="${driver}"/>
  <property name="url" value="${url}"/>
  <property name="username" value="${username}"/>
  <property name="password" value="${password}"/>
</dataSource>

2、settings
settings中可以设置的属性特别多,这里介绍mapUnderscoreToCamelCase驼峰标识的用法

<settings>
        <!--开启驼峰标识验证-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

因为mybatis中从数据库拿出数据后引入实体类中,都是由mybatis自带的处理器进行处理的,所以在映射文件中写SQL语句、写实体类时,特别是进行查询操作的时候,一般都是需要将查询的结果映射到实体类中,所以若开启驼峰标识,实体类命名都是与数据库成驼峰命名法一一对应时,便会自动装配至对应的实体类中(数据库命名admin_account,实体类命名:adminAccount)
关于settings其他属性可以看官网settings用法

3、typeAliases:类型别名

<!--表示在引入实体类的名称的时候,可以使用别名,而不需使用完全限定名-->
    <typeAliases>
        <typeAlias type="com.csh.bean.Admin" alias="Admin"/>
        <!--指定包中的实体类不需要写完全限定名-->
        <package name="com.csh.bean"/>
    </typeAliases>

4、typeHandlers:类型处理器
上面说道mybais会自己将属性装配到实体类中是因为mybatis有自己从处理器,也就是类型处理器,这里的属性设置是可以自定义类型处理器,需要自定义类继承BaseTypeHandler,实现类中的四个方法

public class MyExampleTypeHandler extends BaseTypeHandler<String> {

    public void setNonNullParameter(PreparedStatement preparedStatement, int i, String s, JdbcType jdbcType) throws SQLException {

    }

    public String getNullableResult(ResultSet resultSet, String s) throws SQLException {
        return null;
    }

    public String getNullableResult(ResultSet resultSet, int i) throws SQLException {
        return null;
    }

    public String getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
        return null;
    }
}

xml开启处理器

<!--设置定义自己的类型处理器,也就是将属性装配到实体类的过程,mybatis中默认内置了许多类型处理器,一般不需要自己实现-->
    <typeHandlers>
        <typeHandler handler=""></typeHandler>
        <package name=""/>
    </typeHandlers>

5、objectFactory:对象工厂,与类型处理器使用方法一样,需要继承DefaultObjectFactory 类,同样实现类中的四个方法,自定义实例化目标类objectFactory官网点击跳转查看

6、plugins:插件,MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。plugins官网地址

7、environments:环境配置,也就是可以通过environments进行配置多个环境,开发环境,测试环境、生产环境,有可能会使用不同的数据源进行操作,在此进行配置

<environments default="development">
        <!--配置具体的环境,属性,id表示当前环境的名称-->
        <environment id="development">
            <!--
                事务管理器,每一种数据源都需要配置具体的事务管理器
                type:表示事务管理器的类型
                jdbc:使用jdbc当前原生的事务控制
            -->
            <transactionManager type="JDBC" />
            <!--
                配置具体的数据源的类型
                type:表示数据源的类型
                pooled:使用数据库连接池
                unpooled:每次打开和关闭一个链接
            -->
            <dataSource type="POOLED">
                <!--链接数据的时候需要添加的必备的参数,一般是4个
                   如果是连接池的话 ,可以设置连接最大个数等相关配置
                -->
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
        <environment id="test">
            <transactionManager type=""></transactionManager>
            <dataSource type=""></dataSource>
        </environment>
    </environments>

8、databaseIdProvider:数据库标识,当有数据库移植的需求的时候,可以根据不同的数据库来执行不通的数据库语言,在数据库语句后面加上参数databaseId即可

<databaseIdProvider type="DB_VENDOR">
        <property name="MySQL" value="mysql"/>
        <property name="SQL Server" value="sqlserver"/>
        <property name="Oracle" value="oracle"/>
</databaseIdProvider>

配置后需要在映射文件SQL语句加上databaseId属性,指定使用的数据库

9、mappers:映射器,也就是写SQL语句的地方,在而要引入映射文件肯定需要在配置文件中指定,mappers作用也就在这了,下面代码还有其他用法

<!--
        用来将mapper映射文件引入配置文件中,方便程序启动的时候进行加载
        resourse:从项目的类路径下加载对应的映射文件
        url:从本地磁盘或者网络中引入映射文件
        class:可以直接引入类的完全限定名,可以使用注解的方式进行使用
        若不想使用注解,想要引入配置文件形式,可以将xml文件放在具体类的同级目录下,
         1、   若是maven项目,maven默认只会加载java文件,所以需要进行配置
                <build>
                    <resources>
                        <resource>
                            <directory>src/main/java</directory>
                            <includes>
                                <include>**/*.xml</include>
                            </includes>
                        </resource>
                    </resources>
                </build>
        2、在resources资源目录下创建与dao层一样的同级目录即可,将配置文放到指定的目录
    -->
    <mappers>
        <mapper resource="AdminDao.xml"/>
        <!--如果需要引入多个配置文件,可以指定定义包的名称
            resources目录下的配置文件必须要有具体相同的目录
        -->
        <package name="com.csh.dao"/>
    </mappers>

关于plugins插件暂无应用举例,后续学习后补上,好像工作基本上都会使用,还有mybatis plus有自带的比较经常使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值