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日

相关文章

  • Java实现局域网IP地址扫描

    下面我将详细讲解 Java 实现局域网 IP 地址扫描的完整攻略。这里将会分为以下几个步骤: 获取本机的 IP 地址 用正则表达式获取 IP 地址前缀 遍历 IP 地址前缀下的所有 IP 地址 发送 ICMP 包测试 IP 地址是否存活 下面分别进行讲解。 获取本机的 IP 地址 在 Java 中,我们可以通过调用 InetAddress.getLocalH…

    Java 2023年5月26日
    00
  • jsp读取大对象CLOB并生成xml文件示例

    以下是针对“jsp读取大对象CLOB并生成xml文件”实现的完整攻略。 什么是CLOB CLOB指的是Character Large Object(字符大对象),是被定义为单独的文本文件的文本数据类型,可以存储大量的数据,可以达到2G的大小。CLOB在Java JDBC中表示为java.sql.Clob接口,可以使用 J2EE 应用程序中获取和设置大文本数据…

    Java 2023年6月15日
    00
  • java swing实现简单计算器界面

    创建Java Swing的简单计算器界面的步骤如下: 1. 创建一个Java项目 首先,在IDE(例如Eclipse、IntelliJ IDEA等)中创建一个Java项目。可以选择用Maven或Gradle进行管理,这里我们选择Gradle。 2. 导入Swing库 在项目中引入javax.swing和java.awt库,这些库中包含了Swing所需要的组件…

    Java 2023年5月18日
    00
  • Spring Boot 2.X优雅的解决跨域问题

    Spring Boot 2.X优雅的解决跨域问题 在前后端分离的开发模式下,跨域问题是一个常见的问题。在Spring Boot 2.X中,我们可以通过配置来优雅地解决跨域问题。本文将手把手教你如何在Spring Boot 2.X中解决跨域问题,包括配置跨域、使用注解解决跨域等。 1. 配置跨域 在Spring Boot 2.X中,我们可以通过配置来解决跨域问…

    Java 2023年5月14日
    00
  • Hibernate5新特性介绍

    Hibernate5新特性介绍 Hibernate是一个广泛使用的ORM(对象关系映射)框架,致力于使得数据库的操作变得更为容易和快捷。而在Hibernate5中,新增了一些重要的特性,既改善了ORM的用法,又增强了其性能和扩展性。本篇文章将会介绍Hibernate5中的一些新特性,并带有相应的示例,以便让读者更好地理解和使用。 JPA2.1规范的实现 Hi…

    Java 2023年5月19日
    00
  • Java EE实现用户后台管理系统

    听起来您需要了解如何使用Java EE实现用户后台管理系统的攻略,下面是一些基本步骤: 1. 确定需求和功能 在开发用户后台管理系统之前,首先需要明确系统的功能和需求。例如,您需要确定用户是否需要注册,登陆,管理数据等功能需求。这些需求和功能可以形成您设计和开发系统的蓝图。 2. 选择合适的框架 选择适合您的开发需求的框架是非常重要的。Java EE中有很多…

    Java 2023年5月19日
    00
  • 理解Java程序的执行

    main 方法 public class Solution { public static void main(String[] args) { Person person = new Person(); person.hello(); } } class Person { public void hello() { System.out.println(“…

    Java 2023年4月22日
    00
  • Java框架—Spring详解

    Java框架—Spring详解 什么是Spring框架 Spring框架是一个面向对象的Java应用程序开发框架,它通过IoC(依赖注入)和AOP(面向切面编程)实现了高内聚、松耦合的代码设计。 Spring框架可以用来构建各种类型的应用程序,包括Web应用程序、企业应用程序、桌面应用程序等。它被广泛地应用于商业应用开发领域,因为它可以极大地提高开发效率…

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