iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >【Java 进阶篇】JDBC查询操作详解
  • 288
分享到

【Java 进阶篇】JDBC查询操作详解

java开发语言sqlmysql数据库gitwindows 2023-12-23 20:12:38 288人浏览 薄情痞子
摘要

在数据库编程中,查询是一项非常常见且重要的操作。JDBC(Java Database Connectivity)提供了丰富的api来执行各种类型的查询操作。本篇博客将详细介绍如何使用JDBC进行查询操作,包括连接数据库、创建查询语句、执行

在这里插入图片描述

数据库编程中,查询是一项非常常见且重要的操作。JDBC(Java Database Connectivity)提供了丰富的api来执行各种类型的查询操作。本篇博客将详细介绍如何使用JDBC进行查询操作,包括连接数据库、创建查询语句、执行查询、处理结果集等方面的内容。无论你是初学者还是有一定经验的开发者,都可以从中获得有价值的信息。

准备工作

在进行JDBC查询操作之前,我们需要进行一些准备工作:

  1. 安装数据库驱动程序:首先,确保你已经安装了与你使用的数据库相对应的JDBC驱动程序。不同数据库有不同的JDBC驱动,你需要下载并将其添加到你的项目中。

  2. 创建数据库:如果还没有数据库,可以使用数据库管理工具(如Mysql Workbench)创建一个数据库,然后在该数据库中创建表格并插入一些数据,以便进行查询操作的演示。

  3. 导入JDBC库:在Java项目中,你需要导入JDBC库,通常是java.sql包下的类和接口。

连接数据库

在进行任何数据库操作之前,首先需要建立与数据库的连接。连接数据库是通过Connection对象来完成的。以下是连接到数据库的基本步骤:

import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class JDBCDemo {    public static void main(String[] args) {        // JDBC连接URL,其中mydatabase是数据库名        String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase";        String username = "your_username";        String passWord = "your_password";        try {            // 创建数据库连接            Connection connection = DriverManager.getConnection(jdbcUrl, username, password);            // 在此处执行查询操作            // 关闭连接            connection.close();        } catch (SQLException e) {            e.printStackTrace();        }    }}

在上面的代码中,我们首先指定了数据库的连接URL、用户名和密码。然后,通过DriverManager.getConnection()方法创建了与数据库的连接,并在最后关闭了连接。请替换jdbcUrlusernamepassword为你自己的数据库信息。

创建查询语句

一旦建立了数据库连接,我们就可以创建查询语句。查询语句是使用StatementPreparedStatement对象来执行的。这里我们介绍两种常见的创建查询语句的方式。

使用Statement

import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class JDBCDemo {    public static void main(String[] args) {        String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase";        String username = "your_username";        String password = "your_password";        try {            Connection connection = DriverManager.getConnection(jdbcUrl, username, password);            // 创建Statement对象            Statement statement = connection.createStatement();            // 在此处执行查询操作            // 关闭连接和Statement            statement.close();            connection.close();        } catch (SQLException e) {            e.printStackTrace();        }    }}

上述代码中,我们通过connection.createStatement()方法创建了一个Statement对象,它用于执行SQL语句。这种方式适用于静态的SQL查询。

使用PreparedStatement

import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class JDBCDemo {    public static void main(String[] args) {        String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase";        String username = "your_username";        String password = "your_password";        try {            Connection connection = DriverManager.getConnection(jdbcUrl, username, password);            // 创建PreparedStatement对象,可以使用占位符            String sql = "SELECT * FROM students WHERE age > ?";            PreparedStatement preparedStatement = connection.prepareStatement(sql);            // 设置占位符的值            preparedStatement.setInt(1, 18);            // 在此处执行查询操作            // 关闭连接和PreparedStatement            preparedStatement.close();            connection.close();        } catch (SQLException e) {            e.printStackTrace();        }    }}

在上述代码中,我们使用connection.prepareStatement()方法创建了一个PreparedStatement对象,它可以包含占位符。这种方式适用于需要动态生成SQL查询的情况,同时也有助于防止SQL注入攻击。

执行查询

一旦创建了查询语句,我们就可以执行查询操作了。执行查询的方式主要有两种:使用executeQuery()方法执行查询并返回结果集,以及使用executeUpdate()方法执行更新操作。

使用executeQuery()

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JDBCDemo {    public static void main(String[] args) {        String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase";        String username = "your_username";        String password = "your_password";        try {            Connection connection = DriverManager.getConnection(jdbcUrl, username, password);            Statement statement = connection.createStatement();            // 执行查询操作,将结果存储在ResultSet对象中            String query = "SELECT * FROM students";            ResultSet resultSet = statement.executeQuery(query);            // 遍历结果集并处理数据            while (resultSet.next()) {                int id = resultSet.getInt("id");                String name = resultSet.getString("name");                int age = resultSet.getInt("age");                System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);            }            // 关闭连接、Statement和ResultSet            resultSet.close();            statement.close();            connection.close();        } catch (SQLException e) {            e.printStackTrace();        }    }}

在上面的代码中,我们使用executeQuery()方法执行了一个查询操作,并将结果存储在ResultSet对象中。然后,我们通过遍历ResultSet来访问查询结果的每一行。

使用executeUpdate()

import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class JDBCDemo {    public static void main(String[] args) {        String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase";        String username = "your_username";        String password = "your_password";        try {            Connection connection = DriverManager.getConnection(jdbcUrl, username, password);            Statement statement = connection.createStatement();            // 执行更新操作,返回受影响的行数            String update = "UPDATE students SET age = 20 WHERE id = 1";            int rowsAffected = statement.executeUpdate(update);            System.out.println("Rows affected: " + rowsAffected);            // 关闭连接和Statement            statement.close();            connection.close();        } catch (SQLException e) {            e.printStackTrace();        }    }}

在上述代码中,我们使用executeUpdate()方法执行了一个更新操作,例如更新表中的某些数据。它返回受影响的行数,以便我们知道操作的结果。

处理结果集

一旦我们执行了查询操作并获得了结果集,就需要对结果集进行处理。常见的处理方式包括遍历结果集、提取数据以及关闭结果集。

// 遍历结果集并处理数据while (resultSet.next()) {    int id = resultSet.getInt("id");    String name = resultSet.getString("name");    int age = resultSet.getInt("age");    System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);}// 提取数据if (resultSet.next()) {    int id = resultSet.getInt("id");    String name = resultSet.getString("name");    int age = resultSet.getInt("age");}// 关闭结果集resultSet.close();

遍历结果集时,我们使用next()方法来移动到结果集的下一行。然后,使用getXXX()方法(例如getInt()getString())来提取数据。最后,使用close()方法关闭结果集。

异常处理

在进行任何数据库操作时,务必进行异常处理以处理潜在的错误情况。在上述代码示例中,我们使用了try-catch块来捕获SQLException异常,并在异常发生时打印错误信息。

try {    // 执行数据库操作} catch (SQLException e) {    e.printStackTrace();}

这样可以确保在遇到问题时能够及时识别和解决。

总结

本篇博客介绍了如何使用JDBC进行查询操作的基本步骤,包括连接数据库、创建查询语句、执行查询操作和处理结果集。希望这些示例能够帮助你更好地理解和使用JDBC进行数据库查询操作。在实际开发中,你可以根据自己的需求和数据库类型来编写相应代码,来完成自己的需求。

作者信息

作者 : 繁依Fanyi
CSDN: https://techfanyi.blog.csdn.net
掘金:Https://juejin.cn/user/4154386571867191

来源地址:https://blog.csdn.net/qq_21484461/article/details/133531462

--结束END--

本文标题: 【Java 进阶篇】JDBC查询操作详解

本文链接: https://www.lsjlt.com/news/551748.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【Java 进阶篇】JDBC查询操作详解
    在数据库编程中,查询是一项非常常见且重要的操作。JDBC(Java Database Connectivity)提供了丰富的API来执行各种类型的查询操作。本篇博客将详细介绍如何使用JDBC进行查询操作,包括连接数据库、创建查询语句、执行...
    99+
    2023-12-23
    java 开发语言 sql mysql 数据库 git windows
  • java中JDBC增删改查操作详解
    目录前言一、增删改操作1.1 PreparedStatement介绍 1.2 增删改操作  1.3 测试二、查操作2.1 通用对不同表进行一条数据查询操作2.2 通用对不同表进行多条...
    99+
    2024-04-02
  • 【MySQL】查询操作(基础篇)
    目录 1、查询操作(Retrieve) 1.1 全列查询 1.2 指定列查询 1.3 查询字段为表达式 1.4 别名 1.5 去重:DISTINCT 1.6 排序:ORDER BY 1.7 条件查询:WHERE  1.8 分页查...
    99+
    2023-09-01
    mysql 数据库
  • MySQL数据库查询进阶之多表查询详解
    目录一、多表查询1.引出2.笛卡尔积3. 笛卡尔积的解决方法二、多表查询分类1.等值连接和非等值连接2.自连接和非自连接3.内连接和外连接4.自然连接5.using连接三、子查询1....
    99+
    2024-04-02
  • java开发Activiti进阶篇流程实例详解
    目录1.流程实例1.1 什么是流程实例1.2 业务管理1.3 流程实例的挂起和激活1.3.1 全部流程挂起1.3.2 单个实例挂起1.流程实例 1.1 什么是流程实例 流程实例(Pr...
    99+
    2022-11-13
    java Activiti流程实例 java Activiti
  • 【Java 进阶篇】Java Request 获取请求头数据详解
    在Java Web开发中,获取HTTP请求的请求头数据是一项常见任务。HTTP请求的请求头包含了客户端发送给服务器的额外信息,这些信息对于服务器来说很重要,因为它们可以包含用户代理、授权信息、Cookies等内容。在Java中,可以使用H...
    99+
    2023-12-23
    java 开发语言 http servlet 网络协议 git windows
  • 【进阶篇】MySQL 存储引擎详解
    文章目录 0.前言1.基础介绍2.1. InnoDB存储引擎底层原理InnoDB记录存储结构和索引页结构InnoDB记录存储结构:InnoDB索引页结构: 3. MVCC 详解3.1. 版...
    99+
    2023-09-07
    mysql 数据库
  • C语言进阶之文件操作详解
    目录0. Intro1. 文件名2. 文件的打开和关闭2.1 文件指针2.2 打开和关闭文件3. 文件顺序读写3.1 利用以上函数实现拷贝文件操作3.2 二进制的读写3.3 格式化输...
    99+
    2024-04-02
  • Java中JDBC实现动态查询的实例详解
    一 概述什么是动态查询?从多个查询条件中随机选择若干个组合成一个DQL语句进行查询,这一过程叫做动态查询。动态查询的难点可供选择的查询条件多,组合情况多,难以一一列举。最终查询语句的构成一旦用户向查询条件中输入数据,该查询条件就成为最终条件...
    99+
    2023-05-31
    jdbc 动态查询 ava
  • MongoDB 查询操作的实例详解
    MongoDB 查询操作的实例详解 使用find或findOne进行查询。并可以进行范围查询、数据集查询、不等式查询,以及其他的一些查询。 查询将会返回DBcursor 游标只有在你需要的时候返回文档 ...
    99+
    2024-04-02
  • MySQL子查询操作实例详解
    本文实例总结了MySQL子查询操作。分享给大家供大家参考,具体如下: 定义两个表tb1和tb2 CREATE table tbl1 ( num1 INT NOT NULL); CREATE table ...
    99+
    2024-04-02
  • MySQL查询进阶操作从函数到表连接的使用
    目录前言一、MySQL函数的使用1、单行函数二、MySQL的分组三、分页以及查询关键字的执行顺序四、子查询1、where子查询2、from子查询五、表连接1、内连接2、(左...
    99+
    2022-11-13
    MySQL函数表连接 MySQL函数
  • 【进阶篇】MySQL的SQL解析原理详解
    文章目录 0. 前言1. SQL解析过程1. 词法分析2. 语法分析4. 语法分析树5. MySQL语法分析树生成过程6. 核心数据结构及其关系7. SQL解析的应用 2. 参考文档 ...
    99+
    2023-09-03
    sql mysql 数据库 后端 运维
  • MyBatis增、删、改、查(多表查询)操作详解
    MyBatis增、删、改、查操作 1. 增加用户操作(insert标签),返回受影响的行数.1.1 返回自增id 2. 修改用户操作(update)3. 删除用户操作(delete)4. ...
    99+
    2023-09-24
    mybatis mysql spring 数据库 spring boot
  • MySQL增删改查【进阶篇】万字图文超详细讲解
    MySQL进阶增删改查[图文超详细讲解] 一.创建数据库约束1.1约束类型1.2not null约束1.3unique :唯一约束(约束列)1.4default :默认值约束1.5primary key : 主键约束(常用)1.6f...
    99+
    2023-08-17
    mysql 数据库 java
  • Java Durid进行JDBC连接详解
    目录一、Druid简介二、Druid的优点三、使用 Durid 进行 JDBC MySQL 的连接3.1 添加 Druid 的依赖、数据库驱动3.2 创建 JDBC 工具类3.3 添...
    99+
    2024-04-02
  • MySQL使用集合函数进行查询操作实例详解
    本文实例讲述了MySQL使用集合函数进行查询操作。分享给大家供大家参考,具体如下: COUNT函数 SELECT COUNT(*) AS cust_num from customers; SEL...
    99+
    2024-04-02
  • 详解Java进阶知识注解
    目录一、注解的概念1、注解官方解释2、注解与注释的区别二、内置注解与元注解1、常用的内置注解2、常用的元注解三、自定义注解1、自定义注解基础知识2、演示自定义注解的使用3、演示注解在...
    99+
    2024-04-02
  • PostgreSql JDBC事务操作方法详解
    目录JDBC事务相关方法简介禁用自动提交模式提交事务回滚事务PostgreSQL JDBC 事务示例JDBC事务相关方法简介 本文将借助示例,简单讲解下JDBC操作Pg事务的流程。 首先来简单讲解下事务的定义:为了确保两...
    99+
    2022-11-19
    PostgreSql JDBC事务操作 PostgreSql JDBC
  • java编程小白进阶包的作用详解
    目录步骤 1  工具包里面有很多个工具类步骤 2  StringUtil步骤 3  目前的情况步骤 4  CLASSPATH步骤 5 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作