需求:

  • 自定义一个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. 2022年7月13日,第四组 周鹏 JAVA认识的第一天,附加一个用JS写的计算器代码

    心情:╭(╯^╰)╮ ╮(╯﹏╰)╭ (╯﹏╰)b 罒ω罒 |*´Å`)ノ ( Ĭ ^ Ĭ ) (ㄒoㄒ) o(╥﹏╥)o /(ㄒoㄒ)/~~ (〒︿〒) ┭┮﹏┭┮ ε(┬┬﹏┬┬)3 ε(┬┬﹏┬ ...

  2. 丧心病狂,竟有Thread.sleep(0)这种神仙写法?

    前言 最近在网上看到了一段代码,让我感到很迷茫.他在代码中使用了 Thread.sleep(0),让线程休眠时间为0秒,具体代码如下. int i = 0; while (i<10000000) ...

  3. 有向图的拓扑排序——DFS

    在有向图的拓扑排序--BFS这篇文章中,介绍了有向图的拓扑排序的定义以及使用广度优先搜索(BFS)对有向图进行拓扑排序的方法,这里再介绍另一种方法:深度优先搜索(DFS). 算法 考虑下面这张图: 首 ...

  4. Hive详解(04) - hive函数的使用

    Hive详解(04) - hive函数的使用 系统内置函数 查看系统自带的函数 hive> show functions; 显示自带的函数的用法 hive> desc function u ...

  5. TiDB 底层存储结构 LSM 树原理介绍

    作者:京东物流 刘家存 随着数据量的增大,传统关系型数据库越来越不能满足对于海量数据存储的需求.对于分布式关系型数据库,我们了解其底层存储结构是非常重要的.本文将介绍下分布式关系型数据库 TiDB 所 ...

  6. [Unity]限制两个物体之间的距离

    //限制两个物体之间的距离 if (Vector3.Distance(B.position, A.position) > maxDistance) { //获得两个物体之间的单位向量 Vecto ...

  7. python利用matplotlib生成迷宫

    起因 我想要写一个项目叫python迷宫游戏,需求是玩家能和机器对抗率先走出迷宫,至少要有两个等级的电脑. 慢慢来,首先迷宫游戏需要有一个迷宫并展示出来,这便是这篇博客的目的 假设迷宫使用0表示点,1 ...

  8. order by 语句怎么优化?

    说明 当前演示的数据库版本5.7 一.一个简单使用示例 先创建一张订单表 CREATE TABLE `order_info` ( `id` int NOT NULL AUTO_INCREMENT CO ...

  9. Java 进阶P-8.3+P-8.4

    捕捉到的异常 捉到了做什么? 拿到异常对象之后 String getMessage(); String toSTring(); void printStackTrace(); 但是肯定时回不去了,而具 ...

  10. 以交互的方式升级ESXi主机

    以交互的方式升级ESXi主机 环境说明: 需求:要将 ESXi 6.0 主机和 ESXi 6.5 主机升级到 ESXi 6.7,可从 CD.DVD 或 USB 闪存驱动器引导 ESXi 安装程序. 注 ...