SpringBoot整合JDBC的实现

 更新时间:2021年01月18日 10:14:41   作者:刘信晨  
这篇文章主要介绍了SpringBoot整合JDBC的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

简介

JDBC是最原基本的连接数据源的方式,在springboot中所有和数据源有关系的都在Spring Data家族中,所以我们看看springboot中如何使用JDBC来实现对数据库的增删改查操作。

简单使用

引入依赖

这里我们只引入基本的依赖就好,创建一个springboot项目(这里版本是2.1.6),然后添加以下依赖:

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

    <!--mysql驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtimen</scope>
    </dependency>

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

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

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>
  </dependencies>

编写配置文件

这里我们需要把数据库的基本连接信息配置好

spring:
 datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  ## 这里如果不配置时区可能会报错,所以配置时区:serverTimezone=UT
  url: jdbc:mysql://localhost:3306/study_springboot?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
  username: root
  password: root

编写测试类

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

  @Autowired
  private DataSource dataSource;


  @Test
  public void load(){
    // 打印出:class com.zaxxer.hikari.HikariDataSource
    System.out.println(dataSource.getClass());
  }
}

实现增删改查

spring boot中有很多的xxxTemplate,也就是给我们默认配置了 很多的模板,方便我们进行开发,比如上面测试中的 JdbcTemplate,spring boot已经给我们封装好方法了,我们只要调用就好,下面是增删改查的案例:

@RestController
public class TestController {


  @Autowired
  private JdbcTemplate jdbcTemplate;

  @GetMapping("/userList")
  public List<Map<String, Object>> getUserList(){
    String sql = "select * from study_springboot.user";
    List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
    return maps;
  }
  @GetMapping("/addUser")
  public String addUser(){

    String sql = "insert into study_springboot.user(id, name, password) values('1', 'zhangsan', 'qqqq')";
    jdbcTemplate.update(sql);

    return "add success";
  }

  /**
   * 可以通过占位符实现入参
   * @param id
   * @return
   */
  @GetMapping("/updateUser/{id}")
  public String updateUser(@PathVariable("id") int id){
    String sql = "update study_springboot.user set name =?, password = ? where id = "+id;

    // 封装占位符
    Object[] objects = new Object[2];
    objects[0] = "李四";
    objects[1] = "pppppp";

    jdbcTemplate.update(sql, objects);
    return "update success";
  }

  @GetMapping("/deleteUser/{id}")
  public String deleteUser(@PathVariable("id") int id){
    String sql = "delete from study_springboot.user where id = ?";
    // int 类型也是一个object,所以这样传参也是可以的
    jdbcTemplate.update(sql, id);

    return "delete success";
  }

}

上面的案例只是展示基本的操作,但是真实项目中是不会这样写的,一般还是整合MyBatis或者JPA来实现操作数据源。

到此这篇关于SpringBoot整合JDBC的实现的文章就介绍到这了,更多相关SpringBoot整合JDBC内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot Security配置教程

    Spring Boot Security配置教程

    在本文里我们给大家分享了关于Spring Boot Security配置的相关步骤以及注意要点,需要的朋友们跟着操作下。
    2019-05-05
  • Spring Data JPA 整合QueryDSL的使用案例

    Spring Data JPA 整合QueryDSL的使用案例

    QueryDSL 是一个用于构建类型安全的 SQL 查询的 Java 库,它的主要目标是简化在 Java 中构建和执行 SQL 查询的过程,同时提供类型安全性和更好的编码体验,对Spring Data JPA 整合QueryDSL使用案例感兴趣的朋友跟随小编一起看看吧
    2023-08-08
  • springboot+EHcache 实现文章浏览量的缓存和超时更新

    springboot+EHcache 实现文章浏览量的缓存和超时更新

    这篇文章主要介绍了springboot+EHcache 实现文章浏览量的缓存和超时更新,问题描述和解决思路给大家介绍的非常详细,需要的朋友可以参考下
    2017-04-04
  • Java利用Socket实现网络通信功能

    Java利用Socket实现网络通信功能

    在早期的网络编程中,Socket是很常见的实现技术之一,比如早期的聊天室,就是基于这种技术进行实现的,另外现在有些消息推送,也可以基于Socket实现,本文小编给大家介绍了Java利用Socket实现网络通信功能的示例,需要的朋友可以参考下
    2023-11-11
  • SpringBoot使用TraceId进行日志追踪的实现

    SpringBoot使用TraceId进行日志追踪的实现

    本文主要介绍了SpringBoot使用TraceId进行日志追踪的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • 解决eclipse中maven引用不到已经存在maven中jar包的问题

    解决eclipse中maven引用不到已经存在maven中jar包的问题

    这篇文章主要介绍了解决eclipse中maven引用不到已经存在maven中jar包的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • SpringBoot bean加载顺序怎样查看(源码解读)

    SpringBoot bean加载顺序怎样查看(源码解读)

    这篇文章主要介绍了SpringBoot bean加载顺序怎样查看(源码解读)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Java:DocumentBuilderFactory调用XML的方法实例

    Java:DocumentBuilderFactory调用XML的方法实例

    Java:DocumentBuilderFactory调用XML的方法实例,需要的朋友可以参考一下
    2013-04-04
  • 基于Spring定时任务的fixedRate和fixedDelay的区别

    基于Spring定时任务的fixedRate和fixedDelay的区别

    这篇文章主要介绍了基于Spring定时任务的fixedRate和fixedDelay的区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Spring Cloud 整合 nacos实现动态配置中心的详细步骤

    Spring Cloud 整合 nacos实现动态配置中心的详细步骤

    这篇文章主要介绍了Spring Cloud 整合 nacos 实现动态配置中心,整合步骤是通过添加依赖新建nacos配置,本文分步骤通过实例代码给大家详细讲解,需要的朋友可以参考下
    2022-10-10

最新评论