Spring Cloud + MyBatis Plus + GraphQL 完整示例

为了创建一个完整的Spring Cloud应用,结合MyBatis-Plus和GraphQL,构建一个简单的微服务项目。这个示例将包括以下几个部分:

- 创建Spring Boot子项目。
- 配置MyBatis-Plus以进行数据库操作。
- 集成GraphQL以提供查询接口。
- 我们将假设有一个简单的实体类Person,并为其创建CRUD操作和GraphQL查询。

1、创建Spring Boot子项目

1.1 配置POM,添加必要的依赖

  • 首先,我们需要创建一个新的Spring Boot项目,并添加必要的依赖项。以下是Maven pom.xml配置文件的内容:
          <!--graphql-->
        <dependency>
            <groupId>com.graphql-java-kickstart</groupId>
            <artifactId>graphql-spring-boot-starter</artifactId>
            <version>11.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.graphql-java-kickstart</groupId>
            <artifactId>graphiql-spring-boot-starter</artifactId>
            <version>11.0.0</version>
        </dependency>
          <!--mybatisPlus&mysql-->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.2.0</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.4.1</version>
        </dependency>

1.2 配置MyBatis-Plus

  • 接下来,我们配置MyBatis-Plus来处理我们的数据访问层。首先,定义一个Person实体类:
package com.springboot.demo.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;


/**
 * 用户表
 *
 * @author water
 * @version 1.0.0
 * @date 2024-12-04 17:45
 */
@Data
@TableName("demo_person")
public class Person {
   

    private Long id;

    private String name;

    private int age;

}

  • 然后,创建对应的Mapper接口:
package com.springboot.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.springboot.demo.domain.
### RuoYi SpringCloud 集成 MyBatis Plus 示例教程 #### 一、引入依赖 为了使RuoYi Spring Cloud项目能够顺利集成MyBatis Plus,在项目的`pom.xml`文件中添加如下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> ``` 此版本号需依据实际需求调整,确保与当前使用的Spring Boot版本兼容[^1]。 #### 二、配置数据源 编辑`application.yml`文件来设置数据库连接参数以及开启分页插件功能。这一步骤对于任何基于Spring Boot的应用程序来说都是必要的,尤其是在集成了像MyBatis的持久层框架之后[^2]。 ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8 username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl global-config: db-config: id-type: auto mapper-locations: classpath*:mapper/*.xml ``` 以上配置不仅指定了MySQL作为目标数据库及其访问凭证,还启用了日志记录以便于调试,并设置了全局ID生成策略为自动增长模式。最后通过`mapper-locations`属性告知MyBatis去哪里寻找映射器XML文件。 #### 三、创建实体类和服务接口 假设要管理用户表,则先定义对应的JavaBean——User.java;接着编写Service层逻辑,即UserService.java。值得注意的是,得益于MyBatis Plus提供的基类支持,很多CRUD方法已经预先实现了,开发者只需关注业务特有部分即可。 ```java // User.java @Data public class User { private Long id; private String name; @TableField(fill = FieldFill.INSERT_UPDATE) private Date createTime; } // UserService.java @Service public interface IUserService extends IService<User> { } ``` 上述代码片段展示了如何利用Lombok简化getter/setter书写工作量的同时,借助@TableField注解标注字段填充规则。而IUserService继承自IService接口意味着可以直接调用诸如save()、removeById()等便捷API完成基本的数据操作。 #### 四、使用自定义查询注解优化开发体验 考虑到复杂查询场景下的灵活性考量,可以考虑采用由RuoYi Vue Pro团队贡献的一系列增强型注解[@QueryCriteria, @Query, @Criteria]来进行条件组合构建,从而减少手写SQL带来的风险并提高编码效率[^3]。 如: ```java @Select("SELECT * FROM user WHERE ${ew.customSqlSegment}") @Where(value="name like #{searchName}", condition="${condition} LIKE") List<User> selectUsers(@Param("searchName")String searchName,@Param("condition")String condition); ``` 该子说明了怎混合运用原生SQL片断与动态拼接机制达成灵活多变的效果。不过需要注意的是,这种方式虽然强大但也容易引发潜在的安全隐患(如SQL注入攻击),因此务必谨慎评估应用场景后再做决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值