MyBatis核心配置文件--<environment>

目录

 

1.什么是environment标签?

2.标签

3.实践测试


 

1.什么是environment标签?

    environmrn标签就是环境标签,我们平时在连接数据库的时候,连接哪一个数据库就表示连接哪一个环境,比如bookStore数据库中有一个t_book数据表,而crm中也有一个t_book数据表 , 而我们在编写sql语句的时候,只会指定操作t_book表 ,但是我应该指定哪个数据库中的t_book表呢?

    这就是environment标签的作用,我们先配置好环境,也即是配置好数据库,然后我们在获取SqlSessionFactory就可以指定操作哪一个数据库。

2.<environments>

<!--  environments: 环境标签 , 里面存放的都是一个个的环境,default属性是默认指向哪一个环境的id-->

    <environments default="development">

2.<environmrnt>标签

<!--    environment: 其中一个环境, 连接的数据库是bookstore,id属性是这个环境的标识 , 用于指定这个环境(bookStore这个数据库的id标识为:development)   -->
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
              <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
              <property name="url" value="jdbc:mysql://localhost:3306/bookstore"/>
              <property name="username" value="root"/>
              <property name="password" value="1234"/>
            </dataSource>
        </environment>

 

<!--        环境可以有多个,这个是另一个环境,也就是另一个数据库crm , 但是这个数据库里面也同样有个t_book的数据表 , 这个环境的id我们改成crm-->
        <environment id="crm">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/crm"/>
                <property name="username" value="root"/>
                <property name="password" value="1234"/>
            </dataSource>
        </environment>

3.实践测试

package com.feisi.mybatis.test;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

public class configurationTest {
//    测试environment环境标签
    @Test
    public void environmentTest() throws Exception{
//        我们先不指定环境,使用默认环境测试
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder() ;
//        这里创建sqlSession工厂时并没有指定那个环境 , 所以它是使用默认的
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"));
        SqlSession sqlSession = sqlSessionFactory.openSession();
//        这里我们删除默认数据库(bookStore)中的数据 , 而另一个crm虽然也有t_book表,但是不会被删除
        int count = sqlSession.insert("deleteBookById", 99);
        System.out.println("执行语句:"+count);
        sqlSession.commit();
        sqlSession.close();

    }

//    接下来我们再测试指定数据库的环境标签
    @Test
    public void environmentIsTest() throws Exception{
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder() ;
//        其实sqlSessionFactoryBuilder.build()除了指定核心配置目录外,另一个属性就是指定环境的,这里我么指定为crm数据库
        SqlSessionFactory sqlSessionFactory
                = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"), "crm");
        SqlSession sqlSession = sqlSessionFactory.openSession();
        int count = sqlSession.delete("deleteBookById", 44);
//       因为我们指定了crm数据库 , 所以它就会删除crm数据库中的t_book表,而不会影响booStore中的t_book表
        System.out.println("执行语句:"+count);
        sqlSession.commit();
        sqlSession.close();
    }
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值