对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 都默认采用整合 Spring Data 的方式进行统一处理,通过大量自动配置,来简化我们对数据访问层的操作,我们只需要进行简单的设置即可实现对书层的访问。本节,我们将学习如何在 Spring Boot 中使用 JDBC 进行数据访问。

导入 JDBC 场景启动器

Spring Boot 将日常企业应用研发中的各种场景都抽取出来,做成一个个的场景启动器(Starter),场景启动器中整合了该场景下各种可能用到的依赖,让用户摆脱了处理各种依赖和配置的困扰。

想要在 Spring  Boot 中使用 JDBC 进行数据访问,第一步就是要在 pom.xml 中导入 JDBC 场景启动器:spring-boot-starter-data-jdbc,代码如下。

<!--导入JDBC的场景启动器-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>

查看 spring-boot-starter-data-jdbc 的依赖树,可以看到,该场景启动器默认引入了一个数据源:HikariCP,如下图所示。

导入数据库驱动

JDBC 的场景启动器中并没有导入数据库驱动,我们需要根据自身的需求引入所需的数据库驱动。例如,访问 MySQL 数据库时,需要导入 MySQL 的数据库驱动:mysql-connector-java,示例代码如下。

<!--导入数据库驱动-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope>
</dependency>

Spring Boot 默认为数据库驱动程序做了版本仲裁,所以我们在导入数据库驱动时,可以不再声明版本。需要注意的是,数据库驱动的版本必须与数据库的版本相对应

常见错误

配置数据源

在导入了 JDBC 场景启动器和数据库驱动后,接下来我们就可以在配置文件(application.properties/yml)中配置数据源了,示例代码(application.yml)如下。

#数据源连接信息
spring:datasource:username: rootpassword: rooturl: jdbc:mysql://127.0.0.1:3306/bianchengbang_jdbcdriver-class-name: com.mysql.cj.jdbc.Driver

测试

Spring Boot 提供了一个名为 JdbcTemplate 的轻量级数据访问工具,它是对 JDBC 的封装。Spring Boot 对 JdbcTemplate 提供了默认自动配置,我们可以直接使用 @Autowired 或构造函数将它注入到 bean 中使用。

查询

 @AutowiredJdbcTemplate jdbcTemplate;@GetMapping("dept")public Object hello(){Dept dept = jdbcTemplate.queryForObject("SELECT * from dept where dept_no = 1",  Dept.class );return dept;}@GetMapping("/list")public Object list(){List<Dept>  list= jdbcTemplate.query("SELECT * from dept ", new BeanPropertyRowMapper(Dept.class) );return list;}

注意:

BeanPropertyRowMapper

将数据库查询结果转换为Java类对象。 常应用于使用Spring的JdbcTemplate查询数据库,获取List结果列表,数据库表字段和实体类自动对应。

#新增
jdbcTemplate.update("INSERT INTO `bianchengbang_jdbc`.`dept` (`dept_no`, `dept_name`, `db_source`)  VALUES (null, ?,?);", dept.getDept_name(),dept.getDb_source());#删除jdbcTemplate.update("DELETE from dept where dept.dept_no = ?", 8);#修改
...
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for dept
-- ----------------------------
DROP TABLE IF EXISTS `dept` ;
CREATE TABLE `dept`  (`dept_no` int(11) NOT NULL AUTO_INCREMENT,`dept_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,`db_source` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,PRIMARY KEY (`dept_no`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of dept
-- ----------------------------
INSERT INTO `dept` VALUES (1, '开发部', 'bianchengbang_jdbc');
INSERT INTO `dept` VALUES (2, '人事部', 'bianchengbang_jdbc');
INSERT INTO `dept` VALUES (3, '财务部', 'bianchengbang_jdbc');
INSERT INTO `dept` VALUES (4, '市场部', 'bianchengbang_jdbc');
INSERT INTO `dept` VALUES (5, '运维部', 'bianchengbang_jdbc');SET FOREIGN_KEY_CHECKS = 1;SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for tb_user
-- ----------------------------
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user`  (`user_id` bigint(20) NOT NULL AUTO_INCREMENT,`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',`mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',`password` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',PRIMARY KEY (`user_id`) USING BTREE,UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户' ROW_FORMAT = DYNAMIC;

SpringBoot-jdbcTemplate访问数据库相关推荐

  1. spring-mybatis.xml 访问html5,Spring mvc无xml配置及利用JdbcTemplate访问数据库

    项目结构 一.新建动态web项目取名HelloSpringMVC 二./WebContent/WEB-INF/lib下导入必要依赖库 commons-collections4-4.1.jar.comm ...

  2. 玩转springboot:整合JdbcTemplate访问数据库进行操作

    这篇文章我们看一下springboot整合jdbc,做一个小例子来讲解. 数据源配置 在pom.xml文件中导入 <dependency><groupId>org.spring ...

  3. springboot几种注入_Spring Boot中使用JdbcTemplate访问数据库

    本文介绍在Spring Boot基础下配置数据源和通过JdbcTemplate编写数据访问的示例. 数据源配置 在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式. ...

  4. spring boot 教程(五)使用JdbcTemplate访问数据库

    今天用Spring Boot访问一下数据库,并且把数据返回到页面中,进行增删改查操作.主要介绍springboot通过jdbc访问关系型MySQL,通过spring的JdbcTemplate去访问. ...

  5. Spring Boot中使用JdbcTemplate访问数据库

    本文介绍在Spring Boot基础下配置数据源和通过JdbcTemplate编写数据访问的示例. 数据源配置 在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式. ...

  6. Java程序员从笨鸟到菜鸟之(七十八)细谈Spring(七)spring之JDBC访问数据库及配置详解

    利用spring访问数据库是我们ssh程序中必不可少的步骤,在没有hibernate之前,我们一般都用jdbc访问数据库,所以用jdbc访问数据库必不可少的要进行一些配置,spring中为我们提供了访 ...

  7. Spring Boot 2.x基础教程:使用JdbcTemplate访问MySQL数据库

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | didispace.com/ ...

  8. 第十五节:SpringBoot使用JPA访问数据库

    JPA是Java Persistence API的简写,是官方提出的一种ORM规范! JPA规范,都在包路径:javax.persistence.*下,像一些常用的如:@Entity.@Id及@Tra ...

  9. 第一步:Spring访问数据库(jdbcTemplate)

    2019独角兽企业重金招聘Python工程师标准>>> 首先当然是访问数据库,以前学习php的时候,就是从留言板.登录等功能开始学习的,之所以这样学习无非就是因为从前台到后台,该有的 ...

  10. Mybatis零基础教程,Java访问数据库核心操作,详解Spring-boot整合Mybatis持久层!

    1.前言 持久层是JavaEE中访问数据库的核心操作,Mybatis是一款优秀的持久层框架,诞生于2010年,2013年迁移至Github.它支持定制化 SQL.存储过程以及高级映射.MyBatis ...

最新文章

  1. (六)java多线程之ReadWriteLock
  2. Android之使用HTTP协议的Get/Post方式向服务器提交数据
  3. 用java设计一个二叉树类的结构,二叉树的基本结构以及java实现
  4. zabbix2.2安装配置(1)
  5. InstallShield 常用常量
  6. ajax请求web服务返回json格式
  7. intel服务器修复两个漏洞,英特尔处理器漏洞怎么修复 Intelcpu漏洞修复方法
  8. 很详细的硬盘基础知识
  9. AI迎来重要发展契机,开发者的机会在哪里?
  10. transform 二维转变
  11. C++ select模型聊天室初版
  12. C# Winform重启软件
  13. win10taskkill强行结束进程_强制结束进程命令(ntsd命令/taskkill命令)使用教程
  14. img 图片找不到时,设置显示默认图片
  15. 使用idea 把项目上传到 svn
  16. 如何进行ERP、CRM实施时的流程梳理?
  17. CVI通过ODBC连接数据库的方法
  18. Linux 系统字体安装
  19. java string的最大长度_String的长度最大是多长?
  20. Windows下利用N2N访问内网资源,点对网的实现

热门文章

  1. 2.4、PHP数组与数组结构
  2. 激发你创意的碎碎语公众平台应用。
  3. 深入理解java虚拟机 新生代_深入理解java虚拟机:笔记
  4. [神器]Windows平台本地socks5代理客户端-ProxyCap
  5. 游戏开发笔记(二)——开发流程和项目管理
  6. jQuery 自制上传头像插件-附带Demo实例(ajaxfileupload.js第三弹)
  7. Ubuntu16.04--poco和boost库编译和安装
  8. android 6无法连电脑,vivo手机无法连接电脑怎么办?vivo手机无法连接电脑的解决方法...
  9. matlab怎么做var,如何使用vgxvarx在matlab中运行这个简单的VAR(VARX?)模型?
  10. python之安装第三方库失败的解决方法