Mybatis如何实现跨库查询,比如需求是将wxt_demo库中的user表和wxt_xot库中的result表以uid作为条件做联合查询,sql如下:
<select id="selectData" parameterType="string" resultMap="exportModel">
SELECT b.`name`,a.answer_data,a.test_score from result a LEFT JOIN wxt_demo.`user` b on a.student_id=b.id
where paper_id=#{paperId,jdbcType=CHAR}
</select>
但是发现,这个sql在mysql客户端能够正常运行,但是在mybatis中会将wxt_demo.user
整体当成一个表名,产生MySQLSyntaxErrorException: Table 'com_wxt_demo.user' doesn't exist异常信息,希望感兴趣的大牛给予指点。
那是因为你在
mybatis
连接mysql url
中已经指定了具体的database
了吧.所以你只需要修改
url
可以操作多个db
就行了, 但是你这样做的话, 那所有的sql
都需要增加database name
.MySQL URL Syntax
使用
[]
的部分都是可行项, 你只需要把mysql url
中的/database
去掉就可以使用database.table
的方式操作多个数据库了.PS: 可能你在
mysql
客户端中还使用了use database_name
来切换database
吧.