需求:

  • 自定义一个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. Solon Java Framework v1.12.0 发布

    一个更现代感的 Java 应用开发框架:更快.更小.更自由.没有 Spring,没有 Servlet,没有 JavaEE:独立的轻量生态.主框架仅 0.1 MB. @Controller public ...

  2. [OpenCV实战]36 使用OpenCV在视频中实现简单背景估计

    目录 1 时间中值滤波 2 使用中值进行背景估计 3 帧差分 4 总结和代码 5 参考 许多计算机视觉应用中,硬件配置往往较低.在这种情况下,我们必须使用简单而有效的技术.在这篇文章中,我们将介绍一种 ...

  3. AtCoder Regular Contest 148 B - dp

    题面 For a string \(T\) of length \(L\) consisting of d and p, let \(f(T)\) be \(T\) rotated \(180\) d ...

  4. Hash——温暖人心的算法

    目录 简介 计算Hash 前缀Hash递推 快速计算子串Hash 用Hash匹配字符串 综合:P2852 [USACO06DEC]Milk Patterns G 简介 Hash,将一个字符串映射到一个 ...

  5. py教学之列表

    列表是什么 list 是一些元素按照一定顺序排列的元素集合 序列是 Python 中最基本的数据结构. 序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推. Py ...

  6. render到底是什么,该如何使用它

    一.前言 1.vue程序的运行过程:模板 -> 进行编译 -> 生成ast树 -> 数据绑定 -> 生成render函数 -> 成虚拟dom树 -> 真实dom树 ...

  7. SpringMVC学习笔记 - 第二章 - SSM整合案例 - 技术整合、统一结果封装、统一异常处理、前后联调、拦截器

    [前置内容]Spring 学习笔记全系列传送门: Spring学习笔记 - 第一章 - IoC(控制反转).IoC容器.Bean的实例化与生命周期.DI(依赖注入) Spring学习笔记 - 第二章 ...

  8. Redis 正则扫描key并删除

    扫描key /** * @param key * @return * @Description: 通过Scan的方式迭代key */ public Set<String> scanKeys ...

  9. 静态代码块-数组工具类Arrays

    静态代码块 静态代码块: 定义在成员位置,使用static修饰的代码块{}. 位置:类中方法外. 执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行 格式: public clas ...

  10. 【模板】倍增求LCA

    题目链接 一. 时间戳法(本质上是dfs序) #include<cstdio> using namespace std; const int NN = 5e5+8; int n,m,s; ...