使用Spring Boot实现操作数据库的接口的过程

作者:ouyangsong_pass_fail 时间:2024-01-25 02:02:49 

一、Spring Boot原理

用户从页面前端,也就是我们所说的 view 层进行查询访问,进入到 controller 层找到对应的接口,接 着 controller 进行对 service 层进行业务功能的调用,service 要进入 dao 层查询数据,dao 层调用 mapper.xml 文件生成 sql 语句到数据库中进行查询

使用Spring Boot实现操作数据库的接口的过程

二、实现过程

2.1、准备数据库user表插入四条数据

使用Spring Boot实现操作数据库的接口的过程

2.2、model下创建一个User类

与数据库的字段一一对应


@Getter @Setter
public class User {
   private int id;
   private String username;
   private String password;
   private int age;
}

2.3、dao下创建一个UserDao接口

@Repository注解修饰哪个类,则表明这个类具有对对象进行CRUD(增删改查)的功能


@Repository
public interface UserDao {
   public User getUserById(@Param("id") int id);
   public List<User> getUserByAge(@Param("age") int age);
   public List<User> getUserByName(@Param("username") String username);
   public int insertUser(@RequestBody User user);

}

通过UserMapping.xml配置文件实现UserDao接口


<?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.example.demo.dao.UserDao">
   <select id="getUserById" resultType="User">
       select * from `user` where id=#{id}
   </select>
   <select id="getUserByAge" resultType="User">
       select * from `user` where age=#{age}
   </select>
   <select id="getUserByName" resultType="User">
       select * from `user` where username like concat('%',#{username},'%')
   </select>

<insert id="insertUser" parameterType="User">
       <selectKey keyProperty="id" order="AFTER" resultType="int">
           SELECT LAST_INSERT_ID()
       </selectKey>
       insert into user (username, password, age)
       values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER})
   </insert>
</mapper>

2.4、Service下创建一个UserService接口


public interface UserService {
   public User queryUserById(int id);
   public List<User> queryUserByAge(int age);
   public List<User> queryUserByName(String username);
   public int insertUser(User user);
}

再创建一个UserServiceImpl实现UserService


@Service
public class UserSeviceImpl implements UserService {
   @Autowired
   private UserDao userDao;

@Override
   public User queryUserById(int id) {
       return userDao.getUserById(id);
   }

@Override
   public List<User> queryUserByAge(int age) {
       return userDao.getUserByAge(age);
   }

@Override
   public List<User> queryUserByName(String username) {
       return userDao.getUserByName(username);
   }

@Override
   public int insertUser(User user) {
       return userDao.insertUser(user);
   }
}

2.5、controller下创建一个UserController

@GetMapping是代表该查询接口用的是get方式
@RequestMapping(value="/insert",method = RequestMethod.POST)代表该插入接口用post方式


@RestController
public class UserController {

@Autowired
   private UserService userService;

@GetMapping("/userid")
   public User getUserById(@RequestParam("id") int id){
       return userService.queryUserById(id);
   }

@GetMapping("/username")
   public List<User> getUserByUsername(@RequestParam("username") String username){
       return userService.queryUserByName(username);
   }

@RequestMapping(value="/insert",method = RequestMethod.POST)
   public User insertUser(@RequestBody User user){
       int x = userService.insertUser(user);
       return user;
   }
}

2.6、application.yml文件连接数据库


server:
 port: 8080
spring:
 datasource:
   driver-class-name: com.mysql.cj.jdbc.Driver
   url: jdbc:mysql://localhost:3306/testingdev9?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
   username: root
   password: 123456
mybatis:
 mapper-locations:
   - classpath:mapper/*.xml
   - classpath*:com/**/mapper/*.xml
 type-aliases-package: com.example.demo.model

2.7、启动DemoApplication文件

出现Started DemoApplication代表启动成功了

使用Spring Boot实现操作数据库的接口的过程

2.8、使用postman调用接口

如下图根据id查询

使用Spring Boot实现操作数据库的接口的过程

如下图插入数据

使用Spring Boot实现操作数据库的接口的过程

可以看到数据库多了一条数据

使用Spring Boot实现操作数据库的接口的过程

来源:https://blog.csdn.net/qq_39537481/article/details/118884915

标签:Spring,Boot,数据库,接口
0
投稿

猜你喜欢

  • Go语言使用HTTP包创建WEB服务器的方法

    2024-02-19 22:33:41
  • Python利用多线程枚举实现获取wifi信息

    2021-12-05 03:58:12
  • 详细解读Python中的__init__()方法

    2023-03-25 17:10:27
  • textarea 在浏览器中固定大小和禁止拖动的实现方法

    2024-04-19 10:17:41
  • 使用TensorFlow实现SVM

    2023-04-27 00:44:49
  • 用一个案例讲解SQL Server数据库恢复

    2008-11-28 14:17:00
  • SQL Server索引超出了数组界限的解决方案

    2024-01-12 19:14:41
  • python文件操作之批量修改文件后缀名的方法

    2023-05-10 15:57:06
  • 安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法

    2023-09-09 04:37:39
  • python 搭建简单的http server,可直接post文件的实例

    2021-08-25 15:07:39
  • 原生js实现移动小球(碰撞检测)

    2024-04-19 09:56:01
  • Python基础之函数嵌套知识总结

    2021-12-07 18:54:09
  • python保存数据到本地文件的方法

    2023-10-01 20:59:53
  • Python random模块(获取随机数)常用方法和使用例子

    2023-12-27 18:09:06
  • Numpy数组array和矩阵matrix转换方法

    2021-06-25 06:17:26
  • vue+element表格实现多层数据的嵌套方式

    2024-05-28 16:10:56
  • 用Python将mysql数据导出成json的方法

    2024-01-26 09:08:58
  • 使用Python发送各种形式的邮件的方法汇总

    2022-12-21 15:24:46
  • Django中使用haystack+whoosh实现搜索功能

    2021-10-12 23:54:14
  • Python读取文件内容为字符串的方法(多种方法详解)

    2023-05-18 18:16:27
  • asp之家 网络编程 m.aspxhome.com