关于下述问题区别的解答:数据库默认命名的使用
基本解答:<environments default="mysql">
<environments default="dev_mysql">
这两者 的区别 :
dev_mysql 表示运用在开发环境中的 ,,,也可以直接命名为mysql 但还是建议hi用专业的命名规范好一些
如果不是很懂的话可以查看本博主的 第二章的解答::--------》》》》》后续关于此类知识点
标题:MyBatis之mybatis-config.xml中配置数据库的使用---》第二章
https://mp.csdn.net/postedit/84972203
一:以下可以借鉴之关于mybatis 数据库的配置:
MyBatis可以执行不同的SQL语句,根据不同的数据库而改变,databaseIdProvider
就是在MyBatis
在移植性方面提供的支持
想要多数据库支持要在全局配置文件中配置databaseIdProvider
标签:
<!-- 5、databaseIdProvider:支持多数据库厂商的;
type="DB_VENDOR"是固定写法:VendorDatabaseIdProvider作用就是得到数据库厂商的标识(驱动getDatabaseProductName()),mybatis就能根据数据库厂商标识来执行不同的sql;
MySQL,Oracle,SQL Server,xxxx
-->
<databaseIdProvider type="DB_VENDOR">
<!-- 为不同的数据库厂商起别名 -->
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>
这样就可以在Mapper
中的select
标签中用databaseId="xxx"
来执行不同的SQL语句了
<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"
databaseId="mysql">
select * from tbl_employee where id = #{id}
</select>
<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"
databaseId="oracle">
select EMPLOYEE_ID id,LAST_NAME lastName,EMAIL email
from employees where EMPLOYEE_ID=#{id}
</select>
想要使用不同的数据库环境记得要在全局配置文件中配置environment
:
<environments default="dev_mysql">
<environment id="dev_mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
<environment id="dev_oracle">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${orcl.driver}" />
<property name="url" value="${orcl.url}" />
<property name="username" value="${orcl.username}" />
<property name="password" value="${orcl.password}" />
</dataSource>
</environment>
</environments>
还要在外部properties配置文件中配置Oracle:
还有不同的数据库jar
包也要添加进来
orcl.driver=oracle.jdbc.OracleDriver
orcl.url=jdbc:oracle:thin:@localhost:1521:orcl
orcl.username=scott
orcl.password=123456
这样就可以用<environments default="dev_mysql/dev_oracle">
来切换不同的数据库环境了,从而提高了移植性
还有一点就是比如在MySQL
环境下,有以下两个SQL
语句,会使用有databaseId="mysql"
标示的那个SQL
语句,把没有标示的那个SQL
语句舍弃掉
<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee">
select * from tbl_employee where id = #{id}
</select>
<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"
databaseId="mysql">
select * from tbl_employee where id = #{id}
</select>
文章结束::::看看博主的问题哈,,,,知道的留言帮我解答下哈,,,大佬们
接后续章节:有专业解答博主问题