首页 > 其他分享 >MyBatis接口代理对象的2种方式

MyBatis接口代理对象的2种方式

时间:2022-10-01 05:55:04浏览次数:44  
标签:return sqlSessionFactoryBean 代理 接口 mybatis druidDataSource MyBatis new public

方式1

  使用MyBatis自带的API生成代理对象   SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession

  缺点: 接口代理对象需要手动  getMapper()

  <dependency>
    <groupId>org.mybatis</groupId>  
    <artifactId>mybatis</artifactId>  
    <version>3.5.2</version>
  </dependency>

 

@Configuration
public class ServiceConfig {

    @Bean
    public AccountMapper getMapper() throws IOException {
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        AccountMapper mapper = sqlSession.getMapper(AccountMapper.class);
        return mapper;
    }
}

 

方式2

  批量自动生成dao层代理对象  业务层需要哪个接口代理对象直接DI注入即可    API由spring与Myabatis的融合包提供

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.2</version>
</dependency>

 


@Configuration
@ComponentScan("com.midea.test")
public class ModeConfig {


    @Bean
    public DruidDataSource getDruid(){
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        druidDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/db1?serverTimezone=GMT%2B8");
        druidDataSource.setUsername("root");
        druidDataSource.setPassword("root");
        return druidDataSource;
    }

    @Bean
    public SqlSessionFactoryBean getSqlSessionFactoryBean(DruidDataSource druidDataSource) throws Exception {

        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        //添加连接池
        sqlSessionFactoryBean.setDataSource(druidDataSource);

        //指定接口映射文件mapper位置
        ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver();
        sqlSessionFactoryBean.setMapperLocations(resourceResolver.getResources("mapper/*.xml"));

        //开启驼峰自动转换
        sqlSessionFactoryBean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
        return sqlSessionFactoryBean;
    }

    @Bean
    public MapperScannerConfigurer m2(){
        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
        mapperScannerConfigurer.setBasePackage("com.midea.mybatis");
        return mapperScannerConfigurer;
    }
}

 

标签:return,sqlSessionFactoryBean,代理,接口,mybatis,druidDataSource,MyBatis,new,public
From: https://www.cnblogs.com/EthanLoveMath/p/16746678.html

相关文章

  • 杂谈:几种接口
    货铺QQ群号:8345082741)FTP这个我第一次用是2011年,老久了,可能到现在也已经有一些变化了。2)PI RFC这个就是最简单的配置一下PI,SAP内建RFC函数绑定就行了。《简单PI配置完整流......
  • 如何处理 SSR 服务端渲染时候后端接口报错导致无法渲染问题 All In One
    如何处理SSR服务端渲染时候后端接口报错导致无法渲染问题AllInOne预先构建出,兜底的静态页面SSR动态渲染时候出错,返回兜底的静态页面CDN缓存refs......
  • 源码学习之MyBatis的底层查询原理
    导读本文通过MyBatis一个低版本的bug(3.4.5之前的版本)入手,分析MyBatis的一次完整的查询流程,从配置文件的解析到一个查询的完整执行过程详细解读MyBatis的一次查询流程,通过本......
  • 如何处理 SSR 服务端渲染时候,后端接口数据返回慢导致首屏白屏问题 All In One
    如何处理SSR服务端渲染时候,后端接口数据返回慢导致首屏白屏问题AllInOneSSR服务端渲染,后端接口慢,如何处理refs©xgqfrms2012-2020www.cnblogs.com/xgqfrms......
  • 2022 年十大接口测试工具合集
    接口测试的全称是应用程序编程接口(API)测试,从原理上来说,接口测试是模拟客户端向服务器端发送请求,然后检查能否获得正确的返回信息。接口测试用于测试RESTfulAPI、SOAPWeb......
  • mybatis 使用if 判断字符串
    mybatis动态sql中if判断使用的ognl表达式,现在分3中情况说明并验证。一、情况说明:传入的itemCode为参数传入mybatis<iftest='itemCode!=nullanditemCode!=""and......
  • ServletContext接口规约
    Servlet4.0的ServletContext对象4.1ServletContext接口简介ServletContext是定义Servlet运行的WebApplication的视图。ServletContainer有义务提供ServletContext实现类。......
  • 4 MyBatis注解
    八、使用注解开发1.面向接口编程根本原因:解耦,可拓展,提高复用,分层开发中,上层不用管具体的实现,大家都遵守共同的标准,使得开发变得容易,规范性更好。关于接口的理解......
  • 用IO多路复用实现 nginx 静态资源代理(C/Java/Golang)
    用IO多路复用实现nginx静态资源代理(C/Java/Golang)效果展示代理HTML代理图片注意,静态资源代理基于HTTP,可以了解上一篇文章:几十行代码使用TCP简单实现HTT......
  • Vue3 从入门到入土(TypeScript接口)
    前言在上一章,我们就写过简单的接口,本章更深入的了解接口接口是对象的状态(属性)和行为(方法)的抽象(描述)接口以例子来了解,我们有这样的需求定义一个对象存放用......