springboot框架中如何整合mybatis框架思路详解

在Spring Boot框架中整合MyBatis框架,需要经过以下主要步骤:

  1. 添加依赖:在pom.xml中添加Spring Boot和MyBatis相关的依赖。需要添加spring-boot-starter-webmybatis-spring-boot-startermysql-connector-java等依赖。
<dependencies>
    <!-- Spring Boot Web Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- MyBatis Starter -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.4</version>
    </dependency>
    <!-- MySQL Connector/J -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>
</dependencies>
  1. 配置数据源:在application.properties配置文件中,配置MySQL的连接信息。其中,spring.datasource.driver-class-name指定数据源的驱动类,spring.datasource.url指定数据库的URL,spring.datasource.usernamespring.datasource.password指定数据库的用户名和密码。
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
  1. 创建实体类:创建JavaBean,用于映射数据库表,必须添加@Data@AllArgsConstructor注解。
@Data
@AllArgsConstructor
public class User {
    private Integer id;
    private String name;
    private Integer age;
}
  1. 创建Mapper接口:在src/main/java目录下新建包com.example.demo.mapper,创建一个Mapper接口UserMapper,使用注解@Mapper标记这个接口是一个Mapper接口,并编写相关方法。
@Mapper
public interface UserMapper {
    List<User> findAll();
    User findById(Integer id);
    void saveUser(User user);
    void updateUser(User user);
    void deleteUser(Integer id);
}
  1. 创建Mapper.xml文件:在src/main/resources目录下新建包mapper,创建一个Mapper.xml文件UserMapper.xml,编写SQL语句,实现Mapper接口中的方法。
<?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.mapper.UserMapper">

  <resultMap id="BaseResultMap" type="com.example.demo.entity.User">
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="name" property="name" jdbcType="VARCHAR" />
    <result column="age" property="age" jdbcType="INTEGER" />
  </resultMap>

  <select id="findAll" resultMap="BaseResultMap">
    select * from user
  </select>

  <select id="findById" resultMap="BaseResultMap">
    select * from user where id=#{id}
  </select>

  <insert id="saveUser">
    insert into user(name, age) values(#{name}, #{age})
  </insert>

  <update id="updateUser">
    update user set name=#{name}, age=#{age} where id=#{id}
  </update>

  <delete id="deleteUser">
    delete from user where id=#{id}
  </delete>

</mapper>
  1. 实现Service层:在src/main/java目录下新建包com.example.demo.service,创建一个Service接口UserService,以及一个实现类UserServiceImpl。在UserServiceImpl中,可以注入UserMapper接口,并调用Mapper方法。
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }

    @Override
    public User findById(Integer id) {
        return userMapper.findById(id);
    }

    @Override
    public void saveUser(User user) {
        userMapper.saveUser(user);
    }

    @Override
    public void updateUser(User user) {
        userMapper.updateUser(user);
    }

    @Override
    public void deleteUser(Integer id) {
        userMapper.deleteUser(id);
    }
}
  1. 编写Controller:在src/main/java目录下新建包com.example.demo.controller,创建一个Controller类UserController,注入UserService实例,并编写相关接口方法。
@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/")
    public List<User> findAll() {
        return userService.findAll();
    }

    @GetMapping("/{id}")
    public User findById(@PathVariable Integer id) {
        return userService.findById(id);
    }

    @PostMapping("/")
    public String saveUser(@RequestBody User user) {
        userService.saveUser(user);
        return "success";
    }

    @PutMapping("/")
    public String updateUser(@RequestBody User user) {
        userService.updateUser(user);
        return "success";
    }

    @DeleteMapping("/{id}")
    public String deleteUser(@PathVariable Integer id) {
        userService.deleteUser(id);
        return "success";
    }
}
  1. 运行程序:执行mvn clean package命令,然后执行java -jar target/demo-0.0.1-SNAPSHOT.jar命令,启动Spring Boot应用。在浏览器或Postman中访问http://localhost:8080/api/users/,即可测试API是否正常。

示例1:查询用户列表接口

创建一个Spring Boot应用,并在pom.xml中添加以下依赖。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.23</version>
</dependency>

创建一个User实体类。

@Data
@AllArgsConstructor
public class User {
    private Integer id;
    private String name;
    private Integer age;
}

创建一个UserMapper接口。

@Mapper
public interface UserMapper {
    List<User> findAll();
}

创建一个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.example.demo.mapper.UserMapper">

  <resultMap id="BaseResultMap" type="com.example.demo.entity.User">
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="name" property="name" jdbcType="VARCHAR" />
    <result column="age" property="age" jdbcType="INTEGER" />
  </resultMap>

  <select id="findAll" resultMap="BaseResultMap">
    select * from user
  </select>

</mapper>

创建一个UserService接口。

public interface UserService {
    List<User> findAll();
}

创建一个UserServiceImpl实现该接口。

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }
}

创建一个UserController控制器类。

@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/")
    public List<User> findAll() {
        return userService.findAll();
    }
}

运行程序,并在浏览器或Postman中访问http://localhost:8080/api/users/,即可返回所有用户的信息。

示例2:新增用户接口

创建一个Spring Boot应用,并在pom.xml中添加以下依赖。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.23</version>
</dependency>

创建一个User实体类。

@Data
@AllArgsConstructor
public class User {
    private Integer id;
    private String name;
    private Integer age;
}

创建一个UserMapper接口。

@Mapper
public interface UserMapper {
    void saveUser(User user);
}

创建一个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.example.demo.mapper.UserMapper">

  <insert id="saveUser">
    insert into user(name, age) values(#{name}, #{age})
  </insert>

</mapper>

创建一个UserService接口。

public interface UserService {
    void saveUser(User user);
}

创建一个UserServiceImpl实现该接口。

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public void saveUser(User user) {
        userMapper.saveUser(user);
    }
}

创建一个UserController控制器类。

@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/")
    public String saveUser(@RequestBody User user) {
        userService.saveUser(user);
        return "success";
    }
}

运行程序,并在浏览器或Postman中发送Post请求,访问http://localhost:8080/api/users/,请求体为以下JSON格式。

{
  "name": "张三",
  "age": 20
}

即可成功创建一个用户,并返回“success”。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot框架中如何整合mybatis框架思路详解 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 学习Java模拟实现百度文档在线浏览

    学习Java模拟实现百度文档在线浏览的攻略大概需要以下步骤。 准备工作 首先,需要了解Java Web开发相关的知识,包括Servlet、JSP、HTML、CSS、JavaScript等。如果不熟悉这些技术,可以先从基础入手。 在掌握了Java Web开发相关知识后,需要了解如何使用Java实现Web应用程序,例如使用Servlet容器Tomcat,了解如何…

    Java 2023年5月19日
    00
  • 什么是Java代码优化?

    Java代码优化指的是通过改进代码的设计、实现和运行等方面,使得Java程序的性能更高、消耗的资源更少,同时保证程序的正确性和可维护性。下面给出一个Java代码优化的使用攻略。 步骤一:明确优化目标 优化目标应该具体、明确、可衡量以及符合业务需求。可能的优化目标包括: 提高程序的运行速度,减少响应时间。 降低程序的系统资源消耗,例如CPU占用率、内存占用等。…

    Java 2023年5月11日
    00
  • java实现银行管理系统

    Java实现银行管理系统攻略 1. 系统需求分析 在进行银行管理系统的开发前,我们需要对系统的需求进行分析。一般来说,银行管理系统需要包含以下功能模块: 用户管理:包括客户注册、登录、修改个人信息等功能。 账户管理:包括账户开户、查询余额、转账、存取款等功能。 交易管理:包括交易流水记录、账户冻结与解冻等功能。 系统管理:包括管理员登录、账号管理、数据备份等…

    Java 2023年5月19日
    00
  • Spring Boot 集成JWT实现前后端认证的示例代码

    下面是关于“Spring Boot集成JWT实现前后端认证的示例代码”的完整攻略。 1. 什么是JWT JWT全称为JSON Web Token,是一种基于JSON的轻量级标准,我们可以使用JWT实现前后端的认证功能。其中,JWT由三部分组成:Header、Payload、Signature。Header和Payload分别是一个JSON对象(字典),而Si…

    Java 2023年6月3日
    00
  • java获得mysql和oracle链接的类

    连接 MySQL 和 Oracle 数据库在 Java 中可以通过 JDBC API 实现。 JDBC 标准提供了一组接口和实现类来操作数据库,以及获取数据库的连接。下面是完整的攻略: 1. 下载JDBC驱动 MySQL和Oracle都提供了对应的 JDBC 驱动程序,在使用之前,需要先下载对应的版本。可以在官方网站上下载 JDBC 驱动程序,也可以使用 M…

    Java 2023年6月16日
    00
  • JAVA实现空间索引编码——GeoHash的示例

    想要详细讲解“JAVA实现空间索引编码——GeoHash的示例”的完整攻略,可以按照以下步骤进行: 1. 了解GeoHash GeoHash是一种基于经纬度坐标存储和索引的编码方式,将二维的经纬度坐标转换为字符串形式进行存储,以达到快速空间索引的目的。在GeoHash编码中,每个字符对应的是一段矩形区域,在进行空间查询的时候,只需要将查询范围转化为对应的Ge…

    Java 2023年5月20日
    00
  • Java中使用HttpRequest获取用户真实IP地址

    获取用户真实IP地址是Web开发中一个非常重要的问题,这篇文章将详细讲解在Java中使用HttpRequest获取用户真实IP地址的完整攻略。 什么是用户真实IP地址 用户真实IP地址指的是用户连接Internet时获得的IP地址,这个IP地址被称为公网IP地址,因为这个IP地址是在Internet上唯一的,并且可以标识这个用户所在位置的唯一标识。 如何获取…

    Java 2023年6月15日
    00
  • eclipse配置tomcat开发Dynamic Web Project环境图解

    下面我将详细讲解 “eclipse配置tomcat开发Dynamic Web Project环境图解”的完整攻略: 一、前置条件 在进行eclipse配置tomcat开发Dynamic Web Project环境前,需要确保你已经完成以下几个步骤: 安装eclipse,推荐使用最新版本; 安装tomcat,并且成功启动tomcat服务; 安装Java SDK…

    Java 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部