springboot+mybatis-plus 数据表字段是关键字的问题解决

项目里有个数据表yy_key_value,字段有key、value,保存一些基本参数数据。

原来使用框架是springmvc+mybatis,sql语句写到xml文件里,包括基本的DML语句(这样不好。。),涉及到key字段时,加了``,如下

select `key`,value from yy_key_value where `key`=?

这样是没问题的(key是mysql里的关键字,直接写会报错)

但最近项目升级,使用了springboot+mybatis-plus框架,可以利用工具生成相关代码 :

public static void main(String[] args) {
    // 代码生成器
    AutoGenerator mpg = new AutoGenerator();

    // 全局配置
    GlobalConfig gc = new GlobalConfig();
    String projectPath = System.getProperty("user.dir") + "/one-code-generator/output";
    gc.setOutputDir(projectPath + "/src/main/java");
    gc.setAuthor(Author);
    gc.setOpen(false);

 基本的DML语句直接引用即可

#service类

public interface IYyKeyValueService extends IService<YyKeyValue> {
     YyKeyValue findValueByKey(String key);
}
@Override
    public YyKeyValue findValueByKey(String key) {
        QueryWrapper<YyKeyValue> wrapper = new QueryWrapper<>();
        wrapper.eq("`key`", key);
//        wrapper.lambda().eq(YyKeyValue::getKey, key);
        return yyKeyValueMapper.selectOne(wrapper);
    }

组装好QueryWrapper参数后,调用mybatis-plus里的BaseMapper的selectOne方法,最终会生成语句

select key,value from `key`='111'

where条件后的key可以通过 QueryWrapper指定没问题,但前面查询出来的字段名这样写会报错

[SQL] select key,value from yy_key_value where `key`='a'

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key,value from yy_key_value where `key`='a'' at line 1

因为是旧项目升级,如果要变更数据库字段名,会有很大的工作量。最后发现,只要在对象javabean里加个注释即可解决问题

 特记录下。还有就是数据表、字段定义不要使用一些关键字~~~~~~~

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot和MyBatis-Plus是现代Java应用开发中的两个流行框架组合,它们一起简化了企业级应用程序的快速搭建。以下是一个基本的Spring Boot + MyBatis-Plus的整体开发流程: 1. **项目初始化**: - 创建一个新的Spring Boot项目(使用Maven或Gradle构建工具)。 - 添加Spring Boot Web、Spring Data JPA和MyBatis-Plus的依赖。 2. **数据库配置**: - 配置数据源(如HikariCP, Druid, 或者Spring Boot内置的DataSource)。 - 定义数据库连接池和JDBC驱动。 3. **实体类映射**: - 创建Java实体类(Entity),它们将对应数据库表结构。 - 使用MyBatis-Plus的Model Generator工具自动生成基础CRUD操作的代码。 4. **Mapper接口生成**: - 通过MyBatis-Plus的全局配置文件(GlobalConfig),指定Mapper接口生成的位置。 5. **Service层编写**: - 实现业务逻辑的服务类(Service),这些类通常会依赖于MyBatis-Plus的Mapper接口进行数据库操作。 6. **Repository接口和实现**: - 如果需要,可以创建Repository接口,继承自MyBatis-Plus的BaseMapper,进一步定制化查询。 7. **Controller层处理**: - 创建RESTful API控制器(Controller),调用Service层的方法,并返回JSON响应给客户端。 8. **配置数据初始化**: - 编写Spring Boot的启动类(Application)中的main方法,可能包含一些数据初始化操作。 9. **测试**: - 使用单元测试(JUnit, TestNG等)确保各个组件正常工作,如Service和Mapper接口的测试。 10. **部署**: - 部署项目到生产环境,如Tomcat, Jetty, 或者云服务器上的Web容器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lamyuu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值