文章目录
目标
- 创建一个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就可以运行项目,进行前后端联调。