Spring配置Mybatis执行原生SQL语句

为什么要怎么做

有这么一个应用场景:需要在Mybatis框架上进行多个连接池的配置,然后进行多种SQL语句的测试,因为有些SQL语句的结构比较复杂,有些会涉及到很多group byjoin操作还有一些聚集函数的使用,同时数据量又较大。
在这种情况下,常规的Mybatis面对对象进行操作的办法就不再试适用,查看Mybatis官方手册,提供了SQL构造器的办法也会有较的工作量,所以选择直接执行SQL语句(那为啥不用JDBC呢?笑)

遇到的坑

凭我记忆中对Mybatis的用法,似乎并没有这么用的,去网上搜,居然真的存在这种用法,但是讲的大多含糊其辞,晕了一下午也没让我找到正确的做法(真心给跪),这里给出链接
- 将SQL当作SqlSession执行的参数:使用SqlSession的selectList()方法,传入的参数是SQL,当然需要在Bean的mapper xml配置文件中修改parameterType类型为String,同时因为String不支持getter和setter操作,手动封装一个包装类SQLAdapter

虽然看起来似乎可以,但是还是会存在坑的,即“SqlSession对象如何调用selectList()方法来传入SQL语句?”。一开始是直接

 
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Spring Boot中,如果你想进行多表联查,可以使用Mybatis-Plus来简化操作。Mybatis-Plus是一个基于Mybatis的增强工具,它提供了一些便捷的方法和功能来更方便地进行多表联查。 首先,你需要引入Mybatis-Plus的依赖。可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本</version> </dependency> ``` 接下来,你需要配置Mybatis-Plus的配置文件。在application.properties或application.yml中添加以下配置: ```properties # Mybatis-Plus配置 mybatis-plus.mapper-locations=classpath*:mapper/**/*.xml ``` 然后,你需要创建Mapper接口和对应的XML文件。在Mapper接口中,你可以使用Mybatis原生语法,也可以自定义SQL语句来进行多表联查。在XML文件中,你可以编写对应的SQL语句来实现多表联查的逻辑。 例如,如果你要进行两张表的联查,可以在Mapper接口中定义一个方法,并在对应的XML文件中编写SQL语句。示例代码如下: ```java // Mapper接口 @Mapper public interface UserMapper extends BaseMapper<User> { List<User> selectUserAndRole(); } // XML文件 <select id="selectUserAndRole" resultType="User"> SELECT u.*, r.name AS role_name FROM user u LEFT JOIN role r ON u.role_id = r.id </select> ``` 在这个示例中,我们通过左连接将user表和role表进行联查,并在结果中包含了role表的name字段。 最后,你可以在你的Service层中调用Mapper接口的方法来实现多表联查的功能。 这就是在Spring Boot中使用Mybatis-Plus进行多表联查的基本步骤。通过引入Mybatis-Plus的依赖,配置Mapper和XML文件,你可以更方便地进行多表联查操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值