下面我接着上一课的内容,开始学习后端的代码
现在新建的springboot项目的pom.xm文件中,新增几个jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
<!--swagger依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--swagger ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
</dependencies>
application.properties
server.port=8089
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimeZone=UTC
spring.datasource.username=root
spring.datasource.password=mysql123
#日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#配置别名
mybatis-plus.type-aliases-package=com.shrimpking.pojo
#开启逻辑删除,标识字段
mybatis-plus.global-config.db-config.logic-delete-field=is_deleted
#删除
mybatis-plus.global-config.db-config.logic-delete-value=1
#未删除
mybatis-plus.global-config.db-config.logic-not-delete-value=0
#swagger
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
然后按照controller,service,mapper,pojo的几层,新建包
先搞个测试用的类
TestOne.java
package com.shrimpking.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* Created by IntelliJ IDEA.
*
* @Author : Shrimpking
* @create 2023/11/9 20:51
*/
@Data
@AllArgsConstructor
public class TestOne
{
private int id;
private String name;
private String sex;
private String phone;
}
在新建一个TestController的包
package com.shrimpking.controller;
import com.shrimpking.pojo.TestOne;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by IntelliJ IDEA.
*
* @Author : Shrimpking
* @create 2023/11/9 20:45
*/
@RestController
@RequestMapping("/test")
public class TestController
{
@RequestMapping(value = "/start",method = RequestMethod.GET)
public String start(){
return "这是你的第一个springboot工程项目!已经启动!";
//http://localhost:8089/test/start
}
@GetMapping("/getOne")
public TestOne getTestOne(){
return new TestOne(1,"tom","男","13000000000");
//http://localhost:8089/test/getOne
//{"id":1,"name":"tom","sex":"男","phone":"13000000000"}
}
}
测试如下图:
接着我们开始各包建立对应的处理类
pojo
user.java
package com.shrimpking.pojo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 用户表
* </p>
*
* @author shrimpking
* @since 2023-11-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("an_user")
@ApiModel(value="User对象", description="用户表")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键id")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "密码")
private String password;
@ApiModelProperty(value = "年龄")
private Integer age;
@ApiModelProperty(value = "性别")
private String sex;
@ApiModelProperty(value = "电话")
private String phone;
}
mapper
UserMapper.java
package com.shrimpking.mapper;
import com.shrimpking.pojo.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* <p>
* 用户表 Mapper 接口
* </p>
*
* @author shrimpking
* @since 2023-11-09
*/
public interface UserMapper extends BaseMapper<User> {
/**
* 基于注解的方式
* @return
*/
@Select("select * from an_user")
List<User> getUsers();
/**
* 基于MapperXml的方式
* @return
*/
List<User> getAllUsers();
}
Mapperxml
UserMapper.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.shrimpking.mapper.UserMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.shrimpking.pojo.User">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="password" property="password" />
<result column="age" property="age" />
<result column="sex" property="sex" />
<result column="phone" property="phone" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, name, password, age, sex, phone
</sql>
<!-- 基于MapperXml的方式 -->
<select id="getAllUsers" resultType="com.shrimpking.pojo.User">
select <include refid="Base_Column_List"/> from an_user
</select>
</mapper>
service
UserService.java
package com.shrimpking.service;
import com.shrimpking.pojo.User;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 用户表 服务类
* </p>
*
* @author shrimpking
* @since 2023-11-09
*/
public interface UserService extends IService<User> {
/**
* 基础注解的方式
* @return
*/
List<User> getUsers();
/**
* 基于MapperXml的方式
* @return
*/
List<User> getAllUsers();
}
serviceImpl
UserServiceImpl.java
package com.shrimpking.service.impl;
import com.shrimpking.pojo.User;
import com.shrimpking.mapper.UserMapper;
import com.shrimpking.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 用户表 服务实现类
* </p>
*
* @author shrimpking
* @since 2023-11-09
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Autowired
private UserMapper userMapper;
/**
* 基于注解的方式
* @return
*/
@Override
public List<User> getUsers()
{
return this.userMapper.getUsers();
}
/**
* 基于MapperXml的方式
* @return
*/
@Override
public List<User> getAllUsers()
{
return this.userMapper.getAllUsers();
}
}
controller
UserController.java
package com.shrimpking.controller;
import com.shrimpking.pojo.User;
import com.shrimpking.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 用户表 前端控制器
* </p>
*
* @author shrimpking
* @since 2023-11-09
*/
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 3基于mybatisplus的方式
* @return
*/
@GetMapping("/getList")
public List<User> getUserList(){
return this.userService.list();
//http://localhost:8089/user/getList
}
/**
* 2基于注解的方式
*
* @return
*/
@GetMapping("/getUsers")
public List<User> getUsers(){
return this.userService.getUsers();
//http://localhost:8089/user/getUsers
//[{"id":1,"name":"zhangsan","password":"1234","age":33,"sex":"男","phone":"13300000000"},
// {"id":2,"name":"lisi","password":"1234","age":13,"sex":"女","phone":"13400000000"}]
}
/**
* 1基于MapperXml的方式
* @return
*/
@GetMapping("/getAll")
public List<User> getAllUsers(){
return this.userService.getAllUsers();
//http://localhost:8089/user/getAll
//[{"id":1,"name":"zhangsan","password":"1234","age":33,"sex":"男","phone":"13300000000"},
// {"id":2,"name":"lisi","password":"1234","age":13,"sex":"女","phone":"13400000000"}]
}
}
启动类
package com.shrimpking;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.shrimpking.mapper")
public class SpringbootVueTest31Application
{
public static void main(String[] args)
{
SpringApplication.run(SpringbootVueTest31Application.class, args);
}
}
分别测试,如下