建设网站要求,张北网站建设公司,海淀做网站设计的公司,甘肃兰州建筑网目录 前言1. 搭建项目2. 基本的CRUD 前言
发现项目框架是MybatisPlus的#xff0c;由于个人使用该框架的CRUD比较少 对此学习过程中#xff0c;从零到有开始搭建学习还是比较重要的#xff0c;感悟会比较多
关于各个类的使用#xff0c;可看如下文章#xff1a;
剖析Ja… 目录 前言1. 搭建项目2. 基本的CRUD 前言
发现项目框架是MybatisPlus的由于个人使用该框架的CRUD比较少 对此学习过程中从零到有开始搭建学习还是比较重要的感悟会比较多
关于各个类的使用可看如下文章
剖析Java中的Entity、service、serviceImpl、Mapper以及Controller层之间的关系代码诠释区分JAVA项目中的ENTITYVODTOBO
1. 搭建项目
为了更好展示 在数据库中设计一张表并且在表格中添加数据数据和表格名称具体看个人实操
其中主键id需要设置自增 其内容具体如下所示 在代码模块中搭建基本的spring项目由于现有的springboot模块比较新不好兼容对此需要对pom文件进行修改
?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/artifactIdversion2.6.15/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.example/groupIdartifactIddemo/artifactIdversion0.0.1-SNAPSHOT/versionnamedemo/namedescriptiondemo/descriptionpropertiesjava.version21/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.3.0/version/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter-test/artifactIdversion2.3.0/versionscopetest/scope/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.3.1/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationimagebuilderpaketobuildpacks/builder-jammy-base:latest/builder/image/configuration/plugin/pluginsresourcesresourcedirectorysrc/main/java/directoryincludesinclude**/*.xml/include/includesfilteringfalse/filtering/resource/resources/build/project并且配置好数据库文件
server.port8081
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver
spring.datasource.urljdbc:mysql://localhost:3306/blade_test?useSSLfalseuseUnicodetruecharacterEncodingutf-8zeroDateTimeBehaviorconvertToNulltransformedBitIsBooleantruetinyInt1isBitfalseallowMultiQueriestrueserverTimezoneGMT%2B8allowPublicKeyRetrievaltrue
spring.datasource.usernameroot
spring.datasource.passwordroot主体的项目文件如下所示 启动类如下所示
package com.example.demo;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;MapperScan(com.example.demo.mapper)
SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}其中User实体类如下所示
package com.example.demo.entity;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;Data
//AllArgsConstructor
//NoArgsConstructor
TableName(test_user)
public class User {TableId(type IdType.AUTO)private int id;private String username;private String password;// 其他字段...
}对应的Mapper类如下所示
package com.example.demo.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;Mapper
public interface UserMapper extends BaseMapperUser {// 这里可以自定义一些查询方法
}其Service类如下所示
package com.example.demo.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.entity.User;public interface UserService extends IServiceUser {// 这里可以自定义一些业务方法
}Serviceimpl类如下所示
package com.example.demo.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.stereotype.Service;Service
public class UserServiceImpl extends ServiceImplUserMapper, User implements UserService {// 这里可以实现自定义的业务方法
}为了方便测试可以写一个Springboot的测试类其包名一定要对应一致
package com.example.demo;import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;RunWith(SpringRunner.class)
SpringBootTest(classes DemoApplication.class)class DemoApplicationTests {AutowiredUserMapper userMapper;AutowiredUserService userService;2. 基本的CRUD
可以再controller中写入方法并测试其接口。也可直接再测试类中输入有可观的输出
类似Controller类中
package com.example.demo.controller;import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;RestController
RequestMapping(/user)
public class UserController {Autowiredprivate UserService userService;Autowiredprivate UserMapper userMapper;GetMapping(/select)public User getUserById() {User user userMapper.selectById(1);return user;}GetMapping(/{id})public User getUserById(PathVariable int id) {return userService.getById(id);}PostMapping(/add)public String addUser(RequestBody User user) {userService.save(user);return User added successfully!;}PutMapping(/update)public String updateUser(RequestBody User user) {userService.updateById(user);return User updated successfully!;}DeleteMapping(/delete/{id})public String deleteUser(PathVariable int id) {userService.removeById(id);return User deleted successfully!;}
}通过接口进行测试具体如下 或者直接再测试类 Testpublic void TestSelectById(){User user userMapper.selectById(1);System.out.println(user);}结果如下: 又比如测试类中的这些CRUD方法诸如其他各位博友可自行尝试 Testpublic void getUserById() {ListUser one userMapper.selectList(Wrappers.UserlambdaQuery().eq(User::getUsername,manong));System.out.println(one);}截图如下 其中service以及mapper都有其各自的方法进行CRUD