当前位置: 首页 > news >正文

Spring Boot与MyBatis的集成应用

Spring Boot与MyBatis的集成应用

大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来聊聊Spring Boot与MyBatis的集成应用。MyBatis是一款优秀的持久层框架,它消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作。通过与Spring Boot的集成,可以更简洁、高效地进行数据库操作。本文将详细介绍如何在Spring Boot项目中集成MyBatis。

一、创建Spring Boot项目

首先,我们需要创建一个Spring Boot项目,可以通过Spring Initializr来快速创建。在项目创建过程中,选择以下依赖:

  • Spring Web
  • MyBatis Framework
  • MySQL Driver

项目创建完成后,我们需要进行一些基础配置。

二、配置数据库连接

application.properties文件中添加数据库连接信息:

spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Drivermybatis.type-aliases-package=cn.juwatech.entity
mybatis.mapper-locations=classpath:mapper/*.xml

三、创建数据库实体类

接下来,我们创建一个数据库实体类。例如,一个简单的用户实体类:

package cn.juwatech.entity;public class User {private Long id;private String username;private String password;// getters and setterspublic Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

四、创建MyBatis Mapper接口

接下来,我们创建一个Mapper接口,并定义数据库操作方法。Mapper接口与MyBatis映射文件对应:

package cn.juwatech.mapper;import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import cn.juwatech.entity.User;import java.util.List;@Mapper
public interface UserMapper {@Select("SELECT * FROM users")List<User> findAll();User findById(Long id);void insert(User user);void update(User user);void delete(Long id);
}

五、创建MyBatis映射文件

resources/mapper目录下创建对应的XML映射文件UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.juwatech.mapper.UserMapper"><select id="findById" resultType="cn.juwatech.entity.User">SELECT * FROM users WHERE id = #{id}</select><insert id="insert">INSERT INTO users (username, password) VALUES (#{username}, #{password})</insert><update id="update">UPDATE users SET username = #{username}, password = #{password} WHERE id = #{id}</update><delete id="delete">DELETE FROM users WHERE id = #{id}</delete></mapper>

六、创建Service层

在Service层中,我们调用Mapper接口的方法,实现业务逻辑:

package cn.juwatech.service;import cn.juwatech.entity.User;
import cn.juwatech.mapper.UserMapper;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserService {@Autowiredprivate UserMapper userMapper;public List<User> findAll() {return userMapper.findAll();}public User findById(Long id) {return userMapper.findById(id);}public void insert(User user) {userMapper.insert(user);}public void update(User user) {userMapper.update(user);}public void delete(Long id) {userMapper.delete(id);}
}

七、创建Controller层

最后,在Controller层中,我们通过Service层调用业务逻辑,处理HTTP请求:

package cn.juwatech.controller;import cn.juwatech.entity.User;
import cn.juwatech.service.UserService;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@RestController
@RequestMapping("/users")
public class UserController {@Autowiredprivate UserService userService;@GetMappingpublic List<User> findAll() {return userService.findAll();}@GetMapping("/{id}")public User findById(@PathVariable Long id) {return userService.findById(id);}@PostMappingpublic void insert(@RequestBody User user) {userService.insert(user);}@PutMapping("/{id}")public void update(@PathVariable Long id, @RequestBody User user) {user.setId(id);userService.update(user);}@DeleteMapping("/{id}")public void delete(@PathVariable Long id) {userService.delete(id);}
}

八、总结

通过上述步骤,我们已经完成了Spring Boot与MyBatis的集成应用。从数据库配置、实体类创建、Mapper接口定义到Service层和Controller层的实现,我们完成了一个简单的CRUD示例。

http://www.lryc.cn/news/389843.html

相关文章:

  • 在昇腾服务器上使用llama-factory对baichuan2-13b模型进行lora微调
  • Kafka 管理TCP连接
  • electron教程(一)创建项目
  • 如何在Oracle、MySQL、PostgreSQL上终止会话或取消SQL查询
  • 3、FTL基本工作过程
  • 微信小程序的跳转页面
  • 深入理解 Java 中的线程间通信:`wait()`, `notify()`, `notifyAll()`
  • 23种设计模式【创建型模式】详细介绍之【单例模式】
  • 某汽车配件制造公司任职资格体系项目成功案例纪实
  • 【Linux】生物信息学常用基本命令
  • React Native V0.74 — 稳定版已发布
  • Python面试宝典第4题:环形链表
  • Kubernetes (K8s) 底层原理
  • 解析Kotlin中的委托(包括类委托,属性委托)【笔记摘要】
  • vue3+ts+uniapp+vite+pinia项目配置
  • 大数据开发语言 Scala(四):面向对象编程
  • C++ //练习 14.31 我们的StrBlobPtr类没有定义拷贝构造函数、赋值运算符及析构函数,为什么?
  • 通配符和正则表达式之间的关系
  • GY-30光照传感器软件I2C方式驱动代码,基于STM32Cube
  • 双相元编程:一种新语言设计方法
  • 基于SpringBoot校园外卖配送系统设计和实现(源码+LW+调试文档+讲解等)
  • 茗鹤APS高级计划排程系统,在集团多工厂协同生产下的应用
  • 分享六款免费u盘数据恢复工具,U盘恢复工具集合【工具篇】
  • Linux 的启动流程
  • 思维导图插件--jsMind的使用
  • mac上使用finder时候,显示隐藏的文件或者文件夹
  • 泰雷茲具有首个通过FIPS 140-3 三级认证的HSMs
  • 美术馆预约小程序的设计
  • 序列化Serializable
  • 编写静态库