spring boot项目实战之实现与数据库的连接

yizhihongxing

Spring Boot项目实战之实现与数据库的连接

概述

Spring Boot是一个快速开发框架,让我们可以专注于业务代码的开发,而不需要关心底层架构的细节。在实际开发中,与数据库的连接是一个非常常见的需求。本文将详细介绍如何在Spring Boot项目中实现与数据库的连接。

步骤

  1. 添加Spring Boot依赖

pom.xml文件中添加如下依赖:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

该依赖包含了JDBC的相关依赖,可以让我们更方便地进行与数据库的连接。

  1. 配置数据源

application.properties中配置数据库相关信息,例如:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

在上述配置中,我们指定了连接的数据库地址、用户名、密码以及驱动类。

  1. 创建JDBC模板

在Spring Boot中,我们可以使用JDBC模板来进行数据库的访问。在代码中创建JDBC模板可以使用JdbcTemplate类。

@Configuration
public class JdbcTemplateConfig {

  @Autowired
  private DataSource dataSource;

  @Bean
  public JdbcTemplate jdbcTemplate() {
    return new JdbcTemplate(dataSource);
  }

}

在上述代码中,我们通过@Configuration注解将该类声明为一个配置类,然后通过@Autowired注解注入DataSource对象,最后创建JdbcTemplate对象。

  1. 编写DAO

在Spring Boot中,我们一般使用DAO(Data Access Object)层来进行数据库的操作。在代码中,创建DAO类可以继承JdbcDaoSupport类,并且通过JdbcTemplate对象完成对数据库的操作。

@Repository
public class UserDao extends JdbcDaoSupport {

  @Autowired
  public UserDao(JdbcTemplate jdbcTemplate) {
    setJdbcTemplate(jdbcTemplate);
  }

  public User findByUsername(String username) {
    String sql = "SELECT * FROM user WHERE username=?";
    return getJdbcTemplate().queryForObject(sql, new Object[] { username }, new UserRowMapper());
  }

}

在上述代码中,我们创建了UserDao类,并在其中实现了通过用户名查询用户信息的方法。该方法使用了JdbcTemplate对象来完成对数据库的操作,并通过UserRowMapper类将查询结果映射为User对象。

  1. 创建实体类

在DAO层中,我们需要对象来映射数据库中的表。在代码中,创建实体类即可。

public class User {

  private Long id;
  private String username;
  private String password;
  private String email;

  // getters & setters

}

在上述代码中,我们创建了User类,并声明了其属性以及对应的访问方法。

  1. 编写单元测试

最后,可以编写单元测试来检验代码是否能够正确与数据库进行连接。

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserDaoTest {

  @Autowired
  private UserDao userDao;

  @Test
  public void testFindByUsername() {
    User user = userDao.findByUsername("admin");
    assertNotNull(user);
    assertEquals("admin", user.getUsername());
  }

}

在上述代码中,我们创建了UserDaoTest类,并通过@RunWith注解指定了使用SpringRunner运行测试,然后通过@SpringBootTest注解指定了加载的Spring配置文件。在测试方法中,我们使用UserDao对象进行测试,并通过JUnit断言来检验测试结果是否正确。

示例

下面引用两条具体的实例说明:

示例1

在一个社交平台项目中,我们需要实现与用户账户相关的数据库操作。在该项目中,我们可以创建User实体类,并在DAO层中实现查询用户密码的方法。

public class User {

  private Long id;
  private String username;
  private String password;
  private String email;

  // getters & setters

}

@Repository
public class UserDao extends JdbcDaoSupport {

  @Autowired
  public UserDao(JdbcTemplate jdbcTemplate) {
    setJdbcTemplate(jdbcTemplate);
  }

  public User findByUsername(String username) {
    String sql = "SELECT * FROM user WHERE username=?";
    return getJdbcTemplate().queryForObject(sql, new Object[] { username }, new UserRowMapper());
  }

}

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserDaoTest {

  @Autowired
  private UserDao userDao;

  @Test
  public void testFindByUsername() {
    User user = userDao.findByUsername("admin");
    assertNotNull(user);
    assertEquals("admin", user.getUsername());
  }

}

在上述代码中,我们创建了User实体类,并实现了UserDao类,以及对应的JUnit测试方法。在测试方法中,我们使用UserDao对象进行测试,并通过JUnit断言来检验测试结果是否正确。

示例2

在一个电商项目中,我们需要实现保存用户地址的功能。在该项目中,我们可以创建Address实体类,并在DAO层中实现保存地址的方法。

public class Address {

  private Long id;
  private String province;
  private String city;
  private String district;
  private String address;
  private Long userId;

  // getters & setters

}

@Repository
public class AddressDao extends JdbcDaoSupport {

  @Autowired
  public AddressDao(JdbcTemplate jdbcTemplate) {
    setJdbcTemplate(jdbcTemplate);
  }

  public void save(Address address) {
    String sql = "INSERT INTO address(province, city, district, address, user_id) VALUES (?, ?, ?, ?, ?)";
    getJdbcTemplate().update(sql, address.getProvince(), address.getCity(), address.getDistrict(), address.getAddress(), address.getUserId());
  }

}

@RunWith(SpringRunner.class)
@SpringBootTest
public class AddressDaoTest {

  @Autowired
  private AddressDao addressDao;

  @Test
  public void testSave() {
    Address address = new Address();
    address.setProvince("Shanghai");
    address.setCity("Shanghai");
    address.setDistrict("Pudong");
    address.setAddress("Century Avenue");
    address.setUserId(1L);
    addressDao.save(address);
  }

}

在上述代码中,我们创建了Address实体类,并实现了AddressDao类,以及对应的JUnit测试方法。在测试方法中,我们使用AddressDao对象进行测试,并通过JUnit断言来检验测试结果是否正确。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring boot项目实战之实现与数据库的连接 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • uni-app如何实现增量更新功能

    uni-app 是一款基于 Vue.js 的跨平台前端开发框架,支持将同一份代码编译生成多个平台可执行程序(如H5、小程序、App等),可方便地实现大型项目的开发、管理与维护。对于一个中大型项目的开发,增量更新是非常关键的功能,它能够大大缩短用户等待的时间,提高用户体验。本文将详细讲解如何在 uni-app 中实现增量更新功能的攻略。 第一步:使用uni-a…

    Java 2023年5月23日
    00
  • SpringBoot特点之依赖管理和自动装配(实例代码)

    SpringBoot特点之依赖管理和自动装配(实例代码) 依赖管理 Spring Boot的依赖管理采用了“约定优于配置”的原则,省去了繁琐的依赖配置。Spring Boot通过Starter POMs来管理依赖,Starter POMs是一种特殊的POM文件,包含了一系列相关的依赖,我们只需要添加相应的Starter POM,即可快速地集成一些常用的依赖。…

    Java 2023年5月15日
    00
  • SpringBoot 配置文件总结

    下面是关于SpringBoot配置文件的总结: SpringBoot 配置文件总结 SpringBoot 配置文件主要包含两种类型:application.properties和application.yml。 配置属性 SpringBoot 配置属性分为两种类型: 内置属性 自定义属性 内置属性是SpringBoot提供的默认配置属性,我们可以在配置文件中…

    Java 2023年5月31日
    00
  • 浅谈Maven的build生命周期和常用plugin

    Maven是一个流行的Java项目管理工具,它可以自动化执行各种构建任务。Maven的构建生命周期由多个阶段组成,每个阶段都与一组目标相关联,而这些目标是通过插件实现的。 Maven Build生命周期 Maven的构建生命周期包括三个标准的build生命周期:clean、default和site。每个生命周期都由一系列阶段组成。 Clean生命周期 Cle…

    Java 2023年5月19日
    00
  • ArrayList源码和多线程安全问题分析

    ArrayList源码分析 介绍 ArrayList是Java中非常常用的一种数据结构,它提供了一种基于数组实现的动态数组的方式来存储和管理对象。 内部实现 ArrayList的内部实现是基于数组的,可以使用数组索引来访问其中的元素,底层使用了Object[]数组来存储元素。当添加一个元素时,ArrayList会将其添加到数组的末尾,如果数组已满,Array…

    Java 2023年5月26日
    00
  • Maven最佳实践之一个好的parent依赖基础

    “Maven最佳实践之一个好的parent依赖基础”是指在使用Maven构建项目时,良好的父依赖是保证项目构建质量、维护成本及后期升级的重要因素。下面我将详细讲解“Maven最佳实践之一个好的parent依赖基础”的完整攻略。 什么是一个好的parent依赖 一个好的parent依赖应符合以下原则: 遵循单一职责原则:父依赖只应提供共通性的配置和依赖,而不应…

    Java 2023年5月20日
    00
  • java中struts2实现文件上传下载功能

    下面是java中struts2实现文件上传下载功能的完整攻略: 一、文件上传功能的实现 1. 安装文件上传插件 在struts2中实现文件上传功能需要依赖文件上传插件,可以通过以下方式进行安装: 在pom.xml中加入以下依赖: <dependency> <groupId>org.apache.struts</groupId&g…

    Java 2023年5月20日
    00
  • maven搭建java ee项目图文教程

    下面是详细的“maven搭建java ee项目图文教程”的完整攻略。 1. 什么是Maven Maven是一个Java构建工具,它可以通过简单的声明性配置文件来管理项目的构建、依赖关系和文档记录。 使用Maven可以大大简化Java项目的构建和管理过程,Maven还通过中央仓库来帮助下载大量的第三方依赖包,增加了代码重用的可能性,并且对Java生态系统提供了…

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