对于数据访问层,无论是 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. 动态规划 最小编辑代价
  2. JAVA入门级教学之(多态)
  3. 基于文本 c语言,[源码和文档分享]基于C语言实现的文件系统
  4. RocketMQ单机版本安装(windows环境)
  5. P2420 让我们异或吧 (树链剖分,异或前缀和)
  6. mysql各种key_SQL中的各种键
  7. 《Java开发实战经典》习题第3章第12题:使用for循环打印下面的图形(用for循环打印金字塔)
  8. 速达软件登录远程客户端总提示检查卡号密码
  9. beanshell断言_jmeter之beanshell断言---数据处理
  10. 一篇文章讲透控制反转和依赖注入
  11. java 判断对象的属性是否为空,如何判断一个对象里的属性是否都为空的
  12. 推荐的这22个高频 CLI 工具,确定不收藏吗?
  13. 《Vue入门到精通》最强Vue教程,附带经典案例,万字详解,干货十足!
  14. Python版打字练习软件源代码,键盘练习软件源代码,含娱乐模式和训练模式
  15. 惠普打印机介质不匹配_惠普打印机的常见故障
  16. java中got是什么意思_Java基本概念的了解
  17. 哈巴狗可以分为哪几种?
  18. sharding-jdbc(ShardingSphere )、mycat、DRDS 三个分布式数据库中间件的简单介绍(纯理论说明)
  19. hive插入多条数据sql_30分钟入门 Hive SQL(HQL 入门篇)
  20. IEEE1588精密时钟(PTP网络时钟服务器)在数字化变电站时钟同步方面的应用

热门文章

  1. 使用java代码编写脚本,把oracle建表语句变成hive建表语句
  2. Layui-颜色选择器
  3. linux安装cmake
  4. python连接到SQList数据库以及简单操作
  5. [程序员面试题精选100题]13.第一个只出现一次的字符
  6. msn space 决定搬家了
  7. 使用midi.js在浏览器上播放mid音频文件
  8. 实现财富自由最好的准备
  9. mockjs 常用语法 以及 MockServer
  10. Cadence 17.4 原理图导出PDF