1 spring-jdbc

  • core JdbcTemplate 等相关核心接口和类(核心)
  • datesource 数据源相关的辅助类(内嵌数据源的初始化)
  • object 将基本的JDBC操作封装成对象
  • support 错误码等其他辅助工具

2.在学习之前先了解一下如何去通过注解实现一个Bean

  • @Component 通用注解 用来注解一个通用的Bean 一般作为一个工具Bean
  • @Repository 数据操作的一个仓库
  • @Service 服务业务
  • @Controller SpringMVC
  • @RestController

3.简单的JDBC 操作

  • query
  • queryForObject
  • queryForList
  • update 实现插入和修改删除
  • execute

4. 代码上手操作

新建一个UserRepository 使用@Repository注解注释为一个数据操作的仓库


@Autowired
private JdbcTemplate jdbcTemplate; /***
* 插入数据
*
* @Author MRC
* @Date 2019年6月4日 上午11:12:56
*/
public void insertData() { Arrays.asList("123","456").forEach(bar -> { jdbcTemplate.update("insert into user(id,username,password) values(?,?,?)", bar,bar,bar); });
}

2.查询数据


public void listData() {
//查询单个
System.out.println(jdbcTemplate.queryForObject("select count(id) from user", Long.class)); //查询list
List<String> list = jdbcTemplate.queryForList("select id from user",String.class); list.forEach(id -> { System.out.println("id--->"+id); }); //查询出来的数据与对象进行关联
List<User> users = jdbcTemplate.query("select * from user", new RowMapper<User>() { @Override
public User mapRow(ResultSet arg0, int arg1) throws SQLException { return new User(arg0.getString("id"), arg0.getString("username"), arg0.getString("password"));
}
}); users.forEach(user -> {
System.out.println("user--->"+user); });
}

3.使用SimpleJdbcInsert 代替JdbcTemplate 实现最基本的查询


@Autowired
private SimpleJdbcInsert simpleJdbcInstall; //注入两个对象
  @Bean
@Autowired
public SimpleJdbcInsert simpleJdbcInsert(JdbcTemplate jdbcTemplate) { //将User表与SimpleJdbcInsert关联到一起
return new SimpleJdbcInsert(jdbcTemplate).withTableName("user").usingGeneratedKeyColumns("id"); } @Bean
@Autowired
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(DataSource dataSource) {
return new NamedParameterJdbcTemplate(dataSource);
}

3.1 使用SimpleJdbcTemplate

HashMap<String, String> row = new HashMap<>();
    
      //id会自动生成 采用自增长主键
row.put("username", "ddd");
row.put("password", "345"); Number id = simpleJdbcInstall.executeAndReturnKey(row);
System.out.println(id);

5. SQL批处理


JdbcTemplate

  • batchUpdate
  • BatchPreparedStatementSetter

NamedParameterJdbcTemplate

  • batchUpdate
  • SqlParameterSourceUtils.createBatch

5.1 使用JdbcTemplate.batchUpdate 实现一个SQL批处理

public void batchInsert() {
//使用Jdbc批量操作数据
jdbcTemplate.batchUpdate("insert into user(username,password) values(?,?)", new BatchPreparedStatementSetter() { //sql语句里面的?进行一个赋值
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setString(1, "user-"+i);
ps.setString(2, "pass-"+i); }
//批量操作次数
@Override
public int getBatchSize() {
return 5;
}
});
}

5.2使用 NamedParamterJdbcTemplate 实现一个SQL批处理

@Autowired
private NamedParameterJdbcTemplate namedParameterJdbcTemplate; public void batchInsert2() { List<User> users = new ArrayList<>();

     //主键自增长 所以不写
users.add(new User("", "user-11", "pass-11"));
users.add(new User("", "user-12", "pass-12"));
users.add(new User("", "user-13", "pass-13")); namedParameterJdbcTemplate.batchUpdate("insert into user(username,password) values(:username,:password)", SqlParameterSourceUtils.createBatch(users)); }

示例代码:https://gitee.com/mrc1999/SpringBoot-study-book/tree/master/03JdbcTemplate

玩转Spring全家桶笔记 03 Spring的JDBC操作以及SQL批处理的实现的更多相关文章

  1. 玩转Spring全家桶笔记 04 Spring的事务抽象、事务传播特性、编程式事务、申明式事务

    1.Spring 的事务抽象 Spring提供了一致的事务模型 JDBC/Hibernate/Mybatis 操作数据 DataSource/JTA 事务 2.事务抽象的核心接口 PlatformTr ...

  2. 玩转Spring全家桶笔记 02 那些好用的连接池HikariCP

    1.前言 简单了解一下来自日本的一个新起之秀连接池---HikariCP github:https://github.com/brettwooldridge/HikariCP 2.HikariCP为什 ...

  3. Spring全家桶系列–SpringBoot渐入佳境

    //本文作者:cuifuan //本文将收录到菜单栏:<Spring全家桶>专栏中 首发地址:https://www.javazhiyin.com/20913.html 萌新:小哥,我在实 ...

  4. Java秋招面试复习大纲(二):Spring全家桶+MyBatis+MongDB+微服务

    前言 对于那些想面试高级 Java 岗位的同学来说,除了算法属于比较「天方夜谭」的题目外,剩下针对实际工作的题目就属于真正的本事了,热门技术的细节和难点成为了面试时主要考察的内容. 这里说「天方夜谭」 ...

  5. 最全153道Spring全家桶面试题,你都碰到过哪些?(含答案解析)

    前言 Spring 框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶. 毋庸置疑,Spring 早已成为 Java 后端开发的行业标准,无数的公司选择 Spring 作为基础的 ...

  6. 10分钟详解Spring全家桶7大知识点

    Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC.SpringBoot.Spring Cloud.Spring Cloud Dataflow等解决方案.有人亲切的称之为 ...

  7. Spring全家桶–SpringBoot Rest API

    Spring Boot通过提供开箱即用的默认依赖或者转换来补充Spring REST支持.在Spring Boot中编写RESTful服务与SpringMVC没有什么不同.总而言之,基于Spring ...

  8. Spring全家桶系列–SpringBoot之AOP详解

    //本文作者:cuifuan //本文将收录到菜单栏:<Spring全家桶>专栏中 面向方面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP). OOP中模块化的关 ...

  9. Spring全家桶系列–[SpringBoot入门到跑路]

    //本文作者:cuifuan Spring全家桶————[SpringBoot入门到跑路] 对于之前的Spring框架的使用,各种配置文件XML.properties一旦出错之后错误难寻,这也是为什么 ...

随机推荐

  1. nbbnbnbnbnb

    1.本章学习总结(2分) 1.1 学习内容总结 结构体的定义与赋值 结构类型定义的一般形式为: struct 结构名 { 类型名 结构成员1: 类型名 结构成员2: ... 类型名 结构成员3: }; ...

  2. GoCN每日新闻(2019-10-19)

    GoCN每日新闻(2019-10-19) Go 1.13中的错误处理 https://tonybai.com/2019/10/18/errors-handling-in-go-1-13 golang核 ...

  3. md5加密后不能解密

    MD5加密原理是散列算法,散列算法也称哈希算法.计算机专业学的数据结构就有哈希表这一知识点.比如10除以3余数为一,4除以3余数也为一,但余数为一的就不知道这个数是哪个了.所以md5不能解密.就算是设 ...

  4. Net core学习系列(五)——Net Core应用程序Startup类介绍

    一.Startup 类 ASP.NET Core应用程序需要一个启动类,按照惯例命名为Startup.在主程序的Web Host生成器(WebHostBuilderExtensions)的 UseSt ...

  5. Leetcode: Find And Replace in String

    To some string S, we will perform some replacement operations that replace groups of letters with ne ...

  6. Tomcat中加载不到项目 项目构建Deployment Assembly报错:The given project is not a virtual component project

    转:   The given project is not a virtual component project The given project is not a virtual compone ...

  7. Nginx 配置 stream SSL 第四层 代理

    场景:服务器F针对访问终端需要添加白名单操作,由到终端数量较多,所以用了一台代理服务器 P,在服务F中添加 服务器P IP地址的白名单,所有终端访问服务器P 由于我已经安装过 Nginx 所以只需要添 ...

  8. Linux共享文件夹映射到Windows磁盘

    摘自:https://www.jianshu.com/p/4a06121450e5 1.1方案背景 本方案就是在解决磁盘不足的问题而产生的,利用映射盘的原理将Linux共享文件夹映射到Windows磁 ...

  9. 123456123456#1#---###3%%%----com.zzj.SuperPuperID668---前拼show后广--嘻哈水管工-111111

    com.zzj.SuperPuperID668---前拼show后广--嘻哈水管工-1111111111111

  10. [LeetCode] 167. Two Sum II - Input array is sorted 两数和 II - 输入是有序的数组

    Given an array of integers that is already sorted in ascending order, find two numbers such that the ...