mybatis中的两个sql文件的select语句可以互相调用吗

mybatis中的两个sql文件的select语句可以互相调用吗,第1张

不得不说,不怕你不敢做,只怕你不敢想...看到你的提问后,我测试了一下,答案是:可以的...

以下是案例:

我有两mybatis文件,分别是ClassMapper.xml和BabyMapper.xml中,现在想要用ClassMapper调用BabyMapper中的一个方法。

ClassMapper.xml中的查询语句

<select id="getByBo" resultMap="BaseResultMap" parameterType="ClassesBo">

select * from class c where 1 = 1

<include refid="baby.getdemo"/>

</select>

BabyMapper.xml中的查询语句:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="baby">

<sql id="getdemo">

and 2 = 2

</sql>

</mapper>

通过log观察发现最后的结果:

Preparing: select * from class c where 1 = 1 and 2 = 2

通过以上,发现是可以跨文件调用的,写的时候需要把指针也写上,如:baby.getdemo

以上只是例子,实际还需要按照你自己来定

跟你之前只有一个数据库写SQL一样的。只不过表明前面带上数据库的schema名称就好了,跟写单库的表查询一样一样的。

select * from user.`user` u 

left join trade.`trade_order` t 

on 

u.`id` = t.`user_id`

为了给你讲解清楚,特地亲手创建了两个数据库,以及两张表。希望对你有帮助,还望采纳最佳噢!谢谢 ^_^


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6423726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-21
下一篇 2023-03-21

发表评论

登录后才能评论

评论列表(0条)

保存