做网站赚钱 知乎,外包平台都有哪些,开网站做什么,怎么做网站的内部链接前言
SpringBoot3.0 开始最低要求 Java 17#xff0c;虽然目前最新的版本为 JDK22#xff0c;但是在官网上看到 JDK23 在今年9月又要发布了#xff0c;感觉这 JDK 也有点太过于给力了 所以我们选择用目前的 LTS 版本 JDK21 就好了#xff0c;不用追求最新的 springboot 版…前言
SpringBoot3.0 开始最低要求 Java 17虽然目前最新的版本为 JDK22但是在官网上看到 JDK23 在今年9月又要发布了感觉这 JDK 也有点太过于给力了 所以我们选择用目前的 LTS 版本 JDK21 就好了不用追求最新的 springboot 版本
从官网的 https://start.spring.io/ 可以看到目前的 SpringBoot 的最新正式版为 3.2.5JAVA版本支持 17、21、22 mybatis-plus 版本
mybatis-plus 针对 springboot3.x 发布了新的依赖库我们要选择带 spring-boot3 的版本 项目整合
项目资源下载
创建项目
JDK 选择 21Java 选择 21 Spring Boot 选择 3.2.5依赖选择 Spring Web 最后点击 Create 创建项目 pom.xml 文件
引入了 mybatis-plus 依赖包还有对应生成器所需的依赖包
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.2.5/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdorg.liurb/groupIdartifactIdSpringboot3-CRUD/artifactIdversion0.0.1-SNAPSHOT/versionnameSpringboot3-CRUD/namedescriptionSpringboot3-CRUD/descriptionpropertiesjava.version21/java.versionmybatis-plus.version3.5.6/mybatis-plus.versionfreemarker.version2.3.32/freemarker.versionmysql-connector-java.version8.4.0/mysql-connector-java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-spring-boot3-starter/artifactIdversion${mybatis-plus.version}/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-generator/artifactIdversion${mybatis-plus.version}/version/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdversion${mysql-connector-java.version}/versionscoperuntime/scope/dependencydependencygroupIdorg.freemarker/groupIdartifactIdfreemarker/artifactIdversion${freemarker.version}/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project生成代码
我们创建一张表 demo_user 进行测试 创建代码生成器
public class CodeGenerator {// 数据库连接配置private static final String JDBC_DRIVER com.mysql.cj.jdbc.Driver;private static final String JDBC_URL jdbc:mysql://192.168.1.31:3307/my_db?useSSLfalse;private static final String JDBC_USER_NAME test_usr;private static final String JDBC_PASSOWRD test_usr#Passw0rd;// 输出目录private static final String MAIN_JAVA_PATH /src/main/java;private static final String MAIN_MAPPER_PATH /src/main/resources/mapper;// 包名和模块名private static final String PACKAGE_NAME org.liurb.springboot3;private static final String MODULE_NAME crud;// 表名多个表使用英文逗号分割private static final String TBL_NAMES demo_user;// 表名的前缀从表生成代码时会去掉前缀private static final String TABLE_PREFIX ;// 生成代码入口main方法public static void main(String[] args) {FastAutoGenerator.create(JDBC_URL, JDBC_USER_NAME, JDBC_PASSOWRD).globalConfig(builder - builder.author(liurb) // 设置作者.outputDir(Paths.get(System.getProperty(user.dir)) MAIN_JAVA_PATH) // 输出路径.commentDate(yyyy-MM-dd).disableOpenDir() // 禁止打开输出目录).packageConfig(builder - builder.parent(PACKAGE_NAME) // 设置需要生成的表名.moduleName(MODULE_NAME) // 设置过滤表前缀.pathInfo(Collections.singletonMap(OutputFile.xml, Paths.get(System.getProperty(user.dir)) MAIN_MAPPER_PATH)) // 设置mapperXml生成路径).strategyConfig(builder - builder.addInclude(TBL_NAMES) // 设置需要生成的表名.addTablePrefix(TABLE_PREFIX) // 设置过滤表前缀.entityBuilder() // 设置实体类.enableFileOverride() // 实体类覆盖.enableTableFieldAnnotation() // 属性加上说明注释.enableLombok() // 使用lombok.serviceBuilder() // 设置服务类.formatServiceFileName(%sService) // 格式化service类).templateEngine(new FreemarkerTemplateEngine()).execute();}}
运行生成 demo_user 表的对应代码 配置数据库链接
spring:application:name: Springboot3-CRUD#配置数据源datasource:url: jdbc:mysql://192.168.1.31:3307/my_db?useSSLfalseuseUnicodetruecharacterEncodingutf-8username: test_usrpassword: test_usr#Passw0rddriver-class-name: com.mysql.cj.jdbc.Driverhikari:minimum-idle: 5maximum-pool-size: 10max-lifetime: 1800000idle-timeout: 180000connection-timeout: 30000 配置 MapperScan 注解
SpringBootApplication
MapperScan(org.liurb.**.mapper) // mapper 类路径
public class Springboot3CrudApplication {public static void main(String[] args) {SpringApplication.run(Springboot3CrudApplication.class, args);}} 测试用例
我们通过单元测试保存一条记录
SpringBootTest
class Springboot3CrudApplicationTests {ResourceDemoUserService demoUserService;Testvoid contextLoads() {DemoUser record new DemoUser();record.setName(李四);record.setAge(18);demoUserService.save(record);}}
记录保存成功 创建查询接口
在控制层加入查询接口根据 用户id 查询对应的记录
RestController
RequestMapping(/crud/demoUser)
public class DemoUserController {ResourceDemoUserService demoUserService;GetMapping(/{userId})public DemoUser user(PathVariable Long userId) {return demoUserService.getById(userId);}}
请求返回