使用JDBC对数据库进行简单操作

Connection获得了数据库连接对象后,可以用Statement类型进行数据库操作。

Statement对象中,有三种,分别是StatementPrepareStatementCallableStatement

这三个的区别在于:

  • Statement
    • 用于执行不带参数的简单SQL语句
  • PreparedStatement
    • 用于执行带或者不带参数的SQL语句
    • SQL语句会预编译在数据库系统
    • 执行速度快于Statement对象
  • CallableStatement
    • 用于执行数据库存储过程的调用

Statement

Statement用于执行静态的SQL语句。通过con.createStatement()创建一个Statement对象之后,调用executeQuery(sql)函数进行SQL操作。

executeQuery函数原型:

public ResultSet executeQuery(String sql) throws SQLException

这个方法接受一个 SQL 查询字符串作为参数,并返回一个 ResultSet 对象,该对象包含查询结果。如果查询失败,则抛出 SQLException 异常。

当使用StatementPreparedStatement对象执行查询语句时,会返回一个ResultSet对象,它包含了查询结果的数据。通过ResultSet对象,可以遍历结果集的行,并获取每一行中的列数据。

ResultSet对象维护一个指向其当前数据行的游标,并提供了多种常用的方法来访问数据。

  1. next():将光标移动到下一行。当ResultSet对象中没有更多行时,它返回false,因此可以在while循环中使用它进行迭代。
  2. getString(columnName):根据列名获取整行的字符串。
  3. getString(int columnIndex):根据列的索引位置获取整行的字符串。
  4. getInt(columnName):根据列名获取整行的int值。
  5. getInt(int columnIndex):根据列的索引位置获取整行的int值。
  6. close():关闭ResultSet对象,释放资源。

这些方法可以根据需要选择使用,以高效地访问和处理查询结果。

在数据库中模糊查找airports表中符合nameName,并逐个打印出来。

    public static void findAirportByName(String name) {try {Statement stat = con.createStatement();System.out.println(name);ResultSet res = stat.executeQuery("SELECT * FROM airports WHERE Name LIKE '%" + name + "%'");while(res.next()) {System.out.println("id: " + res.getInt(1) + " Name: " + res.getString(2) + " Address: " + res.getString(3) +" Type: " + res.getString(4) + " Phone: " + res.getString(5) + " Level: " + res.getString(6));}} catch (SQLException ex) {}}

在这里插入图片描述

PrepareStatement

PrepareStatement是预编译的Statement对象。在prepareStatement方法中使用占位符(?)来代替具体的参数值,然后使用set方法设置参数的值。最后调用execute方法进行执行。

预编译是指在执行SQL语句之前,将SQL语句发送到数据库进行预处理,以提高执行效率和安全性。

set方法的函数原型:

void setXXX(parameterIndex idx, x val); // XXX 为Int String 等

其中parameterIndex idx中的下标从1开始。

execute方法的返回值为布尔值,成功执行返回true;否则,返回false

向数据库中插入一条机场信息。

    public static void addNewAirPort() {try{ps=con.prepareStatement("insert into airports (Id, Name, Address, Type, Phone, Level) values (?, ?, ?, ?, ?, ?)");ps.setInt(1, 42);ps.setString(2, "abcdef");ps.setString(3, "Shanghai");ps.setString(4, "BBB");ps.setString(5, "1232323");ps.setString(6, "Sk");ps.execute();}catch(SQLException ex)//捕捉并处理SQL异常(创建数据库连接对象的时候或者执行SQL语句的时候){System.out.println(ex.toString());}}

在这里插入图片描述

[【JDBC】Java连接MySQL数据库-CSDN博客](https://blog.csdn.net/qq_61635026/article/details/131637051?ops_request_misc=&request_id=&biz_id=102&utm_term=jdbc mysql&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-7-131637051.142v96pc_search_result_base3&spm=1018.2226.3001.4187)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/237149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KubePi JWT 默认密钥权限绕过漏洞复现(CVE-2023-22463)

0x01 产品简介 KubePi 是一款简单易用的开源 Kubernetes 可视化管理面板。 0x02 漏洞概述 KubePi 存在权限绕过漏洞,攻击者可通过默认 JWT 密钥获取管理员权限控制整个平台,使用管理员权限操作核心的功能。 0x03 影响范围 KubePi <= 1.6.2 0x04 复现环境 FOFA: ti…

【Jenkins】远程API接口:Java 包装接口使用示例

jenkins-rest 库是一个面向对象的 Java 项目&#xff0c;它通过编程方式提供对 Jenkins REST API 的访问&#xff0c;以访问 Jenkins 提供的一些远程 API。它使用 jclouds 工具包构建&#xff0c;可以轻松扩展以支持更多 REST 端点。其功能集不断发展&#xff0c;用户可以通过拉…

怎么压缩过大的GIF图片?几个步骤轻松搞定!

GIF图片由于其图片格式&#xff0c;本身就会很大&#xff0c;但是微信QQ还有一些其他的社交平台对上传的表情包是有限制的&#xff0c;这个时候就需要借助一些图片处理工具对GIF进行压缩。 下面就向大家介绍三种好用的方法并展示具体的操作步骤。 一、使用嗨格式压缩大师进行压…

RouterSrv-路由功能

2023年全国网络系统管理赛项真题 模块B-Windows解析 题目 安装Remote Access服务开启路由转发,为当前实验环境提供路由功能。启用网络地址转换功能,实现内部客户端访问互联网资源。答题步骤 安装Remote Access服务开启路由转发,为当前实验环境提供路由功能。 配置网卡 加…

Day67力扣打卡

打卡记录 美丽塔 II&#xff08;前缀和 单调栈&#xff09; 链接 class Solution:def maximumSumOfHeights(self, maxHeights: List[int]) -> int:n len(maxHeights)stack collections.deque()pre, suf [0] * n, [0] * nfor i in range(n):while stack and maxHeights…

eNSP拓扑建立:RIP静态路由

实验名称&#xff1a; RIP动态路由协议 实验目的&#xff1a; 1、掌握RIPv1的配置方法 2、查看RIP路由分析过程 3、掌握测试RIP网络连通性的方法 步骤一:建立拓扑图 步骤二&#xff1a;配置PC终端的ip、子网掩码、网关。 步骤三&#xff1a;配置路由器&#xff0c;如图所示 步…

【K8s】3# 使用kuboard管理K8s集群(NFS存储安装)

文章目录 1.NFS是什么2.配置NFS服务器2.1.执行以下命令安装 nfs 服务器所需的软件包2.2.执行命令 vim /etc/exports&#xff0c;创建 exports 文件&#xff0c;文件内容如下2.3.执行以下命令&#xff0c;启动 nfs 服务2.4.检查配置是否生效 3.在客户端测试NFS3.1.执行以下命令安…

easyexcle处理复杂动态单元格合并问题,合并动态行列

GetMapping("getAddDelSummaryExport") ApiOperation("新增删除比例报表--导出") ApiImplicitParams({ApiImplicitParam(name "season", value "季节", paramType "query", dataType "String"),ApiImplicitPa…

Electron Vite打包后,部分图标未显示的解决方案

背景 这个问题&#xff0c;弄了一晚上&#xff0c;头都大了&#xff0c;找了一堆博客也没解决。主要参考这个&#xff1a;https://blog.csdn.net/m0_73845616/article/details/129741099。 下面讲一下我的解决方案。 解决方案 上面链接里的方法&#xff0c;我采用第二、三个都…

C# Onnx Yolov8 Detect 物体检测 多张图片同时推理

目录 效果 模型信息 项目 代码 下载 C# Onnx Yolov8 Detect 物体检测 多张图片同时推理 效果 模型信息 Model Properties ------------------------- date&#xff1a;2023-12-18T11:47:29.332397 description&#xff1a;Ultralytics YOLOv8n-detect model trained on …

Istio 社区周报(第一期):2023.12.11 - 12.17

欢迎来到 Istio 社区周报 Istio 社区朋友们&#xff0c;你们好&#xff01; 我很高兴呈现第一期 Istio 社区周报。作为 Istio 社区的一员&#xff0c;每周我将为您带来 Istio 的最新发展、有见地的社区讨论、专业提示和重要安全新闻内容。 祝你阅读愉快&#xff0c;并在下一期中…

第二十二章 : Spring Boot 集成定时任务(一)

第二十二章 &#xff1a; Spring Boot 集成定时任务&#xff08;一&#xff09; 前言 本章知识点&#xff1a; 介绍使用Spring Boot内置的Scheduled注解来实现定时任务-单线程和多线程&#xff1b;以及介绍Quartz定时任务调度框架&#xff1a;简单定时调度器&#xff08;Simp…

ubuntu 18.04 共享屏幕

用于windows远程ubuntu 1. sudo apt install xrdp 2. 配置 sudo vim /etc/xrdp/startwm.sh 把最下面的test和exec两行注释掉&#xff0c;添加一行 gnome-session 3.安装dconf-editor : sudo apt-get install dconf-editor 关闭require encrytion org->gnome->desktop…

TransXNet实战:使用TransXNet实现图像分类任务(一)

文章目录 摘要安装包安装timm 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 论文提出了一种名为D-Mixer的轻量级双动态TokenMixer&#xff0c;旨在解决传统卷积的静态性质导致的表示差异和特征融合问题。D-Mixer通过应用高效的全局注意力和输入依赖的深度卷…

Py之tensorflow-addons:tensorflow-addons的简介、安装、使用方法之详细攻略

Py之tensorflow-addons&#xff1a;tensorflow-addons的简介、安装、使用方法之详细攻略 目录 tensorflow-addons的简介 tensorflow-addons的安装 tensorflow-addons的使用方法 1、使用 TensorFlow Addons 中的功能&#xff1a; tensorflow-addons的简介 TensorFlow Addon…

【SpringBoot快速入门】(4)SpringBoot项目案例代码示例

目录 1 创建工程3 配置文件4 静态资源 之前我们已经学习的Spring、SpringMVC、Mabatis、Maven&#xff0c;详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例&#xff0c;上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动&#xff0c;从这一节开…

Python---TCP 客户端程序开发

1. 开发 TCP 客户端程序开发步骤回顾 创建客户端套接字对象和服务端套接字建立连接发送数据接收数据关闭客户端套接字 2. socket 类的介绍 导入 socket 模块 import socket 创建客户端 socket 对象 socket.socket(AddressFamily, Type) 参数说明: AddressFamily 表示IP地…

JavaScript:函数

JavaScript&#xff1a;函数 函数的作用函数的声明和调用函数声明函数调用函数重复声明 函数传参传参语法参数默认值与参数数量问题传参数量过多传参数量太少参数默认值 函数的返回值函数表达式匿名函数立即执行函数 函数的作用 在我们编程过程中&#xff0c;会出现一种情况&a…

[软件] Image2LCD v4.0

介绍 通过打开图片, 可以提取图片的像素特征, 生成.c文件, 或者二进制文件等, 提供人们根据需要选择. 16位真彩色 每一个像素点需要用16位来表示, 分别是RGB, R: 5位 G: 6位, B: 5位, 共两个字节. 配置 tftLCD180显示屏, 官方给的参考代码, 需要如下所示设置.

【Spring Security】认证密码加密Token令牌CSRF的使用详解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Spring Security》。&#x1f3af;&#x1f3af; …