springboot+idea+maven 多模块项目搭建的详细过程(连接数据库进行测试)

下面详细讲解一下如何使用Spring Boot、IDEA和Maven搭建多模块项目并连接数据库测试。

环境准备

在开始之前,确保你已经安装了以下环境:

  • JDK 1.8或以上版本
  • IDEA集成开发环境
  • Maven构建工具
  • 数据库(本次示例使用MySQL)

创建Maven多模块项目

  1. 打开IDEA,点击File -> New -> Project,选择Maven -> Create from archetype,然后选择maven-archetype-quickstart模板创建一个普通的Maven项目。

  2. 创建完项目后,打开pom.xml文件,添加以下依赖:

```xml



org.springframework.boot
spring-boot-starter-parent
2.4.1
pom
import

   <!-- 数据库连接依赖 -->
   <dependency>
       <groupId>com.zaxxer</groupId>
       <artifactId>HikariCP</artifactId>
       <version>4.0.2</version>
   </dependency>

   <!-- MySQL驱动依赖 -->
   <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>8.0.22</version>
   </dependency>


```

  1. 创建一个子模块,用于存放数据访问和业务逻辑处理的代码。右键项目名称,选择New -> Module,输入子模块名称并按照默认选项创建。

  2. 在子模块的pom.xml文件中添加以下依赖:

```xml



org.springframework.boot
spring-boot-starter

   <!-- 数据库连接依赖 -->
   <dependency>
       <groupId>com.zaxxer</groupId>
       <artifactId>HikariCP</artifactId>
   </dependency>

   <!-- MySQL驱动依赖 -->
   <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
   </dependency>


```

编写代码

  1. 在子模块中创建一个实体类User

java
@Data
public class User {
private Long id;
private String name;
private Integer age;
}

  1. 创建一个UserService接口,用于定义增删改查等操作。

```java
public interface UserService {
User save(User user);

   void deleteById(Long id);

   User findById(Long id);

   List<User> findAll();

}
```

  1. 创建一个UserServiceImpl实现类,实现UserService接口中定义的方法。

```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private JdbcTemplate jdbcTemplate;

   @Override
   public User save(User user) {
       String sql = "insert into user(name, age) values (?, ?)";
       KeyHolder keyHolder = new GeneratedKeyHolder();
       jdbcTemplate.update(connection -> {
           PreparedStatement ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
           ps.setString(1, user.getName());
           ps.setInt(2, user.getAge());
           return ps;
       }, keyHolder);
       user.setId(keyHolder.getKey().longValue());
       return user;
   }

   // 省略其他方法的实现

}
```

  1. 编写一个Test类,用于对UserService接口中定义的方法进行测试。

```java
@SpringBootTest
public class UserServiceImplTest {
@Autowired
private UserService userService;

   @Test
   public void testUserCrud() {
       // 封装数据
       User user = new User();
       user.setName("小明");
       user.setAge(18);

       // 添加数据
       userService.save(user);
       assertNotNull(user.getId());

       // 根据ID查询数据
       User savedUser = userService.findById(user.getId());
       assertEquals(user.getName(), savedUser.getName());
       assertEquals(user.getAge(), savedUser.getAge());

       // 查询所有数据
       List<User> userList = userService.findAll();
       assertNotNull(userList);
       assertTrue(userList.size() > 0);

       // 删除数据
       userService.deleteById(user.getId());
       User deletedUser = userService.findById(user.getId());
       assertNull(deletedUser);
   }

}
```

连接数据库进行测试

  1. application.yml中配置数据库相关信息。

yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver

  1. 运行Test类,查看测试结果是否符合预期。

示例说明

  1. 在子模块中添加一个UserServiceTest测试类,用于测试UserService接口的实现类。在该测试类中,我们注入了一个UserServiceImpl实例,并调用了其中的几个方法进行测试。

```java
@SpringBootTest
public class UserServiceTest {
@Autowired
private UserServiceImpl userService;

   @Test
   public void testSave() {
       User user = new User();
       user.setName("张三");
       user.setAge(20);

       User savedUser = userService.save(user);
       assertNotNull(savedUser.getId());
   }

   @Test
   public void testFindById() {
       User user = userService.findById(1L);
       assertNotNull(user);
   }

   @Test
   public void testDeleteById() {
       userService.deleteById(1L);
       User user = userService.findById(1L);
       assertNull(user);
   }

   @Test
   public void testFindAll() {
       List<User> userList = userService.findAll();
       assertNotNull(userList);
   }

}
```

  1. 在子模块的resources目录下新建一个script文件夹,用于存放数据库初始化脚本。在该文件夹下新建一个db.sql文件,编写如下SQL语句:

sql
create table user(
id bigint primary key auto_increment,
name varchar(20),
age int
);

然后在application.yml中添加以下配置,用于在项目启动时自动执行该SQL脚本:

yaml
spring:
datasource:
schema: classpath:script/db.sql

经过以上配置和操作,我们的springboot+idea+maven 多模块项目搭建的详细过程(连接数据库进行测试)就完成了,你可以根据自己的需求进行更改和扩展。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot+idea+maven 多模块项目搭建的详细过程(连接数据库进行测试) - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • Struts2中实现web应用的初始化实例详解

    Struts2中实现web应用的初始化实例详解 Struts2是一个非常流行的Java Web框架,它提供了丰富的功能和易于扩展的机制,可以帮助开发者快速构建高质量的Web应用程序。在Struts2中,初始化Web应用程序是非常重要的一步,因为它与整个Web应用程序的运行有关。本文将详细介绍如何在Struts2中实现Web应用程序的初始化。 什么是Web应用…

    Java 2023年6月15日
    00
  • Java之Spring Boot创建和使用

    Java之Spring Boot创建和使用 Spring Boot是一个基于Spring Framework的快速应用开发框架。它可以快速创建、运行Spring应用,提供自动配置、内嵌服务器等特性,可以让我们更加专注于业务的实现,而不用花费大量时间在Spring应用的配置上。 安装和配置 安装和配置Spring Boot非常简单,只需要以下几个步骤: 下载最…

    Java 2023年5月15日
    00
  • MyBatis Plus 入门使用详细教程

    MyBatis Plus 入门使用详细教程 MyBatis Plus 是一款优秀的持久层框架,它在 MyBatis 的基础上增加了许多实用性的功能,使得开发者可以更方便地进行 CRUD 操作和灵活构建 SQL。本文将详细介绍 MyBatis Plus 的基本使用方法。 安装 添加 Maven 依赖 在 pom.xml 文件中添加以下依赖: <depen…

    Java 2023年5月20日
    00
  • Java_int、double型数组常用操作工具类(分享)

    Java_int、double型数组常用操作工具类(分享) 介绍 本文主要介绍Java中对int和double型数组常用的操作,包括数组的初始化、求和、平均值、最小值、最大值等实用方法。 数组初始化 数组初始化可以通过实例化数组对象进行,也可以通过静态初始化和动态初始化的方式进行。 静态初始化 静态初始化使用{}声明并初始化数组,示例如下: int[] ar…

    Java 2023年5月26日
    00
  • java中构造方法及this关键字的用法实例详解(超详细)

    Java中构造方法及this关键字的用法实例详解 构造方法是什么 在Java中,构造方法是一种特殊的成员方法,用于创建对象时初始化对象的状态。一个类可以拥有多个构造方法,但是这些方法必须要有不同的参数列表或参数顺序。 构造方法与一般的成员方法不同,它没有返回值类型,甚至没有void关键字,因为它的返回值就是创建的对象本身。 构造方法的使用 在Java中,当我…

    Java 2023年5月26日
    00
  • 详解JavaWeb中的过滤器Filter

    详解JavaWeb中的过滤器Filter 过滤器的概念 过滤器Filter是Java Web中的一个组件,用于拦截HTTP请求和响应,并对请求和响应进行处理和转换。它可以在Servlet处理请求之前或之后介入,处理请求信息、过滤响应结果,完成一些类似于AOP的功能。 过滤器的作用 过滤器可以在请求和响应处理的过程中拦截并修改信息,常见的使用场景如下: 过滤敏…

    Java 2023年6月15日
    00
  • Java流程控制语句最全汇总(中篇)

    Java流程控制语句最全汇总(中篇) 在Java中,流程控制语句是程序设计中不可或缺的一部分。掌握流程控制语句可以让我们编写更复杂、更有效的程序。本文将为大家介绍Java中的流程控制语句,包括if语句、switch语句、while语句、do-while语句、for语句、break语句、continue语句、return语句等内容。 if语句 if语句是最基本…

    Java 2023年5月23日
    00
  • javaWeb连接数据库实现简单登陆注册功能的全过程

    让我来为你详细讲解“Java Web连接数据库实现简单登录注册功能的全过程”。 准备工作 在进行 Java Web 开发之前,需要安装以下软件: JDK(Java Development Kit) Eclipse(开发工具) MySQL(数据库管理系统) Apache Tomcat(Web服务器) 创建数据库 在 MySQL 中创建一个名为 user 的数据…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部