JDBC 操作
简单的 JDBC 操作主要有:
JdbcTemplate
- query
- queryForObject
- queryForList
- update
- execute
简单使用如下所示。
初始化数据库
springboot 会自动执行 resources 文件夹下的 data.sql 和 schema.sql。

schema.sql
CREATE TABLE FOO (ID INT IDENTITY, BAR VARCHAR(64));
data.sql
INSERT INTO FOO (ID, BAR) VALUES (1, 'a');
INSERT INTO FOO (ID, BAR) VALUES (2, 'b');
插入数据
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private SimpleJdbcInsert simpleJdbcInsert;
public void insertData() {
Arrays.asList("a", "b").forEach(bar -> {
jdbcTemplate.update("INSERT INTO FOO (BAR) VALUES (?)", bar);
});
HashMap<String, String> row = new HashMap<>();
row.put("BAR", "c");
Number id = simpleJdbcInsert.executeAndReturnKey(row);
log.info("ID of c: {}", id.longValue());
}
其中 simpleJdbcInsert 的初始化如下所示:
@Bean
public SimpleJdbcInsert simpleJdbcInsert(JdbcTemplate template) {
return new SimpleJdbcInsert(template)
.withTableName("FOO").usingGeneratedKeyColumns("ID");
}
查询数据
public void listData() {
log.info("Count: {}",
jdbcTemplate.queryForObject("SELECT COUNT(*) FROM FOO", Long.class));
// 查询数据并把每一行转换成String
List<String> bars = jdbcTemplate.queryForList("SELECT BAR FROM FOO", String.class);
bars.forEach(bar -> {
log.info("BAR: {}", bar);
});
// 查询数据并把每一行转换成Foo
List<Foo> foos = jdbcTemplate.query("SELECT * FROM FOO", new RowMapper<Foo>() {
@Override
public Foo mapRow(ResultSet resultSet, int i) throws SQLException {
return Foo.builder()
.id(resultSet.getLong(1)) // 序号从1开始
.bar(resultSet.getString(2))
.build();
}
});
foos.forEach(foo -> {
log.info("FOO: {}", foo);
});
}
JDBC 操作的更多相关文章
- Java的JDBC操作
Java的JDBC操作 [TOC] 1.JDBC入门 1.1.什么是JDBC JDBC从物理结构上来说就是java语言访问数据库的一套接口集合,本质上是java语言根数据库之间的协议.JDBC提供一组 ...
- hibernate4中使用Session doWork()方法进行jdbc操作(代码)
Hibernate3.3.2版本中getSession().connection()已被弃用,hibernate4中官方推荐使用Session doWork()方法进行jdbc操作 首先看看Work接 ...
- jdbc mysql crud dao模型 sql注入漏洞 jdbc 操作大文件
day17总结 今日内容 l JDBC 1.1 上次课内容总结 SQL语句: 1.外键约束:foreign key * 维护多个表关系! * 用来保证数据完整性! 2.三种关系: * 一对多: * 一 ...
- JDBC操作MySQL数据库案例
JDBC操作MySQL数据库案例 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...
- JavaWeb用Jdbc操作MySql数据库(一)
一.添加开发包.在JavaWeb中用jdbc操作数据库,使用方法与java一样,但是在处理开发包的问题上有点差别.JavaWeb不能将mysql-connector-java-5.1.7-bin.ja ...
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- 使用JdbcTemplate简化JDBC操作 实现数据库操作
使用Spring JDBC框架方遍简单的完成JDBC操作,满足性能的需求且灵活性高. Spring JDBC框架由4个部分组成,即core.datasource.object.support. org ...
- 用于JDBC操作数据库的公共类
/* * @(#)CommonSql.java 2011-9-5 * * Copyright 2011 Bianjing,All rights reserved. */ import java.sql ...
- jdbc操作mysql
本文讲述2点: 一. jdbc 操作 MySQL .(封装一个JdbcUtils.java类,实现数据库表的增删改查) 1. 建立数据库连接 Class.forName(DRIVER); connec ...
- JDBC操作数据库的学习(2)
在上一篇博客<JDBC操作数据库的学习(1)>中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本 ...
随机推荐
- 几个不错的echarts +百度地图 案例
https://echarts.baidu.com/examples/editor.html?c=map-polygon https://echarts.baidu.com/examples/edit ...
- sqlserver存储过程里传字段、传字符串,并返回DataTable、字符串,存储过程调用存储过程。
经常需要查一些信息, 想写视图来返回数据以提高效率,但是用试视图不能传参,只好想到改存储过程.记录一下语法,方便以后做项目时候想不起来了用. 1:传字段返回datatable 2: 传字段回一串字符 ...
- 【CMDB】高级配置
思路: 一份默认配置,一份用户自定义配置,将两者结合,自定义优先级大于默认配置 目录结构 ''' 用户自定义的配置文件,settings.py ''' USER = 'xiaoming' PASSWO ...
- 【HICP Gauss】数据库 数据库管理(调优 启动流程)-4
数据库参数: 创建数据库 调优数据库 其他---->控制资源使用 控制数据库内部机制 设置重要属性 参数数据保存在cfg/Zengine.ini 文件中 参数保存使用 key=value的保存形 ...
- windows IIS安装php服务及配置
windows IIS安装php服务及配置 启动IIS服务 打开 "控制面板" => "程序" => "启用或关闭Window功能&quo ...
- 12.安装olny office服务---不成功
安装olny office服务 在01.centos7环境准备的基础上安装olny office服务 参考博客:https://blog.csdn.net/networken/article/deta ...
- 程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入(图文详解)
https://blog.csdn.net/ChenRui_yz/article/details/86489067 随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,下面 ...
- 拖拉插件 drag drop
https://hejx.herokuapp.com/vue-dndl # Installation npm install vue-drag-and-drop-list --save # Usage ...
- mount.cifs Windows共享目录权限755问题
umount -l /usr/local/tomcat7/webapps/dsideal_yy/html/down mount -t cifs -o rw,dir_mode=,file_mode=,s ...
- P1903 [国家集训队]数颜色 / 维护队列(带修莫队)
题目描述: 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会向你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. ...