本文将介绍如何使用Spring Boot框架来构建一个简单的学生书籍管理系统,其中包括用户的注册和登录验证,并通过分层设计来实现系统的模块化和可维护性。
一、准备工作
1.使用Navicat创建数据库表
2.导入依赖包和对应的数据库驱动
在resources/application.properties pom.xml下导入依赖包
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
在resources/application.properties写数据库连接配置
# 数据库驱动:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据源名称
spring.datasource.name=defaultDataSource
# 数据库连接地址
spring.datasource.url=jdbc:mysql://106.53.194.250:63306/spring?serverTimezone=UTC
# 数据库用户名&密码:
spring.datasource.username=ccc
spring.datasource.password=@hnucm1254
#下面这些内容是为了让MyBatis映射
#指定Mybatis的Mapper文件
mybatis.mapper-locations=classpath:mapper/*.xml
#指定Mybatis的实体目录
mybatis.type-aliases-package=com.example.springmybatis.pojo
#打印日志
logging.level.com.example.springmybatis = debug
注意根据需求对应修改数据库连接地址等内容
二、分层写代码
Spring Boot 应用程序通常采用分层架构,在包下新建对应的分层Package
(一)用户表的操作
1.model层
Model层对象通常是实体类,实体类的属性通常对应数据库表的字段。
- @Data:这是Lombok库提供的一个注解,它为类提供了getter和setter方法,以及toString、equals和hashCode方法。使用这个注解可以减少模板代码的编写。
@Data
public class User {
private int id;
private String username;
private String password;
}
2.dao层
DAO层(Data Access Object)负责与数据库进行交互,执行CRUD(Create, Read, Update, Delete)操作。在Spring Boot中,通常使用MyBatis作为ORM(Object-Relational Mapping)框架来实现DAO层。
MyBatis是一个流行的Java持久层框架,它让数据库操作更加方便。它使用XML或注解来映射SQL语句到Java对象。
@Mapper
注解:在Spring Boot项目中标记DAO层的接口,让Spring Boot知道这些接口需要被注册为Bean,并且由MyBatis来处理数据库操作。这样,你就可以通过注入这些Mapper接口来执行数据库操作,而不需要关心底层的实现细节。
@Mapper
public interface UserMapper {
public int addUser(User user);
public User findUser(String username,String password);
public User findUserByName(String userName);
}
<?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.c202201020243.task1.dao.UserMapper">
<insert id="addUser" parameterType="com.c202201020243.task1.model.User">
insert into users202201020243(username,password) values(#{username},#{password})
</insert>
<select id="findUser" parameterType="com.c202201020243.task1.model.User" resultType="com.c202201020243.task1.model.User">
select * from users202201020243 where username=#{username} and password=#{password}
</select>
<select id="findUserByName" parameterType="java.lang.String" resultType="com.c202201020243.task1.model.User">
select * from users202201020243 where username=#{username}
</select>
<select id="getAllBooks" resultType="com.c202201020243.task1.model.Book">
select * from users202201020243
</select>
</mapper>