创建一个springboot项目,mybatis连接嵌入式数据库H2,实现增删改查功能

目标

  • 创建一个spirngboot项目。
  • 连接嵌入式数据库H2
  • 实现对用户的增删改查。

创建一个spirngboot项目

创建流程

  • 打开idea,选择File -> New -> Project,界面如下。

在这里插入图片描述

  • 选择Spring Boot 2.7.6,添加Spring Web,创建项目,界面如下。

在这里插入图片描述

第一次运行项目,界面如下

在这里插入图片描述

mybatis连接数据库H2

为了省去安装数据库的烦恼,这里采用使用嵌入式的数据库,进行数据保存,选择Spring支持的h2。下面是使用步骤。

依赖:mybatis + h2

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>2.1.214</version>
</dependency>

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

配置文件

在resources目录下创建配置文件,文件名如下,并删除原有的配置文件。

application.yml

# 端口
server:
  port: 8090

spring:
  datasource:
    url: jdbc:h2:file:D:/aaa/testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=MySQL
    username: sa
    password:
    driver-class-name: org.h2.Driver
  sql:
    init:
      mode: always
      schema-locations: classpath:schema.sql

  # H2 控制台配置(开发环境启用)
  h2:
    console:
      enabled: true
      path: /h2-console

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.xbdx.demo111.entity

schema.sql

在resources目录下创建schema.sql文件,项目启动时会自动检查运行。

schema.sql

CREATE TABLE IF NOT EXISTS users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    age INT
);

实现对用户的增删改查

创建entity

创建一个和数据库对应起来的User实体类。

entity.User

public class User {

    private String name;

    private Integer age;

    private Integer id;

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getId() {
        return id;
    }

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

创建mapper

创建mapper层的接口与xml,实现增删改查的功能。

mapper.UserMapper

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserMapper {

    public void userCreate(User  user);

    @Select("select * from users")
    public List<User> userRead();

    public void userUpdate(User user);

    @Delete("delete from users where id = #{id}")
    public void userDelete(Integer id);

}

mapper.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.xbdx.demo111.mapper.UserMapper">
    <!-- 新增用户 -->
    <insert id="userCreate" useGeneratedKeys="true" keyProperty="id">
        insert into users(name,age) values(#{name},#{age})
    </insert>

    <update id="userUpdate">
        update users
        <set>
            <if test="name != null">name = #{name},</if>
            <if test="age != null">age = #{age}</if>
        </set>
        where id = #{id}
    </update>
</mapper>

创建service

创建service层的接口与实现类,实现增删改查的功能。

service.UserService

import java.util.List;

public interface UserService {
    void userCreate(User user);
    List<User> userRead();
    void userUpdate(User user);
    void userDelete(Integer id);
}

impl.UserServiceImpl

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

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

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

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

    @Override
    public void userDelete(Integer id) {
        userMapper.userDelete(id);
    }
}

创建controller

创建controller层的类,实现增删改查的功能。

controller.UserController

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/create")
    public void userCreate() {
        User user = new User();
        user.setName("zhangsan");
        user.setAge(19);
        userService.userCreate(user);
        System.out.println("用户创建成功");
    }

    @GetMapping("/read")
    public void userRead() {
        List<User> users = userService.userRead();
        System.out.println("用户查询成功");
        for (User user : users) {
            System.out.println(user.getName() + " " + user.getAge());
        }
    }

    @GetMapping("/update")
    public void userUpdate() {
        User user = new User();
        user.setId(1);
        user.setName("lisi");
        user.setAge(18);
        userService.userUpdate(user);
        System.out.println("用户更新成功");
    }

    @GetMapping("/delete")
    public void userDelete() {
        userService.userDelete(1);
        System.out.println("用户删除成功");
    }
}

到这里,程序已经写完,访问使用网页改变路由地址即可。下面为了方便,搭配前端程序,是一个vue3的项目,放在资源里面。

搭配前端程序,修改controller

UserController

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/create")
    public void userCreate(@RequestBody User user) {
        userService.userCreate(user);
        System.out.println("用户创建成功");
    }

    @GetMapping("/read")
    public List<User> userRead() {
        List<User> users = userService.userRead();
        System.out.println("用户查询成功");
        return users;
    }

    @PutMapping("/update")
    public void userUpdate(@RequestBody User user) {
        userService.userUpdate(user);
        System.out.println("用户更新成功");
    }

    @DeleteMapping("/delete")
    public void userDelete(@RequestParam Integer id) {
        userService.userDelete(id);
        System.out.println("用户删除成功");
    }

    @GetMapping("/getOne")
    public User getOne(@RequestParam Integer id) {
        User user = userService.getById(id);
        System.out.println("单个用户查询成功");
        return user;
    }
}

前后端程序,放在资源里面,自行下载,可以及时的看到效果,增删改查与查看单个,前端截图如下。

在这里插入图片描述

前端程序,会在另一篇博文中具体说明,届时会将页面样式添加上,做成一个用户管理的界面。以及完善后端程序,采用mybatisPlus。

总结

本文使用idea创建了一个springboot项目。数据库是嵌入式数据库h2,使用mybatis连接数据库。文中详细给出了安装依赖、配置文件、schema.sql,以及controller、service、mapper的所有示例代码。已亲测可以调试。并且将前后端程序一起放在资源里,只需要安装jdk就可以运行项目,进行前后端联调。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤奋菲菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值