• Java项目实战-查询用户列表接口服务搭建


    概述

    这里通过设计一个对用户进行增删改查的接口服务,来练习java项目工程化、Spring框架、Mybatis框架的实际应用

    本项目目录

    上一节初始化项目,已经controller层了,下方新建包:pojo、mapper、service

    pojo:所有的实体类都放这里

    mapper:所有的mapper接口都放这里(可以理解为数据访问层)

    service:具体的业务逻辑处理写这里(curd)

    创建实体类
    1. package com.mxf.monkey.pojo;
    2. import lombok.Data;
    3. import lombok.AllArgsConstructor;
    4. import lombok.NoArgsConstructor;
    5. @Data
    6. @AllArgsConstructor
    7. @NoArgsConstructor
    8. public class User {
    9. /*
    10. * 定义了一个用户实体类
    11. * 包含getter、setter等构造方法
    12. * */
    13. private int user_id;
    14. private String user_name;
    15. private String user_sex;
    16. }
    根据实体类创建和初始化数据

    定义一个查询用户列表的mapper接口
    1. package com.mxf.monkey.mapper;
    2. import com.mxf.monkey.pojo.User;
    3. import org.apache.ibatis.annotations.Mapper;
    4. import org.springframework.stereotype.Repository;
    5. import java.util.List;
    6. @Repository
    7. @Mapper
    8. public interface UserMapper {
    9. //定义了一个查询用户列表的方法,返回list类型
    10. ListqueryUserList();
    11. }

    写mapper接口对应的mapper映射文件

    1. "1.0" encoding="UTF-8" ?>
    2. mapper
    3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    5. <mapper namespace="com.mxf.monkey.mapper.UserMapper">
    6. <select id="queryUserList" resultType="User">
    7. select * from monkey.monkey_user
    8. select>
    9. mapper>
    pom文件中更新mybatis依赖

    其他的依赖如sping、mysql等在初始化项目时已经建了

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0</modelVersion>
    5. <parent>
    6. <groupId>org.springframework.boot</groupId>
    7. <artifactId>spring-boot-starter-parent</artifactId>
    8. <version>2.7.16</version>
    9. <relativePath/> <!-- lookup parent from repository -->
    10. </parent>
    11. <groupId>com.mxf</groupId>
    12. <artifactId>monkey</artifactId>
    13. <version>0.0.1-SNAPSHOT</version>
    14. <name>monkey</name>
    15. <description>Demo project for Spring Boot</description>
    16. <properties>
    17. <java.version>1.8</java.version>
    18. </properties>
    19. <dependencies>
    20. <dependency>
    21. <groupId>org.springframework.boot</groupId>
    22. <artifactId>spring-boot-starter-thymeleaf</artifactId>
    23. </dependency>
    24. <dependency>
    25. <groupId>org.springframework.boot</groupId>
    26. <artifactId>spring-boot-starter-web</artifactId>
    27. </dependency>
    28. <dependency>
    29. <groupId>org.springframework.boot</groupId>
    30. <artifactId>spring-boot-devtools</artifactId>
    31. <scope>runtime</scope>
    32. <optional>true</optional>
    33. </dependency>
    34. <!--MyBatis-Spring依赖-->
    35. <dependency>
    36. <groupId>org.mybatis.spring.boot</groupId>
    37. <artifactId>mybatis-spring-boot-starter</artifactId>
    38. <version>2.1.1</version>
    39. </dependency>
    40. <dependency>
    41. <groupId>org.mybatis</groupId>
    42. <artifactId>mybatis</artifactId>
    43. <version>3.5.7</version>
    44. </dependency>
    45. <!--数据库连接依赖-->
    46. <dependency>
    47. <groupId>com.mysql</groupId>
    48. <artifactId>mysql-connector-j</artifactId>
    49. <scope>runtime</scope>
    50. </dependency>
    51. <dependency>
    52. <groupId>org.projectlombok</groupId>
    53. <artifactId>lombok</artifactId>
    54. </dependency>
    55. <dependency>
    56. <groupId>org.springframework.boot</groupId>
    57. <artifactId>spring-boot-starter-test</artifactId>
    58. <scope>test</scope>
    59. </dependency>
    60. <dependency>
    61. <groupId>org.xmlunit</groupId>
    62. <artifactId>xmlunit-core</artifactId>
    63. </dependency>
    64. </dependencies>
    65. <build>
    66. <plugins>
    67. <plugin>
    68. <groupId>org.springframework.boot</groupId>
    69. <artifactId>spring-boot-maven-plugin</artifactId>
    70. </plugin>
    71. </plugins>
    72. </build>
    73. </project>
    mybatis映射配置及Spring数据库配置

    上边定义了mapper接口和mapper映射文件,那么怎么把2个联系起来,就需要通过在application.yml中进行配置

    1. server:
    2. port: 8080
    3. spring:
    4. datasource:
    5. url: jdbc:mysql://localhost:3306/你的表名?characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    6. username: 数据库账号
    7. password: 数据库密码
    8. driver-class-name: com.mysql.cj.jdbc.Driver
    9. mybatis:
    10. type-aliases-package: com.mxf.monkey.pojo
    11. mapper-locations: classpath:mybatis/mapper/*.xml
    创建service服务
    1. package com.mxf.monkey.service;
    2. import com.mxf.monkey.mapper.UserMapper;
    3. import com.mxf.monkey.pojo.User;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.stereotype.Service;
    6. import java.util.List;
    7. @Service
    8. public class UserService {
    9. @Autowired
    10. UserMapper userMapper;
    11. public List queryUserList(){
    12. //导入UserMapper中的queryUserList方法,并调用
    13. return userMapper.queryUserList();
    14. }
    15. }
    创建controller对应接口
    1. package com.mxf.monkey.controller;
    2. import com.mxf.monkey.pojo.User;
    3. import com.mxf.monkey.service.UserService;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.web.bind.annotation.GetMapping;
    6. import org.springframework.web.bind.annotation.RestController;
    7. import java.util.List;
    8. @RestController
    9. public class UserController {
    10. @Autowired
    11. UserService userService;
    12. @GetMapping("/queryUserList")
    13. public List queryUserList() {
    14. return userService.queryUserList();
    15. }
    16. }
    运行服务

    测试接口

  • 相关阅读:
    CSDN2022总排名前十统计
    【8.7】代码源 - 【抽卡】【LCM与GCD】
    后端程序员入门react笔记(八)-redux的使用和项目搭建
    实现 DirectShow 虚拟 Camera 驱动
    Kotlin扩展函数和扩展属性 使用及优化场景分析
    MVC设计模式
    数字图像处理 --- 图像的HighBit与LowBit
    微信小程序食疗微信小程序的设计与实现
    阿桂天山的技术小结:Flask对Ztree树节点搜索定位
    【斯坦福大学公开课CS224W——图机器学习】三、节点和图嵌入
  • 原文地址:https://blog.csdn.net/Mahumd/article/details/133318555