目录


概念

JdbcTemplate : 是 Spring 中对持久层(JDBC 技术)一个封装 ;

使用起来和 Dbutuis 很相似 ;(其实 JdbcTemplate 还不如 Dbutils,看着 Spring 的面子,学一下 ;)


配置数据库

//        配置数据库,配置数据源
DriverManagerDataSource dataSource = new DriverManagerDataSource() ;
// 配置数据库驱动
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
// 设置数据库URI
dataSource.setUrl("jdbc:mysql:///springDay03");
// 配置管理员账号密码
dataSource.setUsername("root");
dataSource.setPassword("root");

创建 JdbcTemplate 对象

//        创建 jdbcTemplate 模板
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource) ;

增删改查代码

跟 Dbutils 操作差不多

增删改,都是调用 update 方法,操作方法跟 Dbutils 基本一致 ;

//        增
String sql = "insert into user value(?,?,?)" ;
jdbcTemplate.update(sql,new Object[]{"001","蜡笔小新","123456"}) ; // 改
sql = "update user set password = ? where id = ?" ;
jdbcTemplate.update(sql,new Object[]{"0000","001"}) ; // 删
sql = "DELETE from user where id = ?" ;
jdbcTemplate.update(sql,"001") ;

在查询的时候, JdbcTemplate 跟 Dbutils 都一样,都提供一个接口,让我们实现我们自己的处理逻辑 ;JdbcTemplate 给出的接口是:RowMapper ;

说 JdbcTemplate 还不如 Dbutils 的原因,就在于:JdbcTemplate 竟然,没有提供基本的实现类给我们。。

  1. 查询返回当个结果(queryForObject(sql,泛型))

        sql = "select COUNT(*) FROM USER " ;
    int num = jdbcTemplate.queryForObject(sql,Long.class).intValue() ;
  2. 查询返回当个对象(queryForObject(sql, new RowMapper<泛型>,可变参数)

        sql = "select * from user where id = ?" ;
    User user = jdbcTemplate.queryForObject(sql, new RowMapper<User>() {
    @Override
    public User mapRow(ResultSet resultSet, int i) throws SQLException {
    String name = resultSet.getString("name") ;
    String password = resultSet.getString("password") ;
    User user = new User() ;
    user.setName(name);
    user.setPassword(password);
    return user;
    }
    },"1");
  3. 查询返回 list 集合(query)


    sql = "select * from user " ;
    List<User> users = jdbcTemplate.query(sql, new RowMapper<User>() {
    // 这里的第二个参数是,代表本当前装进list是第几个对象,从0开始计数 ;
    @Override
    public User mapRow(ResultSet resultSet, int i) throws SQLException {
    String name = resultSet.getString("name") ;
    String password = resultSet.getString("password") ;
    User user = new User() ;
    user.setName(name);
    user.setPassword(password);
    return user;
    }
    });

(六)Spring 中的 JdbcTemplate的更多相关文章

  1. Spring中的JDBCTemplate

    src\dayday\JDBCTestTest package dayday;import com.sun.org.apache.xalan.internal.xsltc.compiler.Templ ...

  2. Spring中的JdbcTemplate使用

    1.引出SpringJDBC的概念 在学习JDBC编程时我们会感觉到JDBC的操作是多么繁琐,那么当我们学习的Hibernate框架时,我们感觉到数据库的操作也变非常简单,提高了开发效率.但是当使用H ...

  3. Spring中的JdbcTemplate的使用

    一.jdbcTemplate的作用 它就是用于和数据库交互的,实现对表的crud.与dbutils相似 二.JdbcTemplate的使用 <dependency> <groupId ...

  4. Spring 中的 JDBCTemplate

    新建一个java工程 写好spring配置文件,直接上代码 <?xml version="1.0" encoding="UTF-8"?> <b ...

  5. spring 中的设计模式

    https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=2247485205&idx=1&sn=63455d2313776d ...

  6. Spring中的设计模式学习

    Spring提供了一种Template的设计哲学,包含了很多优秀的软件工程思想. 1. 简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. ...

  7. Spring中的设计模式

    [Spring中的设计模式] http://www.uml.org.cn/j2ee/201301074.asp [详解设计模式在Spring中的应用]    [http://www.geek521.c ...

  8. Spring中使用的设计模式

    目录 Spring使用的设计模式 1.单例模式 2.原型模式 3.模板模式 4.观察者模式 5.工厂模式 简单工厂模式 工厂方法模式 6.适配器模式 7.装饰者模式 8.代理模式 9.策略模式   S ...

  9. 详解设计模式在Spring中的应用

    设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆. 今天,在IT学习者网站就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了其设 ...

随机推荐

  1. C语言学习笔记10-结构体、枚举、联合体

    C语言学习笔记10-结构体.枚举.联合体    待传

  2. pwn学习日记Day22 《程序员的自我修养》读书笔记

    知识杂项 软连接 命令: ln -s 原文件 目标文件 特征: 1.相当于windows的快捷方式 2.只是一个符号连接,所以软连接文件大小都很小 3.当运行软连接的时候,会根据连接指向找到真正的文件 ...

  3. java跨域配置

    一.问题 使用前后端分离模式开发项目时,往往会遇到这样一个问题 -- 无法跨域获取服务端数据 这是由于浏览器的同源策略导致的,目的是为了安全.在前后端分离开发模式备受青睐的今天,前端和后台项目往往会在 ...

  4. 图的深度优先遍历(DFS)和广度优先遍历(BFS)算法分析

    1. 深度优先遍历 深度优先遍历(Depth First Search)的主要思想是: 1.首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未访问过的顶点: 2.当没有未访问过的顶点时,则回 ...

  5. vagrant系列三:vagrant搭建的php7环境

    原文:https://blog.csdn.net/hel12he/article/details/51107236 前面已经把vagrant的基础知识已经基本过了一遍 了,相信只要按着教程来,你已经搭 ...

  6. laydate V5-0-8动态设置min值

    laydate通过设置min,max值来对用户输入的时间做约束 laydate v1.0版本 //日期插件 var start={ elem:"#start", format:&q ...

  7. Tomcat下配置javaWeb访问路径-Linux

    首先找到你的Tomcat的server.xml文件 笔者直接编辑 sudo vi /app/prod/conf/server.xml 访问只需要您的IP地址就可以访问项目了 第二个配置则是访问 ip+ ...

  8. Salesforce LWC学习(九) Quick Action in LWC

    我们在lightning开发中,quick action是一个常用的功能,很可惜的是,lwc目前还不支持单独的custom quick action操作,只能嵌套在aura中使用才能发挥作用. 官方也 ...

  9. Python生成随机数组的方法小结

    Python生成随机数组的方法小结 本文实例讲述了Python生成随机数组的方法.分享给大家供大家参考,具体如下: 研究排序问题的时候常常需要生成随机数组来验证自己排序算法的正确性和性能,今天把Pyt ...

  10. JAVA 基础编程练习题40 【程序 40 字符串排序】

    40 [程序 40 字符串排序] 题目:字符串排序. package cskaoyan; public class cskaoyan40 { @org.junit.Test public void a ...