SpringBoot整合JdbcTemplate(五)上

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: SpringBoot整合JdbcTemplate(五)

一. SpringBoot 使用 JdbcTemplate


JdbcTemplate 实际上是 Spring 时就拥有的。 具体可以看,老蝴蝶以前写的 Spring系列文章 Spring的JdbcTemplate的简单使用(七)


在 SpringBoot 时,继续讲解 JdbcTemplate, 一方面是扩展其用法,另一方面,是为了知识的完整性,引出 Jpa,Mybatis,MybatisPlus 等数据库框架,Druid数据库连接池配置。


老蝴蝶按照上一章节的方式,创建了 JdbcTemplate的项目,添加了热布署等依赖信息。


一.一 在 pom.xml 文件里面添加依赖


一.一.一 添加数据库驱动依赖


这儿使用 Mysql 数据库进行讲解


<!--引入MySql的驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>


默认引入的是 8.0.18 版本。


一.一.二 添加 springboot整合jdbc的依赖


<!--引入springboot与jdbc整合的依赖,spring-boot-starter-jdbc-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>


注意,引入的是 spring-boot-starter-jdbc, 并不是 spring-jdbc


一.二 application.yml 中配置数据库连接信息


# 引入 数据库的相关配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8&useSSL=false
    username: root
    password: abc123


一.三 注入 JdbcTemplate 模板对象


@SpringBootTest
@Log4j2
public class JdbcApplicationTests {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Test
    void contextLoads() {
        log.info("输出数据库jdbcTemplate连接信息,{}",jdbcTemplate);
    }
}


运行 contextLoads() 测试方法,可以发现, JdbcTemplate对象,注入成功。


20210424203419227.png


老蝴蝶展示出 数据库元信息,让大家看一下。


  @Test
    void metaDataTest() throws Exception {
        //获取 DataSource 对象
        DataSource dataSource=jdbcTemplate.getDataSource();
        //获取 DatabaseMetaData 数据库元数据
        DatabaseMetaData databaseMetaData = dataSource.getConnection().getMetaData();
        log.info("用户名是{}",databaseMetaData.getUserName());
        log.info("url是{}",databaseMetaData.getURL());
        log.info("数据库类型是{}",databaseMetaData.getDatabaseProductName());
    }


运行 metaDataTest() 测试方法,打印出了数据库的元信息


20210424203431277.png


注意,这儿引入的是 HikariPool 连接池,以后,我们会用 Druid 连接池替换它。


一.四 引入 jdbc驱动,却不配置数据库连接信息


如果忘记了 一.二 步骤中的内容,即在配置文件里面,没有配置相关的数据库连接信息。


启动的时候,测试会报错。


20210424203440370.png


主方法 JdbcApplication.java 运行时,也会报错


@SpringBootApplication
public class JdbcApplication {
    public static void main(String[] args) {
        SpringApplication.run(JdbcApplication.class,args);
        System.out.println("运行 JdbcTemplate 配置文件");
    }
}


20210424203512446.png


依赖里面检测到了 jdbc的依赖,但是没有添加 jdbc的配置信息,所以会报错。


需要在启动时,在 @SpringBootApplication 注解时,排除掉 DataSource配置的依赖


@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})


这样,才启动的时候,就不检查 数据库的配置信息了。 主要针对的是,从网上找的项目,里面放置上大量的第三方依赖,而又不想手动从pom.xml中移除依赖的情况,如 RedisTemplate,RestTemplate 等。


二. JdbcTemplate 的详细用法


JdbcTemplate 里面封装了大量的方法,我们可以直接使用,简化我们的开发。


二.一 使用前准备


二.一.一 数据库准备


准备一个 user 表。


CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(15) DEFAULT NULL,
  `sex` varchar(20) DEFAULT NULL,
  `age` int(6) DEFAULT NULL,
  `description` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;


二.一.二 实体准备


在pojo 包下,创建一个 User 类


@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    /**
     * @param id id编号
     * @param name 姓名
     * @param sex 性别
     * @param age 年龄
     * @param description 描述
     */
    private Integer id;
    private String name;
    private String sex;
    private Integer age;
    private String description;
}


二.一.三 业务层接口和实现准备


public interface UserService {
}


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


二.一.四 测试类准备


@SpringBootTest
@Log4j2
public class CrudJdbcApplicationTests {
    @Autowired
    private UserService userService;
}



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL Java 关系型数据库
SpringBoot从入门到精通(三十)如何使用JdbcTemplate操作数据库?
前面介绍了Mybatis数据持久化框架,Mybatis虽然功能强大,但是,使用起来还是比较复杂的。所以接下来介绍一个简单的数据持久化框架——JdbcTemplate。
SpringBoot从入门到精通(三十)如何使用JdbcTemplate操作数据库?
|
10月前
|
Java 数据库连接 数据库
SpringBoot整合持久层技术之搭建JDBCTemplate项目实战
现在有了MyBatis之后很少人使用JDBCTemplate来整合项目了,要么就是JPA技术,要么就是Mybatis来操作数据库,今天我搭建一个springboot的template项目,看看其和JPA、Mybatis有什么不同的地方,方便大家一起学习。
51 0
|
1月前
|
Java 关系型数据库 MySQL
Spring Boot使用JdbcTemplate操作mysql数据库实战(附源码 超详细)
Spring Boot使用JdbcTemplate操作mysql数据库实战(附源码 超详细)
54 0
|
7月前
|
Java 数据库连接 测试技术
微服务技术系列教程(03) - SpringBoot - 整合各种数据源(JdbcTemplate、MyBatis、JPA)
微服务技术系列教程(03) - SpringBoot - 整合各种数据源(JdbcTemplate、MyBatis、JPA)
39 0
|
10月前
|
Oracle NoSQL 关系型数据库
SpringBoot-13-使用JdbcTemplate链接Mysql数据库
在企业项目开发者,数据库的使用是必不可少的一部分,常用的数据库有mysql、oracle、sqlserver、redis等,我们接下来的几章会介绍SpringBoot中如何使用数据库,本章就介绍使用JdbcTemplate链接mysql。
93 0
|
XML Java 关系型数据库
SpringBoot 整合 JdbcTemplate|学习笔记
快速学习 SpringBoot 整合 JdbcTemplate
82 0
SpringBoot 整合 JdbcTemplate|学习笔记
|
Java 关系型数据库 MySQL
SpringBoot整合JdbcTemplate连接Mysql
SpringBoot整合JdbcTemplate连接Mysql
136 0
|
SQL Java
SpringBoot高级篇JdbcTemplate之数据更新与删除
前面介绍了JdbcTemplate的插入数据和查询数据,占用CURD中的两项,本文则将主要介绍数据更新和删除。从基本使用上来看,姿势和前面的没啥两样
826 0
SpringBoot高级篇JdbcTemplate之数据更新与删除
|
Java 关系型数据库 MySQL
springboot学习-使用JdbcTemplate操作MySQL数据库
springboot学习-使用JdbcTemplate操作MySQL数据库
251 0
springboot学习-使用JdbcTemplate操作MySQL数据库
|
Java
SpringBoot整合JdbcTemplate
SpringBoot整合JdbcTemplate
107 0