自定义一个JdbcTemplate(增删改数据库中表记录)
需求:
- 自定义一个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(增删改数据库中表记录)的更多相关文章
- JDBC增删改数据库的操作
JDBC入门及简单增删改数据库的操作 一.JDBC的引入 1.JDBC的概念 JDBC:Java Database Connection,表示数据库连接(任何数据库都支持JDBC的连接),是一个独立于 ...
- Hibernate4 拦截器(Interceptor) 实现实体类增删改的日志记录
转自:https://blog.csdn.net/he90227/article/details/44783099 开发应用程序的过程中,经常会对一些比较重要的数据修改都需要写日志.在实际工作的工程中 ...
- 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用
2016年时,Jerry曾经写过一系列关于SAP Fiori Smart Template(现在更名为Fiori Elements了)的博客,介绍了所谓的MDD开发方法论 - Metadata Dri ...
- 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序
使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...
- 如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用
Jerry之前的文章30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用 发布之后,有朋友问我,"没错, 我是在你的文章里看到了Fiori应用的 ...
- 基于Entity Framework的自定义分页,增删改的通用实现
简介 之前写个一个基于Dapper的分页实现,现在再来写一个基于Entity Framework的分页实现,以及增删改的通用实现. 代码 还是先上代码:https://github.com/jinwe ...
- MySQL数据库学习笔记(八)----JDBC入门及简单增删改数据库的操作
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 自定义仓储之增删改查
上一篇文章(https://www.cnblogs.com/meowv/p/12913676.html)我们用Code-First的方式创建了博客所需的实体类,生成了数据库表,完成了对EF Core的 ...
- JdbcTemplate增删改查
1.使用JdbcTemplate的execute()方法执行SQL语句 jdbcTemplate.execute("CREATE TABLE USER (user_id integer, n ...
- java连接mysql数据库增删改查操作记录
1. 连接数据库.得到数据库连接变量 注意连接数据库的时候 (1)打开DB Browser 新建一个Database Driver,注意加入Driver JARs的时候加入的包,我的是mysql-co ...
随机推荐
- SQLSERVER 的复合索引和包含索引到底有啥区别?
一:背景 1. 讲故事 在 SQLSERVER 中有非常多的索引,比如:聚集索引,非聚集索引,唯一索引,复合索引,Include索引,交叉索引,连接索引,奇葩索引等等,当索引多了之后很容易傻傻的分不清 ...
- Java时间加减操作
Java时间加减操作 /** * 时间计算 * * @param str 时间字符串 * @param format 时间格式 * @param type Calendar内置常量 * @param ...
- 【译】15 个有用的 JavaScript 技巧
原文地址:https://javascript.plainenglish.io/15-useful-javascript-tips-814eeba1f4fd 1)数字分隔符 为了提高数字的可读性,可以 ...
- 交叉编译esp8089
交叉编译esp8089 编译环境: 硬件:全志R528 ubuntu:Linux ubuntu 4.15.0-194-generic #205-Ubuntu SMP Fri Sep 16 19:49: ...
- Linux c 检测当前网卡是否已经启动
思路: 1.socket 建立一个数据报套接字. 2.定义一个struct ifreq ifr 结构体.将网络名称如"eth0" 赋值给ifr结构体的ifr.ifr_name. 3 ...
- py教学之集合
集合的概念 集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字 ...
- c++ 跑酷小游戏之用户体验plus
#undef UNICODE#undef _UNICODE#include <iostream>#include <iomanip>#include <string> ...
- 《《关于我把好好的c++小游戏改的很ex》》
#undef UNICODE#undef _UNICODE#include <iostream>#include <iomanip>#include <string> ...
- BUG日记之————>springboot使用QueryMapper多条件查询
使用MP的QueryMapper这里注意配置的Maven 注意这里的 .isEmpty 和hasText和hasLength不是一种类型
- 静态文件相关配置、request请求方法、pycharm连接MySQL、orm
静态文件相关配置.request请求方法.pycharm连接MySQL.orm 风得意马蹄疾,一日看尽长安花 一.静态文件相关配置 1.编写一个登录功能 1.创建一个django项目并创建一个app ...