初探后端开发——Spring Boot从环境配置到RESTful API实现(二)

初探后端开发——Spring Boot从环境配置到RESTful API实现(二)

目录

  • 初探后端开发——Spring Boot从环境配置到RESTful API实现(二)
  • 前言
  • 使用IDEA创建Spring Boot项目
  • MySQL和MyBatis相关配置及简单的增删改查实现
  • 结语

前言

上一篇中我们进行了相关开发环境的配置,本篇中,我们将使用IDEA创建一个Spring Boot的项目,并进行MySQL和MyBatis的相关配置,最后完成对数据库中数据的简单增删改查。

使用IDEA创建Spring Boot项目

在IDEA中新建项目,选择Spring Initializr,选择jdk版本,下一步。
初探后端开发——Spring Boot从环境配置到RESTful API实现(二)_第1张图片
填写包名等,下一步。
初探后端开发——Spring Boot从环境配置到RESTful API实现(二)_第2张图片
选择依赖,这里如果没有选全要用的依赖,后续也可以在pom.xml文件中手动再添加。
初探后端开发——Spring Boot从环境配置到RESTful API实现(二)_第3张图片
填写项目名称和路径后完成,等待IDEA分析相关依赖完成后,项目创建成功,大致的项目目录如图所示。
初探后端开发——Spring Boot从环境配置到RESTful API实现(二)_第4张图片
可以在src/main/java文件夹下添加com.example.springboot.controller包,并添加HelloController类用于测试。
初探后端开发——Spring Boot从环境配置到RESTful API实现(二)_第5张图片

package com.example.springboot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {

    @GetMapping("/hello")
    @ResponseBody
    public String hello() {
        return "hello,springboot";
    }
}

启动项目,在浏览器http://localhost:8080/hello中可以看到如下页面。
初探后端开发——Spring Boot从环境配置到RESTful API实现(二)_第6张图片

MySQL和MyBatis相关配置及简单的增删改查实现

首先在MySQL中创建一个测试数据库springboot,建立一张表tb_user,并录入几条测试信息。
在这里插入图片描述
在这里插入图片描述

回到项目中,在pom.xml中配置MySQL和MyBatis的依赖,这里注意mysql-connector-java的版本要和自己本地的MySQL版本相同,否则可能出现无法连接数据库的情况。

		<dependency>
			<groupId>org.mybatis.spring.bootgroupId>
			<artifactId>mybatis-spring-boot-starterartifactId>
			<version>1.3.2version>
		dependency>
		<dependency>
			<groupId>mysqlgroupId>
			<artifactId>mysql-connector-javaartifactId>
			
			<version>8.0.23version>
		dependency>

在src/main/resources/application.properties文件中添加MySQL和MyBatis相关配置,MySQL配置中需要自行填写本地数据库的URL和root账户密码。Mybatis配置 Mapper 对应的 XML 文件路径。

# 数据源基本配置
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
# Mybatis配置
# 所有classpath下mapper文件夹中xxxDao.xml文件都会被检索
mybatis.mapper-locations=classpath:mapper/*Dao.xml

同时在启动类中添加Mapper扫描@MapperScan,Spring Boot 启动的时候会自动加载包路径下的 Mapper 。

package com.example.springboot;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("com.example.springboot.dao")
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

新建包com.example.springboot.entity存放实体类User

package com.example.springboot.entity;

public class User {

    private Integer id;
    private String name;
    private String password;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

新建包com.example.springboot.dao存放 UserDao 接口,并定义增删改查四个接口:

package com.example.springboot.dao;

import com.example.springboot.entity.User;

import java.util.List;

/**
 * MyBatis 测试
 */
public interface UserDao {
    /**
     * 返回数据列表
     *
     * @return
     */
    List<User> findAllUsers();

    /**
     * 添加
     *
     * @param User
     * @return
     */
    int insertUser(User User);

    /**
     * 修改
     *
     * @param User
     * @return
     */
    int updUser(User User);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    int delUser(Integer id);
}

在src/main/resources中新建mapper文件夹,文件夹中新建UserDao.xml文件。




<mapper namespace="com.example.springboot.dao.UserDao">
    
    <resultMap type="com.example.springboot.entity.User" id="UserResult">
        <result property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="password" column="password"/>
    resultMap>
    
    <select id="findAllUsers" resultMap="UserResult">
        select id,name,password from tb_user
        order by id desc
    select>


    <insert id="insertUser" parameterType="com.example.springboot.entity.User">
        insert into tb_user(name,password)
        values(#{name},#{password})
    insert>

    <update id="updUser" parameterType="com.example.springboot.entity.User">
        update tb_user
        set
            name=#{name},password=#{password}
        where id=#{id}
    update>

    <delete id="delUser" parameterType="int">
        delete from tb_user where id=#{id}
    delete>

mapper>

最后,我们在controller包中新建MyBatisController类,接收增删改查的请求。在这里我们统一使用get请求,通过URL参数来完成增删改查,仅为测试使用。

package com.example.springboot.controller;


import com.example.springboot.dao.UserDao;
import com.example.springboot.entity.User;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;


@RestController
public class MyBatisController {

    @Resource
    UserDao userDao;

    // 查询所有记录
    @GetMapping("/users/mybatis/queryAll")
    public List<User> queryAll() {
        return userDao.findAllUsers();
    }

    // 新增一条记录
    @GetMapping("/users/mybatis/insert")
    public Boolean insert(String name, String password) {
        if (StringUtils.isEmpty(name) || StringUtils.isEmpty(password)) {
            return false;
        }
        User user = new User();
        user.setName(name);
        user.setPassword(password);
        return userDao.insertUser(user) > 0;
    }

    // 修改一条记录
    @GetMapping("/users/mybatis/update")
    public Boolean insert(Integer id, String name, String password) {
        if (id == null || id < 1 || StringUtils.isEmpty(name) || StringUtils.isEmpty(password)) {
            return false;
        }
        User user = new User();
        user.setId(id);
        user.setName(name);
        user.setPassword(password);
        return userDao.updUser(user) > 0;
    }

    // 删除一条记录
    @GetMapping("/users/mybatis/delete")
    public Boolean insert(Integer id) {
        if (id == null || id < 1) {
            return false;
        }
        return userDao.delUser(id) > 0;
    }
}

最终的项目目录如图所示
初探后端开发——Spring Boot从环境配置到RESTful API实现(二)_第7张图片
至此,可以启动项目。
http://localhost:8080/users/mybatis/queryAll 查看表中所有的记录,与之前数据库中数据吻合。
在这里插入图片描述
http://localhost:8080/users/mybatis/insert?name=mybatis1&password=1233333 新增一条记录

http://localhost:8080/users/mybatis/update?id=2&name=mybatis2&password=2222 修改id为2的记录

http://localhost:8080/users/mybatis/delete?id=1 删除id为1的记录
再次查询所有记录,结果正确。
在这里插入图片描述

结语

本篇是系列的第二篇,主要记录了IDEA中新建Spring Boot项目,集成MySQL和MyBatis配置,最终实现简单的对数据库增删改查的操作。下一篇中预计将探讨 Mybatis Generator 插件以及Spring Boot的事件处理。

你可能感兴趣的:(Java服务端开发,mybatis,mysql,java,spring)