MyBatis环境切换问题
发布日期:2021-05-07 13:38:26 浏览次数:16 分类:原创文章

本文共 2446 字,大约阅读时间需要 8 分钟。

本文讲的是MyBatis框架怎么切换数据库的环境:
分为以下几步:
在核心配置文件中:
1.编写environment标签
2.environments的default属性指定需要的environment的id值
3.配置数据库支持类

db.properties:

#oracleoracle.driver=oracle.jdbc.OracleDriveroracle.url=jdbc:oracle:thin:@127.0.0.1:1521:ORCLoracle.username=scottoracle.password=tiger#mysqlmysql.driver=com.mysql.jdbc.Drivermysql.url=jdbc:mysql://localhost:3306/mydb?allowMultiQueries=truemysql.username=rootmysql.password=root

conf.xml:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>    <!-- 引用db.properties配置文件 -->    <properties resource="db.properties"/>   <!--default指定環境 -->    <environments default="devMysql">        <!--oracle -->        <environment id="devOracle">            <transactionManager type="JDBC" />            <!-- 配置数据库连接信息 -->            <dataSource type="POOLED">                <property name="driver"  value="${oracle.driver}" />                <property name="url"                          value="${oracle.url}" />                <property name="username" value="${oracle.username}" />                <property name="password" value="${oracle.password}" />            </dataSource>        </environment>        <!--mysql -->        <environment id="devMysql">            <transactionManager type="JDBC" />            <!-- 配置数据库连接信息 -->            <dataSource type="POOLED">                <property name="driver"  value="${mysql.driver}" />                <property name="url"                          value="${mysql.url}" />                <property name="username" value="${mysql.username}" />                <property name="password" value="${mysql.password}" />            </dataSource>        </environment>    </environments>    <!-- 配置数据库支持类-->    <databaseIdProvider type="DB_VENDOR">            <property name="MySQL" value="mysql" />            <property name="Oracle" value="oracle" />    </databaseIdProvider>    <mappers>        <!-- 加载映射文件 -->        <mapper resource="entity/studentMapper.xml"/>    </mappers></configuration>

具体使用时,在相应的mapper接口中指定databaseId:

    <insert id="addStudent"            parameterType="com.yanqun.entity.Student"  databaseId="mysql">          insert into student(stuNo,stuName,stuAge,graName)          values(#{stuNo} , #{stuName},#{stuAge},#{graName})   </insert>

如果不指定databaseId,myBatis会实现自适应。
当xml中既存在没有指定dataBaseId的sql语句,又存在指定dataBaseId的sql语句,他会默认优先执行有dataBaseId的

上一篇:MyBatis中不同数据库的差异
下一篇:MyBatis自定义类型转换器

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月03日 08时48分21秒