前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis之全局配置文件中的标签

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

作者头像
西西嘛呦
发布2020-08-26 10:59:48
5510
发布2020-08-26 10:59:48
举报
文章被收录于专栏:数据分析与挖掘

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

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

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

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

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

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

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

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

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

6、environments:

代码语言:javascript
复制
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <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>
    </environments>

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

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

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

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

  • url:引用网络路径或者磁盘路径
  • resource:引用类路径下的sql映射文件 假设在类路径下有mabtis.mapper专门放置mapper.xml,那么可以这么使用resource
代码语言:javascript
复制
<mappers>
    <mapper resource="mybatis/mapper/EmployeeMapper.xml"/>
</mappers>
  • class:注册接口。使用这种方式时: (1)若有映射文件,需要将mapper.xml文件放置在和接口的同一目录下,同时接口名和mapper文件名要保持一致:
代码语言:javascript
复制
    <mappers>
        <mapper class="com.gong.mybatis.dao.EmployeeMapper" />
    </mappers>
  • (2)若没有映射文件,需要将sql语句利用注解写在接口的方法中: EmployeeMapperAnnotation.java package com.gong.mybatis.dao; import org.apache.ibatis.annotations.Select; import com.gong.mybatis.bean.Employee; public interface EmployeeMapperAnnotation { @Select("select * from tbl_employee where id=#{id}") public Employee getEmpById(Integer id); } 在TestMybatis.java中进行测试: package com.gong.mybatis.test; import java.io.IOException; import java.io.InputStream; 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; import com.gong.mybatis.bean.Employee; import com.gong.mybatis.dao.EmployeeMapper; import com.gong.mybatis.dao.EmployeeMapperAnnotation; public class TestMybatis { public SqlSessionFactory getSqlSessionFactory() throws IOException { String resource = "mybatis-config.xml"; InputStream is = Resources.getResourceAsStream(resource); return new SqlSessionFactoryBuilder().build(is); } @Test public void test02() throws IOException { // 1、获取sqlSessionFactory对象 SqlSessionFactory sqlSessionFactory = getSqlSessionFactory(); // 2、获取sqlSession对象 SqlSession openSession = sqlSessionFactory.openSession(); try { // 3、获取接口的实现类对象 //会为接口自动的创建一个代理对象,代理对象去执行增删改查方法 EmployeeMapperAnnotation mapper = openSession.getMapper(EmployeeMapperAnnotation.class); Employee employee = mapper.getEmpById(1); System.out.println(mapper.getClass()); System.out.println(employee); } finally { openSession.close(); } } } 输出:
代码语言:javascript
复制
    <mappers>
        <mapper class="com.gong.mybatis.dao.EmployeeMapperAnnotation" />
    </mappers>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档