JDBC之通过PreparedStatement对象访问数据库

学Simulink——基于大数据处理与云计算的场景实例:无人机与云计算中心之间的高效数据传输链路设计 本文以无人机与云计算中心的高效数据传输链路设计为例,手把手指导使用Simulink进行系统级建模。针对智慧城市、灾害监测等场景中无人机采集的海量数据(视频、图像、点云等),构建包含数据源、传输协议、无线链路、云接入和性能分析的五层架构模型。通过智能数据压缩、多链路聚合和QoS优先级调度等关键技术,实现5G+Wi-Fi等多通信技术的自适应切换。仿真结果表明,5G+Wi-Fi链路聚合在城市环境中表现最优,而4G+卫星组合适合偏远地区。该模型为无人机实时数据传输提供了有效的设计方法和优化方向,可拓展至边缘计算、A 阅读详情
原文链接: http://dev.youkuaiyun.com/develop/article/35/article/35/article/34/article/34/article/34/34865.shtm

通过 PreparedStatement 对象访问数据库

 

前面,我们讨论了用连接对象Connection产生Statement对象,然后用Statement与数据库管理系统进行交互。Statement对象在每次执行SQL语句时都将该语句传递给数据库。在多次执行同一语句时,这样做效率较低。解决这个问题的办法是使用PreparedStatement对象。如果数据库支持预编译,可以在创建PreparedStatement对象时将SQL语句传递给数据库做预编译,以后每次执行这个SQL语句时,速度就可以提高很多。如果数据库不支持预编译,则在语句执行时,才将其传给数据库。这对于用户来说是完全透明的。

PreparedStatement对象的SQL语句还可以接受参数。在语句中指出需要接受那些参数,然后进行预编译。在每一次执行时,可以将不同的参数传递给SQL语句,大大提高了程序的效率与灵活性。一般情况下,使用PreparedStatement对象都是带输入参数的。

 

为了更好的理解,请看下面这个例子:

 

package com.rongji.demo;

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.Statement;

import java.sql.DatabaseMetaData;

import java.sql.PreparedStatement;

 

 

public class DataConn {

  public DataConn() {

  }

  public static void main(String[] args) {

    try

{

//加载驱动程序

//下面的代码为加载JDBD-ODBC驱动程序

   Class.forName("oracle.jdbc.driver.OracleDriver");

//建立连接

//第二步是用适当的驱动程序连接到DBMS,看下面的代码[自行修改您所连接的数据库相关信息]:

   String url="jdbc:oracle:thin:@192.168.4.45:1521:oemrep";

   String user = "ums1";

   String password = "rongji";

//用url创建连接

   Connection con=DriverManager.getConnection(url,user,password);

//当前的表中有如下几个字段:ID,NAME,PASSWORD,TEXT,NOTE

   PreparedStatement insertStatement = con.prepareStatement(

              "INSERT INTO rbac_application values(?,?,?,?,?)");

   insertStatement.setInt(1,10);

   insertStatement.setString(2,"thinkersky");

   insertStatement.setString(3,"88888");

   insertStatement.setString(4,"这是个测试的应用程序");

   insertStatement.setString(5,"备注");

   int result = insertStatement.executeUpdate();

   System.out.println("the result is" + result);

   con.close();

}

catch (Exception e)

{

//输出异常信息

 System.err.println("SQLException :"+e.getMessage());

 e.printStackTrace();

}

}

}

 

相信通过这个例子,对PreparedStatement这个类的应用应该有了初步的了解。恩,让我详细介绍一下这个例子吧:)

1、 创建一个PreparedStatement对象

 

   PreparedStatement类是Statement类的子类。同Statemetn类一样,PreparedStatement类的对象也是建立在Connection对象之上的。如下所示:

PreparedStatement insertStatement = con.prepareStatement(

              "INSERT INTO rbac_application values(?,?,?,?,?)");

创建该PreparedStatement对象时,相应的插入记录的SQL语句已经被传递到数据库管理系统中进行预编译。

 

2、 为PreparedStatement对象提供参数

 

   如果以带输入参数的SQL语句形式创建了一个PreparedStatement对象(绝大多数情况下都是如此)。在SQL语句被数据库管理系统正确执行之前,必须为参数(也就是SQL语句中是’?’的地方)进行初始化。初始化的方法是调用PreparedStatement类的一系列setXXX()方法。如果输入参数的数据类型是int型,则调用setInt()方法;如果输入参数是String型,则调用setString()方法。一般说来,Java中提供的简单和复合数据类型,都可以找到相应的setXXX()方法。

现在,让我们再回头看看我们例子中对几个参数的初始化情况:

   insertStatement.setInt(1,10);

   insertStatement.setString(2,"thinkersky");

   insertStatement.setString(3,"88888");

   insertStatement.setString(4,"这是个测试的应用程序");

   insertStatement.setString(5,"备注");

这里,setXXX()方法一般有两个参数,第一个参数都是int型,该参数指示JDBC PreparedStatement对象的第几个参数将要被初始化。第二个参数的值就是PreparedStatemetn将要被初始化的参数取值,数据类型自然也就相同。这里要说明的是当PreparedStatement的一个对象的参数被初始化以后,该参数的值一直保持不变,直到他被再一次赋值为止。

 

3、 调用PreparedStatement对象的executeUpdate()方法

 

这里,要清楚PreparedStatement对象的executeUpdate()方法不同于Statement对象的executeUpdate()方法,前者是不带参数的,其所需要的SQL语句型的参数已经在实例化该对象时提供了。另外,executeUpdate()方法将返回一个整数,这个整数代表executeUpdate()方法执行后所更新的数据库中记录的行数。执行完上面的例子,其结果返回为1。那么什么情况下返回0呢?其实啊,当PreparedStatement对象的executeUpdate()方法的返回值是0时。有两种可能:

(1)  所执行的SQL语句是对数据库管理系统的记录进行操作;并且没有记录被                 更新

(2)  所执行的SQL语句是对数据库管理系统的表、视图等对象进行操作的DDL语言,没有数据记录被直接修改。

Python爬虫:如何抓取亚马逊商品评论和评分 通过本文的学习,您已经掌握了如何使用Selenium爬取亚马逊商品的评论数据,并处理反爬虫机制。特别是在亚马逊这样的大型电商平台,商品评论和评分不仅能够反映产品的质量和顾客的体验,还可以对商家进行竞争分析。通过爬取亚马逊的商品评论,您可以获得有价值的市场信息,如产品的优缺点、消费者的反馈等。通过查看源代码,您可以发现,亚马逊的商品评论和评分数据往往通过JavaScript动态加载,这也意味着在抓取时需要使用Selenium或Playwright等工具来模拟浏览器加载。亚马逊的评论页面支持分页加载。 阅读详情

相关推荐

保姆级教程:用CellOracle 0.10.13从单细胞数据构建基因调控网络(附完整代码)

本文提供了一份详细的CellOracle 0.10.13使用指南,帮助用户从单细胞数据构建基因调控网络。通过Python接口,即使是生物信息学新手也能快速掌握数据准备、KNN插补、GRN计算及可视化等关键步骤。文章包含完整代码和实用技巧,助力单细胞转录组数据分析。

weixin_42563415的博客 722

JDBC学习笔记(四)

JDBC的学习笔记 (四)Thinkersky[yanghuangming@rongji.com] 昨天晚上,又梦到了我那可怜的堂姐,那个我可亲可敬又可恨的姐姐。不知道为什么,直到现在仍觉得那只是一个梦。如果真是梦,希望姐能够在那梦里永远开心快乐。听说,人到了天堂就再也没有痛苦了。我相信。……恩,接昨天的东东。 二、通过PreparedStatement对象访问数据库

thinkersky的专栏 1396

python数据处理(一)——如何用python实现excel功能

python如何实现excel的数据提取、指标构建,进行透视分析。

一名数据分析师 2704

PreparedStatement接口,prepareStatement方法

1、public interface PreparedStatementextends Statement表示预编译的 SQL 语句的对象。 SQL 语句被预编译并且存储在 PreparedStatement 对象中。然后可以使用此对象高效地多次执行该语句。 注:用来设置 IN 参数值的 setter 方法(setShort、setString 等等)必须指定与输入参数的已定义 SQL 类型兼

he_hchx的专栏 8769

警惕!数字签名伪造的攻防演练:用SigThief克隆证书的真实测试(Windows环境)

本文深入探讨了Windows环境下数字签名伪造的攻防技术,详细介绍了使用SigThief工具进行签名提取与克隆的实战步骤。通过真实测试案例,揭示了数字签名安全机制的潜在漏洞,并提供了有效的防御策略和检测技术,帮助安全人员提升系统防护能力。

weixin_42530732的博客 408

uniapp 基于单选框多选框实现上拉触底多选/单选、回显

showPickerCheckbox弹层显示 label和value 类似下拉框的label和value一个意思 键和值。结果:可以传接口(接口只能post请求) 可以搜索 下面是结果图片展示 单选多选都可以。fieldValue回显传的值 传的是字符串 数组的话[1,2]转为1,2格式传入。mode是控制的单选还是多选 true为多选默认值 其余参数 单选多选一样。fieldName字段名 确定后会返回该字段名 根据字段名找对应的传入值。问题:在uniapp上 实现分页多选的操作。下面是组件的完整代码。

2301_76607997的博客 2936

PreparedStatement ps = conn.prepareStatement(sql);在eclipse中跑不通的问题,http报错500

博主在eclipse中运行tomcat跑web项目进行学习的时候,愣是发现老是报错500,500不是404这种连不上数据库的问题。百度了好多都是说标题这句话传的是空指针导致错误,可是我感觉我的问题跟这个空指针有点不一样的。具体代码如下public class UserDAO { //用户名、密码、手机号 //数据的插入 //sql // insert into 表名(字段名1,字段名2,....

XRN的博客 3万+

YOLOv11改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块

本文记录的是基于FasterNet的YOLOv11轻量化改进方法研究。FasterNet的网络结构借鉴 CNN 的设计理念,通过提出的PConv减少推理时的计算和内存成本,同时减少通道数并增加部分比例,降低延迟,并通过后续的PWConv来弥补特征信息可能缺失的问题,提高了准确性。本文在替换骨干网络中配置了原论文中的和六种模型,以满足不同的需求。

Limiiiing的博客 2029

Java JDBC 理论笔记

Blog:http://hoojo.cnblogs.com email: hoojo_@126.com 一、JDBC常用接口、类介绍 JDBC提供对独立于数据库统一的API,用以执行SQL命令。API常用的类、接口如下: DriverManager 管理JDBC驱动的服务类,主要通过它获取Connection数据库链接,常用方法如下: public

hoojo 2159

RT-Thread Studio 使用笔记(七)| 配合STM32CubeMX添加裸机驱动(以ADC为例)

1. 配置STM32CubeMX 2. 复制stm32xxxx_hal_msp.c文件 将 CubeMx 生成的代码 stm32f7xx_hal_msp.c 函数复制到 RT-Thread Studio 生成的工程中,并参与工程编译: 由于我们并没有使用 CubeMx 生成的工程,所以这里需要将 stm32f7xx_hal_msp.c 文件中 #include “main.h” 替换为 #i...

Mculover666的博客(嵌入式) 9626

即插即用系列(代码实践)| GRSL 2024 ARConv核心模块:自适应矩形卷积——专为遥感图像设计,打破固定方形卷积束缚

摘要: 本文提出了一种用于遥感图像处理的自适应矩形卷积模块(ARConv),解决了传统方形卷积核在处理复杂几何结构(如细长道路、密集建筑物)时导致的光谱混叠和边缘模糊问题。ARConv通过动态调整卷积核的长宽比和旋转角度,使卷积核形状与地物特征自适应匹配。该模块可即插即用于全色锐化、语义分割等遥感任务,有效提升边缘保持能力和光谱保真度。核心代码基于PyTorch实现,包含偏移量生成和几何变换逻辑,支持梯度缩放以稳定训练。

分享顶会顶刊论文即插即用模块 140

通过JDBC访问数据库的基本步骤

首先将jdbc的jar包引入到程序中,放到WEB-INF/lib文件夹下。jar包可以自己下载,或者直接从oracle的安装包(\Oracle\Product\10.2.0\db_1\jdbc\lib)中拿出来。 一、加载JDBC驱动程序        在和某一特定数据库建立连接之前,必须首先加载一种可用的JDBC驱动程序到JVM。使用java.lang.Class类的forName(St

2万+

delphi fmx android 自动更新(一)

所以,如果是http 则,manifest.xml application 下,https无需添加。增加android:usesCleartextTraffic="true",不然无法使用http下载东西。1,REQUEST_INSTALL_PACKAGES 权限。4,WRITE_EXTERNAL_STORAGE 权限。3,READ_EXTERNAL_STORAGE 权限。一般是从http下载安装包 apk。2,INTERNET 权限。sFile为apk包路径。

全粘工程师 550

SpringBoot 中 JDBC 关系型数据库访问规范

JDBC 关系型数据库访问规范1)JDBC 概述2)JDBC 规范中有哪些核心编程对象?DriverManagerDataSourceConnectionStatement/PreparedStatementResultSet3)如何使用 JDBC 规范访问数据库? 无论是互联网应用还是传统软件,对于任何一个系统而言,数据的存储和访问都是不可缺少的。数据访问层的构建可能会涉及多种不同形式的数据存储媒介,本文关注的是最基础也是最常用的数据存储媒介,即关系型数据库,针对关系型数据库,Java 中应用最广泛的就是

姜皓的博客 547

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

JDBC:为不同关系数据库提供相同的访问方式

1. 定义 JDBC:Java Database Connectivity。 是一种规范,提供一套访问数据库的接口。 数据库生产厂商根据 JDBC Driver 的接口,去实现各自的应用驱动。 2. 常见类 DriverManager:管理数据库驱动程序的列表,查看加载的驱动是否符合 JAVA Driver API 的规范。 Connection:客户端与数据库所有交互都是通过connection对象完成的。 Statement:用于向数据库发送 SQL 语句。 Preper...

新酱酱酱的专栏 642

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JDBC。

JDBC介绍JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,(java.sql,javax.sql)使用这些类库可以以一种标准的方法、方便地访问数据库资源。JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。

m0_70913011的博客 235

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

JDBC连接

JDBC JDBC的概述 a) Java DataBase Connectivity(Java连接数据库技术),是sun公司提供一套专门用于访问操作关系型数据的API程序, 位于 java.sql.* javax.sql.* 包 b) 对于不同的数据库,各大厂商提供不同的数据库连接驱动(JDBC驱动类),此类由数据库厂商提供。 JDBC的连接: jdbc的连接基本可以细分为六步: 步骤1: 导入j...

qq_45123425的博客 173

JDBC 配置

DriverManager类驱动管理器,管理驱动的类,创建连接,他是连接对象的工厂。Statement接口以及子接口数据库操作对象。jdbcmysql//ipport/库名。Connection接口数据库的连接。java.sql包和javax.sql包。1.JDBC+ODBC桥驱动。数据库返回的结果封装成结果集对象。Driver接口驱动。3.纯java网络服务器驱动。2.JDBC+本地驱动。根据驱动产生不同的连接。数据库操作对象的工厂。...

weixin_46468483的博客 4129

传统的JDBC实现

JDBC JDBC(Java DataBase Connectivity):数据库连接,java语言操作数据库 JDBC是Java所提供的一套访问数据库的接口(规范) 接口都位于java.sql包下 接口有数据库厂商实现 --数据库的驱动包 步骤 1、 导入驱动jar包 2、 注册驱动 3、 获取数据库的连接对象 Connection 4、 定义SQL语句 5、 获取执行SQL语句的对象 ...

nimwwda的博客 296

JDBC(基于Oracle)

JDBC(Java DataBase Connectivity) 称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用同一的语法对多种关系数据库进行访问 •JDBC优缺点 –优点: •JDBC使得编程人员从复杂的驱动器调用命令和函数中解脱出来,可以致力于应用程序中的关键地方。 •JDBC支持不同的关系数据库,这使得程...

weixin_42564434的博客 276

JDBC介绍(详细版)

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数 据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易 ...

龚道松 7638

Java JDBC(八)记录一个Java小白的学习路程

ODBC JDBC 什么时JDBC 1.JAVA DATABASE CONNETCTION(Java 数据库连接接口) 2.SUN 指定的JAVA应用程序连接数据库的规范(标准) 3.JDBC 是一些类和接口的集合(jar包) JDBC和ODBC 都不是技术,而是规范 SUN、JDBC生产商、开发人员之间的三方关系 ...

weixin_51948731的博客 326

jdbc连接mysql数据库的优点_透彻理解数据库JDBC-JDBC核心技术精讲

JDBC简介JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC 编程步骤加载驱动程序:Class.forName(driverClass)/...

weixin_28722339的博客 1239

JDBC访问数据库的步骤

JDBC 什么是JDBC? Java数据库连接(Java Database Connectivity,简称JDBC) 是利用Java语言/程序连接并访问数据库的一门技术。 JDBC是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了如查询和更新数据库中数据的方法。通过JDBC API可以用统一的形式访问不同的关系数据库产品。 JDBC API中定义了一系列的接口,程序设计人员只需...

chen的博客 3258

基础规范:如何理解 JDBC 关系型数据库访问规范?

从接口的命名上看,我们可以判断该接口起到一种包装器的作用。正如前面的 JDBC 规范整体架构图中所示,JDBC 中的 DriverManager 主要负责加载各种不同的驱动程序(Driver),并根据不同的请求向应用程序返回相应的数据库连接(Connection),应用程序再通过调用 JDBC API 实现对数据库的操作。所谓预编译,是指数据库的编译器会对 SQL 语句提前编译,然后将预编译的结果缓存到数据库中,下次执行时就可以通过替换参数并直接使用编译过的语句,从而大大提高 SQL 的执行效率。

我乐了的博客 1236

JDBC访问数据库常规步骤

项目中用到了JDBC,整理一下JDBC访问数据库常规步骤,方便以后查阅: Java数据库连接(java DataBase Connectivity),又称JDBC,用于在Java程序中实现数据库操作功能,它提供了执行SQL语句,访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口,java.sql包中包含了JDBC操作数据库的所有类。通过JDBC访问数据库一般有如下步骤: 1. 加载JDB...

N_Peng的博客 1151
上一篇: JDBC之通过DatabaseMetaData对象了解数据库的信息
下一篇: JDBC之连接数据库
dacula
博客等级 码龄24年 6粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值