需求:

  • 自定义一个JdbcTemplate模板,实现增删改数据库中表记录的功能

     1 package demo03;
    2
    3 import utils.JDBC_DBCP_Utils;
    4
    5 import javax.sql.DataSource;
    6 import java.sql.Connection;
    7 import java.sql.ParameterMetaData;
    8 import java.sql.PreparedStatement;
    9 import java.sql.SQLException;
    10
    11 public class MyJDBCTemplate {
    12 //1. 需要传入数据源
    13 private DataSource dataSource;
    14
    15 //构造方法
    16 public MyJDBCTemplate(DataSource dataSource) {
    17 this.dataSource = dataSource;
    18 }
    19
    20 /**
    21 * 封装了JDBC操作数据库的步骤+元数据, 释放资源(使用者不需要关注释放资源了)
    22 * 进行增,删,修改
    23 *
    24 * @param sql sql语句
    25 * @param params 参数
    26 * @return Ctrl+Alt+T
    27 */
    28 public int update(String sql, Object... params) {
    29 Connection connection = null;
    30 PreparedStatement preparedStatement = null;
    31 try {
    32 //0. 非空判断
    33 if (dataSource == null) throw new RuntimeException("dataSource must not null...");
    34
    35 if (sql == null) throw new RuntimeException("sql must not null...");
    36
    37 //1. 从dataSource 获得连接对象
    38 connection = dataSource.getConnection();
    39 //2. 创建预编译的sql语句对象 insert into user values (?,?,?,?)
    40 preparedStatement = connection.prepareStatement(sql);
    41
    42 //3. 获得参数的元数据对象
    43 ParameterMetaData parameterMetaData = preparedStatement.getParameterMetaData();
    44 //4. 获得参数的个数
    45 int parameterCount = parameterMetaData.getParameterCount();
    46
    47 //5. 给每一个?赋值
    48 for (int i = 0; i < parameterCount; i++) {
    49 preparedStatement.setObject(i + 1, params[i]);
    50 }
    51
    52 //6. 执行
    53 int i = preparedStatement.executeUpdate();
    54 return i;
    55 } catch (SQLException e) {
    56 e.printStackTrace();
    57 } finally {
    58 //释放资源
    59 JDBC_DBCP_Utils.release(null, preparedStatement, connection);
    60 }
    61 return -1;
    62 }
    63 }

自定义一个JdbcTemplate(增删改数据库中表记录)的更多相关文章

  1. JDBC增删改数据库的操作

    JDBC入门及简单增删改数据库的操作 一.JDBC的引入 1.JDBC的概念 JDBC:Java Database Connection,表示数据库连接(任何数据库都支持JDBC的连接),是一个独立于 ...

  2. Hibernate4 拦截器(Interceptor) 实现实体类增删改的日志记录

    转自:https://blog.csdn.net/he90227/article/details/44783099 开发应用程序的过程中,经常会对一些比较重要的数据修改都需要写日志.在实际工作的工程中 ...

  3. 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用

    2016年时,Jerry曾经写过一系列关于SAP Fiori Smart Template(现在更名为Fiori Elements了)的博客,介绍了所谓的MDD开发方法论 - Metadata Dri ...

  4. 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序

    使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...

  5. 如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用

    Jerry之前的文章30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用 发布之后,有朋友问我,"没错, 我是在你的文章里看到了Fiori应用的 ...

  6. 基于Entity Framework的自定义分页,增删改的通用实现

    简介 之前写个一个基于Dapper的分页实现,现在再来写一个基于Entity Framework的分页实现,以及增删改的通用实现. 代码 还是先上代码:https://github.com/jinwe ...

  7. MySQL数据库学习笔记(八)----JDBC入门及简单增删改数据库的操作

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. 基于 abp vNext 和 .NET Core 开发博客项目 - 自定义仓储之增删改查

    上一篇文章(https://www.cnblogs.com/meowv/p/12913676.html)我们用Code-First的方式创建了博客所需的实体类,生成了数据库表,完成了对EF Core的 ...

  9. JdbcTemplate增删改查

    1.使用JdbcTemplate的execute()方法执行SQL语句 jdbcTemplate.execute("CREATE TABLE USER (user_id integer, n ...

  10. java连接mysql数据库增删改查操作记录

    1. 连接数据库.得到数据库连接变量 注意连接数据库的时候 (1)打开DB Browser 新建一个Database Driver,注意加入Driver JARs的时候加入的包,我的是mysql-co ...

随机推荐

  1. 【转载】七个人生工具,终生受益 | SWOT、PDCA、6W2H、SMART、WBS、时间管理、二八原则

    人类历史原本就是一部追求自身平衡的奋斗史,本文介绍七个人生工具:SWOT.PDCA.6W2H.SMART.WBS.时间管理.二八原则 . 1.SWOT分析法 Strengths:优势 Weakness ...

  2. 如何使用 Blackbox Exporter 监控 URL?

    前言 监控域名和 URL 是可观察性的一个重要方面,主要用于诊断可用性问题.接下来会详细介绍如何使用 Blackbox Exporter 和 Prometheus 在 Kubernetes 中实现 U ...

  3. 软件安装——idea的安装和使用

    Idea的安装和使用 一.下载和安装 下载步骤 官网下载地址:Download IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBr ...

  4. Linux备份服务

    备份服务 一.备份服务概述 备份服务:需要使用脚本,打包备份,定时任务 通过rsyncd服务,不同主机之间进行数据传输 rsyncd特点: rsync是个服务,也是命令 使用方便,有多种模式 传输数据 ...

  5. CAS 悲观锁 乐观锁

    前面的偏向锁,轻量级锁,重量级锁都是悲观锁, 都会认为必须要对操作对象进行互斥访问,不然就会产生异常, 所以线程只供一个线程使用,阻塞其他线程,是悲观的 在某些情况下,同步的耗时远大于线程切换的时间, ...

  6. element el-table固定列凹陷问题

    1.业务背景 列表显示字段过多,最后一栏操作列加固定显示,横向添加滚动条,在自测浏览器开发者模式时,发现固定列的最后一行出现了凹陷现象,网上查阅资料大多为在更新生命周期或者页面更新操作时重载页面,这些 ...

  7. Syntax Error: Error: Cannot find module ‘node-sass‘

    出现问题原因: vscode运行前端项目输入npm run dev命令触发此错误 解决办法: 指定淘宝镜像安装node-sass win+r 打开cmd控制台输入 npm install -g cnp ...

  8. Jpbc哈希函数如何实现

    1.(0,1)→Element元素 在Jpbc库中存在两个方法 Element A=G1.newRandomElement();A.setFromBytes(arr,0,arr.length);//A ...

  9. ubuntu安装ROBOWARE

    https://github.com/tonyrobotics/RoboWare/ https://blog.csdn.net/lixujie666/article/details/80139112 ...

  10. Networking && Internet 计网学习笔记一

    Networking && Internet 计网学习笔记一 参考书籍: James F. Kurose, Keith W. Ross. 计算机网络-自顶向下方法 (7th). 机械工 ...