@
- 目标
- 创建一个spirngboot项目
- 创建流程
- 第一次运行项目,界面如下
- mybatis连接数据库H2
- 依赖:mybatis + h2
- 配置文件
- schema.sql
- 实现对用户的增删改查
- 创建entity
- 创建mapper
- 创建service
- 创建controller
- 搭配前端程序,修改controller
- 总结
目标
- 创建一个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: 8090spring:datasource:url: jdbc:h2:file:D:/aaa/testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=MySQLusername: sapassword:driver-class-name: org.h2.Driversql:init:mode: alwaysschema-locations: classpath:schema.sql# H2 控制台配置(开发环境启用)h2:console:enabled: truepath: /h2-consolemybatis:mapper-locations: classpath:mapper/*.xmltype-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 mapperPUBLIC "-//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 {@Autowiredprivate UserMapper userMapper;@Overridepublic void userCreate(User user) {userMapper.userCreate(user);}@Overridepublic List<User> userRead() {return userMapper.userRead();}@Overridepublic void userUpdate(User user) {userMapper.userUpdate(user);}@Overridepublic 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 {@Autowiredprivate 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 {@Autowiredprivate 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就可以运行项目,进行前后端联调。