链接->如何创建一个SpringBoot项目?(详细的图文教程)
可在localhost访问,或者使用测试类验证SpringBoot的正确配置,链接->Spring Boot:基本应用和源码解析
1、根据您所使用的数据库类型,在项目的构建文件(如 pom.xml 或 build.gradle)中添加相应的数据库驱动依赖。这样可以让应用程序能够与数据库进行交互。此处我使用的是 MySQL 数据库,可以添加以下 Maven 依赖,在pom.xml文件中:
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-boot-starterartifactId>
<version>3.4.2version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>6.0.6version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>druid-spring-boot-starterartifactId>
<version>1.2.9version>
dependency>
2、配置数据库连接信息:在应用程序的配置文件中,(如 application.yaml 、application.yml或 application.properties,这三种配置文件的语法和文件格式不同,但是作用是相同的,它们都用于配置 Spring Boot 应用程序的属性和行为。可以根据个人偏好或项目需求选择使用其中的一种。)配置数据库连接相关的属性,如数据库的 URL、用户名、密码等。我使用的是application.properties,配置文件如下:
# 端口号
server.port=8080
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC
spring.datasource.username=用户名
spring.datasource.password=密码
3、数据库创建表信息如下图
4、创建实体类:在com.example.pojo下创建与数据库表对应的实体类,用于映射查询结果。此处注意java中的命名方式是驼峰命名对应数据库中字段名的下划线。User.class文件代码如下:
public class User {
private Integer id;
private String realName;
private String userName;
private String info;
@Override
public String toString(){
return "User [id="+id+",real_name="+realName+",user_name="+userName+",info="+info+"]";
}
}
5、注册 MyBatis 映射器和配置数据库连接:在 Spring Boot 的主配置类DemoApplication中进行配置,注册 MyBatis 映射器和配置数据库连接。使用 @MapperScan 注解指定 MyBatis 映射器接口所在的包,Spring Boot 会自动扫描并注册这些接口。DemoApplication.class 文件代码如下:
package com.example;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@SpringBootApplication
@EnableConfigurationProperties
@MapperScan("com.example.dao")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
6、创建 MyBatis 映射器和 SQL 语句:创建用于映射数据库表和 SQL 语句的 MyBatis 映射器接口MyBatis 映射器接口就是我们dao包下的mapper文件。UserMapper.class 文件代码如下:
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserMapper {
@Select("SELECT * FROM users")
List<User> getAllUsers();
}
7、创建写SQL语句的 XML 配置文件。在 Spring Boot 框架中,MyBatis 的 XML 配置文件通常位于 resources 目录下的 mapper 文件夹中。MyBatis XML 配置文件的路径可以根据个人喜好或项目需求进行配置。
默认情况下,Spring Boot 会将 resources 目录下的所有内容作为类路径的一部分。因此,可以将 MyBatis 的 XML 配置文件放置在 resources 目录下的任何位置,并且可以使用相对路径来引用这些文件。
src
└── main
├── java
│ └── com
│ └── example
│ └── ...
└── resources
├── application.properties
├── static
└── mapper
└── UserMapper.xml
userMapper.xml 代码如下:
DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
<select id="getAllUsers" resultType="com.example.pojo.User">
SELECT * FROM user
select>
mapper>
8、在 service 调用 dao 包里的 mapper 进行查询操作:在需要查询的类中注入 MyBatis 映射器接口,并使用其方法进行数据库查询。 UserService.class 文件代码如下:
import com.example.mapper.UserMapper;
import com.example.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
private final UserMapper userMapper;
@Autowired
public UserService(UserMapper userMapper) {
this.userMapper = userMapper;
}
public List<User> getAllUsers() {
return userMapper.getAllUsers();
}
}
9、验证,有两种方法,一个是直接浏览器访问 http://localhost:8080/user/getAllUser 进行查询。还一个是使用测试类验证,测试类中加上对 UserController 的验证代码,DemoApplicationTest.class 文件代码整体如下所示:(仅运行 getAllUser 即可验证)。
package com.example;
import com.example.controller.HelloController;
import com.example.controller.UserController;
import com.example.pojo.Person;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
class DemoApplicationTests {
@Autowired
private HelloController helloController;
@Autowired
private UserController userController;
@Autowired
private Person person;
@Test
void contextLoads() {
String result = helloController.helloSpringBoot();
System.out.println(result);
// System.out.println(person);
}
@Test
void showPersonInfo() {
person.logPersonInfo();
}
@Test
void getAllUser(){
String res = userController.getAllUser();
System.out.println(res);
}
}
10、查询结果
至此已经查询到数据库,可以操作了。以下再附加一个用来操作数据库的方法。
QueryWrapper 是 MyBatis-Plus 框架提供的一个查询条件构造器,用于构建复杂的查询条件。它可以帮助您构建灵活的查询语句,并支持动态拼接查询条件。
QueryWrapper 的主要作用包括:
使用 QueryWrapper 的示例代码如下所示:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 25) // 等于条件
.like("name", "John") // 模糊匹配条件
.in("status", Arrays.asList("ACTIVE", "INACTIVE")) // IN 条件
.between("salary", 5000, 10000) // 范围查询条件
.orderByAsc("create_time") // 升序排序
.last("LIMIT 10"); // 追加自定义 SQL
List<User> userList = userMapper.selectList(queryWrapper);
在上述示例中,首先创建了一个 QueryWrapper 对象,并通过链式调用的方式构建了一些查询条件。最后,将 QueryWrapper 对象传递给 selectList 方法来执行查询操作,返回符合条件的 User 对象列表。通过使用 QueryWrapper,您可以更加灵活和方便地构建复杂的查询条件,减少手写 SQL 的工作量,并提高代码的可读性和可维护性。
下面用刚刚的user查询,写一个简单的例子。仅需两步:
public List<User> getAllUsers() {
QueryWrapper<User> wrapper = new QueryWrapper<>();
// wrapper.eq("real_name","孟子义");
List<User> users = userMapper.selectList(wrapper);
return users;
}
public interface UserMapper extends BaseMapper<User> {
// 可以自定义一些其他的方法
}