mybatis之全局配置文件中的标签

mybatis的全局配置文件是在configuration标签下进行配置的,在其中可以配置以下标签:

  • properties:属性配置
  • settings:设置
  • typeAliases:类型命名
  • typeHandlers:类型处理器
  • objectFactory:对象工厂
  • plugins:插件
  • environments:环境
        enviroment:环境变量
            transactionManager:事务管理器
            dataSource:数据源
  • databaseIdProvider:数据库厂商标识
  • mappers:映射器

1、properties:引入外部properties配置文件的内容

2、settings:设置项,可以影响mybatis运行的行为

3、typeAliases:为java类型取一个别名:

<typeAliases>
    typeAlias alias="emp" type="com.gong.mybatis.bean.Employee"/>
    <!--批量取别名,会为某个包下的所有类取别名,别名为类名小写-->
    package name="com.gong.mybatis.bean"/>
</>

另外,我们也可以用@Alias("名字")注解,直接在java文件中为类取别名。注意:别名不区分大小写。

4、typeHandlers:java数据类型和数据库数据类型的桥梁。

5、plugins:拦截sql语句执行的一些步骤。

6、environments:

    environments default="development">
        environment id>
            transactionManager type="JDBC" />
            dataSource ="POOLED">
                property ="driver" value="${jdbc.driver}" />
                ="url"="${jdbc.url}" ="username"="${jdbc.username}" ="password"="${jdbc.password}" dataSourceenvironmentenvironments>

我们可以通过id来切换不同的环境。

7、databaseIdProvider:支持多数据库,根据数据库厂商的标识发送不同的sql语句。

8、mappers:将sql映射文件注册到全局配置文件中。

mappers中的子标签为mapper,在mapper中有以下属性:

  • url:引用网络路径或者磁盘路径
  • resource:引用类路径下的sql映射文件
    假设在类路径下有mabtis.mapper专门放置mapper.xml,那么可以这么使用resource
    mappersmapper resource="mybatis/mapper/EmployeeMapper.xml">
  • class:注册接口。使用这种方式时:
    (1)若有映射文件,需要将mapper.xml文件放置在和接口的同一目录下,同时接口名和mapper文件名要保持一致:

        class="com.gong.mybatis.dao.EmployeeMapper" >
  • (2)若没有映射文件,需要将sql语句利用注解写在接口的方法中:
        ="com.gong.mybatis.dao.EmployeeMapperAnnotation" >

    EmployeeMapperAnnotation.java

    package com.gong.mybatis.dao;
    
    import org.apache.ibatis.annotations.Select;
    
     com.gong.mybatis.bean.Employee;
    
    public interface EmployeeMapperAnnotation {
        @Select("select * from tbl_employee where id=#{id}")
        public Employee getEmpById(Integer id);
        
    }

    在TestMybatis.java中进行测试:

     com.gong.mybatis.test;
    
     java.io.IOException;
     java.io.InputStream;
    
     org.apache.ibatis.io.Resources;
     org.apache.ibatis.session.SqlSession;
     org.apache.ibatis.session.SqlSessionFactory;
     org.apache.ibatis.session.SqlSessionFactoryBuilder;
     org.junit.Test;
    
     com.gong.mybatis.bean.Employee;
     com.gong.mybatis.dao.EmployeeMapper;
     com.gong.mybatis.dao.EmployeeMapperAnnotation;
    
     TestMybatis {
        
        public SqlSessionFactory getSqlSessionFactory() throws IOException {
            String resource = "mybatis-config.xml";
            InputStream is = Resources.getResourceAsStream(resource);
            return new SqlSessionFactoryBuilder().build(is);
        }
        
        @Test
        void test02()  IOException {
            // 1、获取sqlSessionFactory对象
            SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
             2、获取sqlSession对象
            SqlSession openSession = sqlSessionFactory.openSession();
            try {
                 3、获取接口的实现类对象
                会为接口自动的创建一个代理对象,代理对象去执行增删改查方法
                EmployeeMapperAnnotation mapper = openSession.getMapper(EmployeeMapperAnnotation.);
                Employee employee = mapper.getEmpById(1);
                System.out.println(mapper.getClass());
                System.out.println(employee);
            } finally {
                openSession.close();
            }
    
        }
    
    }

    输出:

     

     

相关文章

1.pom.xml引入依赖 &lt;dependency&gt; &lt;gro...
&lt;?xml version=&quot;1.0&quot; encoding=&a...
准备工作 ① 创建数据库&amp;数据表 ## 创建数据库 CREA...
MyBatis逆向工程是指根据数据库表结构自动生成对应的实体类、...
MyBatis获取参数值的两种方式:${}和#{} ${}的本质就是字符串...
resultMap作用是处理数据表中字段与java实体类中属性的映射关...