SpringBoot-jdbcTemplate访问数据库
对于数据访问层,无论是 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访问数据库相关推荐
- spring-mybatis.xml 访问html5,Spring mvc无xml配置及利用JdbcTemplate访问数据库
项目结构 一.新建动态web项目取名HelloSpringMVC 二./WebContent/WEB-INF/lib下导入必要依赖库 commons-collections4-4.1.jar.comm ...
- 玩转springboot:整合JdbcTemplate访问数据库进行操作
这篇文章我们看一下springboot整合jdbc,做一个小例子来讲解. 数据源配置 在pom.xml文件中导入 <dependency><groupId>org.spring ...
- springboot几种注入_Spring Boot中使用JdbcTemplate访问数据库
本文介绍在Spring Boot基础下配置数据源和通过JdbcTemplate编写数据访问的示例. 数据源配置 在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式. ...
- spring boot 教程(五)使用JdbcTemplate访问数据库
今天用Spring Boot访问一下数据库,并且把数据返回到页面中,进行增删改查操作.主要介绍springboot通过jdbc访问关系型MySQL,通过spring的JdbcTemplate去访问. ...
- Spring Boot中使用JdbcTemplate访问数据库
本文介绍在Spring Boot基础下配置数据源和通过JdbcTemplate编写数据访问的示例. 数据源配置 在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式. ...
- Java程序员从笨鸟到菜鸟之(七十八)细谈Spring(七)spring之JDBC访问数据库及配置详解
利用spring访问数据库是我们ssh程序中必不可少的步骤,在没有hibernate之前,我们一般都用jdbc访问数据库,所以用jdbc访问数据库必不可少的要进行一些配置,spring中为我们提供了访 ...
- Spring Boot 2.x基础教程:使用JdbcTemplate访问MySQL数据库
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | didispace.com/ ...
- 第十五节:SpringBoot使用JPA访问数据库
JPA是Java Persistence API的简写,是官方提出的一种ORM规范! JPA规范,都在包路径:javax.persistence.*下,像一些常用的如:@Entity.@Id及@Tra ...
- 第一步:Spring访问数据库(jdbcTemplate)
2019独角兽企业重金招聘Python工程师标准>>> 首先当然是访问数据库,以前学习php的时候,就是从留言板.登录等功能开始学习的,之所以这样学习无非就是因为从前台到后台,该有的 ...
- Mybatis零基础教程,Java访问数据库核心操作,详解Spring-boot整合Mybatis持久层!
1.前言 持久层是JavaEE中访问数据库的核心操作,Mybatis是一款优秀的持久层框架,诞生于2010年,2013年迁移至Github.它支持定制化 SQL.存储过程以及高级映射.MyBatis ...
最新文章
- (六)java多线程之ReadWriteLock
- Android之使用HTTP协议的Get/Post方式向服务器提交数据
- 用java设计一个二叉树类的结构,二叉树的基本结构以及java实现
- zabbix2.2安装配置(1)
- InstallShield 常用常量
- ajax请求web服务返回json格式
- intel服务器修复两个漏洞,英特尔处理器漏洞怎么修复 Intelcpu漏洞修复方法
- 很详细的硬盘基础知识
- AI迎来重要发展契机,开发者的机会在哪里?
- transform 二维转变
- C++ select模型聊天室初版
- C# Winform重启软件
- win10taskkill强行结束进程_强制结束进程命令(ntsd命令/taskkill命令)使用教程
- img 图片找不到时,设置显示默认图片
- 使用idea 把项目上传到 svn
- 如何进行ERP、CRM实施时的流程梳理?
- CVI通过ODBC连接数据库的方法
- Linux 系统字体安装
- java string的最大长度_String的长度最大是多长?
- Windows下利用N2N访问内网资源,点对网的实现
热门文章
- 2.4、PHP数组与数组结构
- 激发你创意的碎碎语公众平台应用。
- 深入理解java虚拟机 新生代_深入理解java虚拟机:笔记
- [神器]Windows平台本地socks5代理客户端-ProxyCap
- 游戏开发笔记(二)——开发流程和项目管理
- jQuery 自制上传头像插件-附带Demo实例(ajaxfileupload.js第三弹)
- Ubuntu16.04--poco和boost库编译和安装
- android 6无法连电脑,vivo手机无法连接电脑怎么办?vivo手机无法连接电脑的解决方法...
- matlab怎么做var,如何使用vgxvarx在matlab中运行这个简单的VAR(VARX?)模型?
- python之安装第三方库失败的解决方法