Mybatis学习笔记,配置文件常用设置 二

如何把数据库的连接信息放到配置文件中加载呢

首先我们先创建一个配置文件。

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatisplus
username=root

然后我们在mybatis的全局配置文件中配置响应的信息即可搞定。

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

从上面的方式可以看出我们在properties标签中有一个属性resource指向了数据库连接文件,然后在下面只要用${}就可以将配置文件中的值引入,除了resource属性还有url属性,区别是resource属性是相对于类路径下,url是绝对路径。

对mybatis框架运行时设置标签

	<!--
           2、settings包含很多重要的设置项,这个设置表示让mybatis遵循驼峰命名法,其实就是一般数据库中字段起名是user_name的方式,而pojo类中字段是userName驼峰形式,所以加入这个设置表示把数据库字段映射为pojo驼峰形式的字段。
      -->
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"></setting>
    </settings>

上图settings包含很多重要的设置项,这个设置表示让mybatis遵循驼峰命名法,其实就是一般数据库中字段起名是user_name的方式,而pojo类中字段是userName驼峰形式,所以加入这个设置表示把数据库字段映射为pojo驼峰形式的字段。


下面是设置别名

<!-- 3、typeAliases:别名处理器;可以为我们的java类型起别名
   -->
   <typeAliases>
       <!-- typeAlias:为某个java类型起别名   type:指定要起别名的类型全类名,默认别名是类名小写 alias:指定新的别名-->
       <!--<typeAlias type="com.test.Student" alias="stu"/>-->

       <!-- package:为某个包下的所有类批量起别名  name:指定包名(为当前包及下面所有的后代包的每一个类都起一个默认别名,类名小写 ) -->
       <package name="com.test" />
       <!-- 批量起别名的情况下,使用@Alias注解为某个类型指定新的别名 -->
   </typeAliases>

上面就是给pojo类取别名的方式,如果用这种方式取别名在mapper配置文件中返回类型就不用写全类名了,下面是包扫描,意思是在指定包下的所有类都遵循默认的别名,就是类名小写,但是有一种隐患,就是在指定包下的子包会有类名重复的可能,这就需要在pojo类上标上注解,指定别名就可以了。

 @Alias("stu")
public class Student {
    private int sid;
    private String userName;
    private String age;

切换不同的数据库连接

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

从上面可以看出我们配置了两个数据库连接,而environments标签的default指定的是默认使用哪一个数据库连接,可以自由切换,比如开发的数据库,测试的数据库,或者生产的数据库。

mybatis不同数据库执行sql语句的解决方案。

<!-- 5、databaseIdProvider:支持多数据库厂商的:
     type="DB_VENDOR":VendorDatabaseIdProvider
     作用就是得到数据库厂商的标识(驱动getDatabaseProductName())、mybatis就能识别Mysql、Oracle、Sql Server.....-->
    <databaseIdProvider type="DB_VENDOR">
        <property name="MySql" value="mysql"/>
        <property name="Oracle" value="oracle"/>
        <property name="Sql Server" value="sql server"/>
    </databaseIdProvider>

首先先给不同的数据库定义好不同的别名。

<mapper namespace="com.test.mapper.StudentMapper">
    <select id="findStudentAll" resultType="student" databaseId="oracle">
        SELECT * from student where sid = #{sid}
    </select>

    <insert id="addStudentInfo" parameterType="com.test.Student" databaseId="mysql">
        insert into student(user_name,age,user_address,sex,version) values(#{userName},#{age},#{userAddress},#{sex},#{version})
    </insert>
</mapper>

上面的代码中 databaseId属性就可以指定当前sql按照哪个数据库的标准执行sql语句

mybatis配置文件中mapper标签的使用方法

	<mappers>
        <mapper resource="sql/studentMapper.xml"/>
        <mapper url="file:E:\\IntelliJ IDEA 2018.3.2\\TestMybatis\\src\\main\\resources\\sql\\studentMapper.xml"/>
        <mapper class="com.test.mapper.StudentMapper"/>
        <!-- 批量注册: -->
        <package name="com.test.mapper"/>
    </mappers>

上面的图就是我们注册mapper的方式,其中有四种。
第一种是resource就是指定类路径下的mybatis的映射文件路径。
第二种方式就是url这种方式是指定映射文件的全路径,也就是磁盘的全路径。
第三种class就是接口映射,这种方式直接写上接口类路径是不行的,还要把映射文件与指定接口的文件放在同一类路径下才可以,当然用注解方式的话在创建的接口里在方法上标注注解,就不需要将mapper映射文件放在同类路径下,直接设定这个接口就可以运行。
第四种就是批量注册,它可以指定包下所有的映射文件加载上来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值