[IDEA]项目连接多个数据库时,Mapper.xml的SQL表名报红

在使用Spring Cloud框架进行开发时,遇到ruoyi-cloud快速开发框架里的XML文件中表名爆红的情况。选择了数据源后爆红消失,但是毕竟文件过多,不可能一一对应去选择数据库,所以利用IDEA中的设置找到了一个快捷方法

一、选择数据库连接

在这里插入图片描述
在这里插入图片描述

项目具有两个数据库

二、设置数据库方言

在这里插入图片描述

打开设置——选择语言和框架——SQL方言——修改全局SQL方言和项目SQL方言

三、修改SQL解析范围

在这里插入图片描述

打开SQL解析范围——取消勾选“所有数据源”——选择当前数据源——选择数据库

最后查看所有的XML文件,发现错误和爆红都消失了

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是一个示例mapper.xml模板配置: ```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="com.example.mapper.UserMapper"> <!-- 查询用户信息 --> <select id="selectUserById" resultType="com.example.entity.User"> SELECT * FROM user WHERE id = #{id} </select> <!-- 根据条件查询用户列表 --> <select id="selectUserList" resultType="com.example.entity.User"> SELECT * FROM user <where> <if test="name != null and name != ''"> AND name = #{name} </if> <if test="age != null"> AND age = #{age} </if> </where> </select> <!-- 新增用户 --> <insert id="insertUser" parameterType="com.example.entity.User"> INSERT INTO user (name, age) VALUES (#{name}, #{age}) </insert> <!-- 更新用户信息 --> <update id="updateUser" parameterType="com.example.entity.User"> UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id} </update> <!-- 删除用户 --> <delete id="deleteUserById" parameterType="int"> DELETE FROM user WHERE id = #{id} </delete> </mapper> ``` 在这个示例中,我们定义了一个命名空间为`com.example.mapper.UserMapper`的mapper文件。在该命名空间中,我们定义了五个操作: - `selectUserById`:根据用户id查询用户信息。 - `selectUserList`:根据条件查询用户列表。 - `insertUser`:新增用户。 - `updateUser`:更新用户信息。 - `deleteUserById`:根据用户id删除用户。 其中,`selectUserList`演示了使用`<where>`和`<if>`标签来动态拼接SQL条件。 在MyBatis中,我们可以通过`SqlSessionFactory`和`SqlSession`来使用mapper.xml中定义的操作。例如: ```java SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml")); SqlSession sqlSession = sqlSessionFactory.openSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); // 查询用户信息 User user = userMapper.selectUserById(1); System.out.println(user); // 查询用户列表 List<User> userList = userMapper.selectUserList("张三", null); System.out.println(userList); // 新增用户 User newUser = new User("李四", 25); userMapper.insertUser(newUser); sqlSession.commit(); // 更新用户信息 newUser.setName("王五"); userMapper.updateUser(newUser); sqlSession.commit(); // 删除用户 userMapper.deleteUserById(newUser.getId()); sqlSession.commit(); ``` 在这个示例中,我们先通过`SqlSessionFactoryBuilder`来构建`SqlSessionFactory`,然后通过`SqlSession`来获取mapper接口的代理实现类。通过代理实现类,我们可以直接调用mapper.xml中定义的方法,并传入适当的参数。最后,在执行完所有操作后,我们需要通过`sqlSession.commit()`来提交事务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值