package com.goods.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
jdbc的封装
sql语句不同,参数不同(列表,个数,顺序..等),
jdbc的增删改三步:
1. DBUtil db=new DBUtil();
2. db.insert(sql,参数); 3. db.close();
2. db.delete(sql,参数); 3. db.close();
2. db.update(sql,参数); 3. db.close();
查: 2. ResultSet rs=db.query(sql,参数);
3. 创建对象的集合,对象.set(rs.get(字段)),集合.add(对象), db.close(rs);
*/
public class DBUtil {
// 防中文乱码:?useUnicode=true&characterEncoding=UTF-8
public static final String URL = "jdbc:mysql://localhost:3306/goods?useUnicode=true&characterEncoding=UTF-8";
public static final String USER = "root";
public static final String PASSWORD = "123";
private Connection conn = null;
private PreparedStatement stat = null;
static {
try {
// 数据库驱动
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("缺少数据库驱动包");
}
}
// 获取连接方法
public Connection getConnection() {
// 创建连接
try {
if (conn == null || conn.isClosed()) {
conn = DriverManager.getConnection(URL, USER, PASSWORD);
}
return conn;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
// 查
public ResultSet query(String sql, Object... params) {
try {
// 创建连接的方法,调用公用的方法
getConnection();
// 预编译语句
stat = conn.prepareStatement(sql);
// 设置参数
putParams(stat, params);
// 执行
ResultSet rs = stat.executeQuery();
return rs;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
// 改
public int update(String sql, Object... params) {
return executeUpdate(sql, params);
}
// 删
public int delete(String sql, Object... params) {
return executeUpdate(sql, params);
}
// 增
public int insert(String sql, Object... params) {
return executeUpdate(sql, params);
}
// ...表示参数可传可不传, params数组
public int executeUpdate(String sql, Object... params) {
try {
// 创建连接的方法,调用公用的方法
getConnection();
// 预编译语句
stat = conn.prepareStatement(sql);
// 设置参数
putParams(stat, params);
// 执行事务
int rlt = stat.executeUpdate();
return rlt;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
// 设置参数方法
private void putParams(PreparedStatement stat, Object... params) throws SQLException {
if (params != null) {
for (int i = 0; i < params.length; i++) {
stat.setObject(i + 1, params[i]);
}
}
}
// 关闭方法
public void close() {
try {
if (stat != null) {
stat.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public void close(ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
相关推荐
从原理到实践:详解双目散斑结构光的生成与优化
本文深入解析了双目散斑结构光的生成原理与优化实践,详细介绍了散斑结构光的抗干扰性、空间编码技术及其在三维视觉中的应用。通过对比不同生成方法和技术路线,提供了参数调优指南和工程实现细节,帮助开发者掌握高效、精准的散斑生成技术。
简单封装JDBC
一、简要介绍一下自己封装一个jdbc的思路 封装是什么,为什么要封装封装:是面向对象的一种表现形式,主要是面对可相信的对象提供方便,让这类对象具有使用的权利,对其它对象进行拦截,在没有相应权限的情况下是没有使用权利的。 对于一些工具类就是这样的情况,把具体实现的过程封装到类中,只提供你使用的最终接口,只要能实现你的业务就可以,其他的具体操作你没有办法拿到封装就是为了将一团分布的东西集中在一起,所以
自适应动态规划硕士博士论文学习
强化学习关注随机过程中的序贯决策问题,而自适应动态规划关注动态系统的控制问题。吸引域:系统渐近稳定的区域。
JDBC相关工具类的封装
一、JDBC连接工具类(MySQL为例) 1、在项目根目录创建一个properties的配置文件db.properties,里面定义了四行数据,分别对应着JDBC连接所需要的几个参数(注:Properties底层为一个Hashtable,配置文件中“=”之前的代表Map中的键,之后的代表相应键所对应的值) driverClassName=com.mysql.jdbc.Driver url=jdbc...
Ultrascale/Ultrascale+ FPGA GTH IP及结构详解(一)
FPGA GTH Transceiver
QCC308x/3095收发一体:TX/RX双模一拖二与多编码广播实战解析
本文深度解析高通QCC308x/3095蓝牙音频芯片的TX/RX双模功能与广播应用。芯片支持发射和接收模式下的“一拖二”连接,并能实现LE Audio多设备广播,显著提升多设备音频切换体验与商业广播能力,适用于健身、导览等丰富场景。
封装JDBC,实现简单ORM框架
实现orm框架, 类似mp, 创建接口继承baseCRUD接口, 就可以拥有基本的crud方法, 还可以通过注解实现复杂sql
Exchange 2013/2016/2019修改附件大小限制
Exchange 2013/2016/2019邮件大小限制 可以在三个位置上配置Exchange上的默认邮件大小限制: 组织传输设置 发送/接收连接器设置 用户邮箱设置 1.打开Exchange Management Shell 使用命令查看默认限制 get-transportconfig | ft maxsendsize, maxreceivesize get-receiveconnector | ft name, maxmessagesize get-sendconnector | ft
JDBC方法封装:各种封装,带你体验封装的魅力
我们知道,JDBC就是java后台连接数据库的纽带,当这个纽带连接上后,我们可以使用java语句去操控数据库信息,这个系统化的连接方式我们经常会使用,如果每次都要重写一遍那么多行代码,未免太麻烦了,因此,可以写一个方法,方法体就是获得一个Collection实例,而不仅仅是获取连接可以封装,任何经常写的代码都可以封装。在需要使用他的时候只需要调用某个方法就能快速得到我们想要的数据简化代码,提高代码复用性。
Tesseral 建立地震模型
0. 前言 本节内容主要是总结如何使用 Tesseral 工具建立模型。 1. 模型建立步骤 设置模型的宽度和深度 此处默认都为1000,之后点击“确定” 建立地层 绘制新的地层 右键点击“New polygon” 绘制地层,设置第二个层的名字和纵波速度 绘制第三层,第三层覆盖在前一个层上 第四层如上,第四层如果是最后一层,绘制该层时,要将深度1000包围。 设置观测系统 设置炮点 设置子波为雷克子波,频率设置为30 检波点设置 运行模型 设置好如上选择后,
告别BAPI!深入SAP S/4HANA BP框架:cl_md_bp_maintain维护客户主数据的正确姿势与性能优化
本文深入解析SAP S/4HANA中cl_md_bp_maintain框架的高效实践与架构设计,对比传统BAPI方式,展示其在业务伙伴(BP)主数据维护中的性能优势与现代化特性。通过详细代码示例和性能测试数据,揭示如何利用该框架实现批量处理、集中校验及智能错误恢复,助力企业从ECC向S/4HANA平滑迁移。
JDBC封装 查询
【代码】JDBC封装 查询。
1.DJI-payload SDK负载开发准备和硬件连接及运行示例代码
大疆psdk开发环境
JDBC封装
在学jdbc之前先要了解一下什么是jdbc? 它有什么用?具体的功能是什么?JDBC全称:Java DataBase Connectivity;是java数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,例如:MySQL、Oracle、SQLServer等数据库;它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口...
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
JDBC使用和封装
本文章主要描述的是如何使用JDBC,以及对JDBC的进行封装。主要的目的是降低代码的重复性,提高代码复用性。本文章通过四个版本来对JDBC进行封装。在了解JDBC如何使用的同时,还能够体会到Java封装的魅力! 1.前提工作 1.1 数据库表 teacher表 CREATE TABLE `teacher` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', `name` varchar(50) NOT NULL DEFAULT ..
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
如何封装JDBC
如何封装JDBC 前言:封装JDBC需要用到properties类的知识,如果不懂这块知识的可以查阅我之前写的blog。 首先简单看一眼执行步骤: 创建properties文件 创建工具类DBUtil 定义对象:static Properties properties(static方法随类产生,最先加载且只加载一次)并且创建方法 InputStream is=Thread.currentT...
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
对于JDBC的封装
对JDBC进行封装 相信很多小伙伴在进行JCDB操作的时候存在大量的重复代码,那么如何解放键盘的Ctrrl+C,V呢? 可以通过对一些重复代码进行封装 运用面向对象思想进行调用就行 代码如下: /** * @Authot : ZyKun. * @Date: 2020/12/11 11:37 */ public class DBUtils3 { /** * 驱动类路径 */ private static final String DRIVER_CLASS = "c
JDBC总结及封装
JDBC 总结 JDBC概述 JDBC(Java DataBase Connectivity):java连接数据库技术,是一项由sun(java创始公司)发布的用于java连接数据库的通用标准,这套标准由一系列的接口(Connection,Statement,ResultSet等)构成,旨在屏蔽不同数据库之间的差异,使得开发者无需关注不同数据库系统之间的差异,简化java连接数据库的步骤。 JDB...
jdbc mysql封装_Java框架中是如何封装JDBC的呢?
今天是刘小爱自学Java的第66天。感谢你的观看,谢谢你。话不多说,开始今天的学习:很多优秀的框架中都封装有jdbc,可以直接使用,都不用我们自己写的,特别方便。但本着学习的原则:知其然也要知其所以然。所以决定还是学一下jdbc具体是如何写的?以及是如何一步步封装的?其中JDBC一共有6步:注册驱动获取连接创建执行语句执行语句处理结果集释放资源一、注册驱动、获取连接详解注册驱动:①看下Driver...
《封装JDBC》
封装JDBC 开发工具与关键技术:MyEclipse 10、Java select 语法 作者:潘玉莹 撰写时间:2019-05-23 一、 什么是JDBC JDBC是数据库连接纽带,与数据库进行交互 二、 常规方法连接数据库的步骤 声明四个参数 分别是username、password、url、driver、分别通过连接获取相对应的数据 加载驱动 Class.forName(driver);...
初步理解jdbc的封装
为何要对jdbc进行封装 JDBC操作常见的六个步骤中存在大量的重复操作,对于这种程序冗余的问题,我们我已通过封装处理来解决。jdbc的封装操作可以起到减少重复代码量、防止因大量重复以至代码不小心编写错误的问题。 JDBC封装1.0 通过以下封装可以实现对其中三个步骤完成统一封装处理: 加载驱动 获取连接 获取执行sql语句的对象 执行 处理结果 关闭资源 代码 package com.softeem.jdbc03.utils; import java.sql.*; import java.util.
594



被折叠的 条评论
为什么被折叠?



