使用 JDBC 执行 SQL 语句

Java的JDBC最全基础笔记(SQL注入) 1、JDBC:Java DataBase Connectivity,可以理解为是以前的Socket桥梁,或流读写数据库(1)确切的说,JDBC是Java平台提供的一套统一的执行规范/标准(2)那么我们知道通常定义规范,一般都要定义一些接口,所以JDBC这一套规范中定义了很多的接口和类及方法(3)那么接口是不能干活的,需要子类去完成,那么子类需要谁去完成?(4)Java对应多种数据库,那么就需要数据库去实现这个接口,Mysql数据库要去实现,Oracle的数据库也要去实现; 阅读详情

使用 JDBC 执行 SQL 语句

在上一篇文章中我们了解到什么是JDBC驱动程序以及如何打开和安全地关闭MariaDB数据库连接。接下来我们在上一篇文章的基础上学习如何使用 JDBC 对 SQL 数据库执行SELECT、INSERT、UPDATE和DELETE语句。这些操作称为CRUD 操作(创建、读取、更新、删除),它们构成了应用程序中的大部分功能。如果你还没看过第一篇文章,点击这里查看Java应用程序连接MariaDB。

在本文中,我们将构建一个使用 JDBC与MariaDB 数据库交互的简单 Java 应用程序。从最终用户的角度来看,我们不会实现具有有用功能的应用程序。我们将简单地从 Java 标准main方法中调用每个 CRUD 操作的方法。以下是我们想要实现对数据库的 CRUD 操作的方法,但是具体的方法还没有实现,后面我们会一步步的实现这些方法:

public static void main(String[] args) throws SQLException {
    try {
        createData("Java", 10);
        createData("JavaScript", 9);
        createData("C++", 8);
        readData();
        updateData("C++", 7);
        readData();
        deleteData("C++");
        readData();
    } finally {
        closeDatabaseConnection();
    }
}

使用 JDBC 插入数据

代码如下:

package com.example;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Application {
    private static Connection connection;
    public static void main(String[] args) throws SQLException {
        try {
            openDatabaseConnection();
            //插入数据
            createData("Java", 10);
            createData("JavaScript", 9);
            createData("C++", 8);
            //插入数据结束

        } finally {
            closeDatabaseConnection();
        }
    }

    //createData()方法具体实现
    private static void createData(String name, int rating) throws SQLException {
        System.out.println("Create data: " );
        try (PreparedStatement statement = connection.prepareStatement(
                "    INSERT INTO programming_language(name, rating)\n" + "    VALUES (?, ?)\n")) {
            statement.setString(1, name);
            statement.setInt(2, rating);
            int rowsInserted = statement.executeUpdate();
            System.out.println("Rows inserted: " + rowsInserted);
        }
    }

    private static void openDatabaseConnection() throws SQLException{
        System.out.println("Opening database connection...");

        connection = DriverManager.getConnection(
                "jdbc:mariadb://localhost:3306/jdbc_demo",
                "user", "password"
        );

        System.out.println("Connection valid: " + connection.isValid(5));
    }
    private static void closeDatabaseConnection() throws SQLException {
        connection.close();
        System.out.println("Connection valid: " + connection.isValid(5));
    }

}

运行结果如下:

在这里插入图片描述

查看数据库表结果如下:

在这里插入图片描述

使用 JDBC 检索数据

要实现读取CRUD 操作,我们需要获取一个类型为ResultSet的对象,需要添加的代码如下

private static void readData() throws SQLException {
        try (PreparedStatement statement = connection.prepareStatement(
                "    SELECT name, rating\n" + "    FROM programming_language\n" + "    ORDER BY rating DESC\n")) {
            try (ResultSet resultSet = statement.executeQuery()) {
                boolean empty = true;
                while (resultSet.next()) {
                    empty = false;
                    String name = resultSet.getString("name");
                    int rating = resultSet.getInt("rating");
                    System.out.println("\t> " + name + ": " + rating);
                }
                if (empty) {
                    System.out.println("\t (no data)");
                }
            }
        }
    }

运行结果如下:

在这里插入图片描述

使用 JDBC 修改数据

Update CRUD 操作与Create操作类似,需要添加代码如下:

 private static void updateData(String name, int newRating) throws SQLException {
        try (PreparedStatement statement = connection.prepareStatement(
                "    UPDATE programming_language\n" + "    SET rating = ?\n" + "    WHERE name = ?\n")) {
            statement.setInt(1, newRating);
            statement.setString(2, name);
            int rowsUpdated = statement.executeUpdate();
            System.out.println("Rows updated: " + rowsUpdated);
        }
    }

运行结果如下:

在这里插入图片描述

使用 JDBC 删除数据

最后,从 JDBC 的角度来看, Delete CRUD 操作类似于Create和Update操作,需要添加的代码如下:

private static void deleteData(String nameExpression) throws SQLException {
        try (PreparedStatement statement = connection.prepareStatement("    DELETE FROM programming_language\n" + "    WHERE name LIKE ?\n")) {
            statement.setString(1, nameExpression);
            int rowsDeleted = statement.executeUpdate();
            System.out.println("Rows deleted: " + rowsDeleted);
        }
    }

运行结果如下:

在这里插入图片描述

如有不妥之处请留言指正。相互学习,共同进步!

Java语法篇—JDBC 1.简单来说jdbc就是java与数据库连接,是一种用于执行SQL语句的JAVA API2.由于市场上有很多不同的数据库,例如:mysql,SQLserve等等,如果每一种数据库都要JAVA官方来写对应的类或接口工作量很大,所以JAVA官方有了规范的JDBC接口,对应不同的数据库提供统一的方法,程序员只需要学习统一的方法,其他由数据库官方来写。 阅读详情

相关推荐

【Java代码审计】SQL注入篇

SQL 注入(SQL Injection)是因为程序未能正确对用户的输入进行检查,将用户的输入以拼接的方式带入 SQL 语句中,导致了 SQL 注入的产生。黑客通过 SQL 注入可直接窃取数据库信息,造成信息泄露输入用户可控直接或间接拼入 SQL语句执行因 SQL 注入漏洞特征性较强,在实际的审计过程中我们往往可以通过一些自动化审计工具快速地发现这些可能存在安全问题的代码片,如使用奇安信代码卫士、Fortify 等自动化工具。

大河之犬的博客 3165

JDBC连接执行SQL

JDBC

weixin_73849581的博客 3955

深入探究贝叶斯网络(Bayesian Network):从基础原理到实际应用

贝叶斯网络,也称为信念网络或有向无环图模型,是一种概率图模型。它使用有向无环图(DAG)来表示随机变量之间的条件依赖关系。每个节点代表一个随机变量,边表示变量之间的条件依赖关系。贝叶斯网络作为一种强大的工具,通过结合概率论和图论,为复杂系统建模和推理提供了有效手段。无论是在医学诊断、故障检测还是自然语言处理等领域,它都展示了巨大的潜力。然而,其计算复杂度高、结构学习困难等挑战也需要我们在实际应用中不断优化算法和技术。希望通过本文,你能对贝叶斯网络有更深入的理解,并能够在实际项目中灵活应用这一强大工具。

qq_28791753的博客 5966

关于JDBC中 执行SQL语句的一些理解

【代码】关于JDBC中 执行SQL语句的一些理解。

Earth_manmn的博客 649

FIddler+Proxifer 实现PC客户端抓包详细教程

FIddler+Proxifer 实现PC客户端抓包详细教程

森明帮大于黑虎帮的博客 1万+

SDR实战(四)-AD9361使用手册(三)

本节定义了并行数据端口和串行外设接口(SPI),它们使得AD9361与基带处理器(BBP)之间能够传输数据和控制/状态信息。图63展示了这些接口,并提供了AD9361和BBP在宽带无线系统中使用方式的高级概述。数据接口以两种模式之一运行:兼容标准CMOS模式或兼容低压差分信号(LVDS)模式。每个接口都具有以下部分描述的独特特性。使用CMOS模式时:保持了单端-CMOS逻辑兼容性。可以使用一个或两个数据端口。使用两个端口可以提高数据吞吐量。

hutx0924的博客 6242

GaussDB 基于JDBC开发--执行SQL语句

应用程序通过执行SQL语句来操作数据库的数据(不用传递参数的语句),需要按以下步骤执行。支持对XML类型数据进行SELECT、UPDATE、INSERT、DELETE等操作。// 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全。

Cui_Yuan_666的博客 1022

Proxmox PVE 黑苹果安装全攻略:从镜像准备到系统配置

本文提供了一份在Proxmox PVE虚拟化平台上安装macOS(黑苹果)的详细指南。内容涵盖从获取OpenCore引导镜像和macOS安装镜像、宿主机环境检查与调优,到创建虚拟机、修改关键配置文件、解决引导问题以及安装后优化的全流程。重点在于通过正确的PVE配置和参数调整,成功在KVM虚拟机中运行macOS系统,为开发测试提供灵活环境。

opencv7vision的博客 1107

Jmeter JDBC Request执行多条SQL语句

之前写过Jmeter操作mysql的文章https://blog.youkuaiyun.com/qq_36502272/article/details/88891873今天我们再看下如何操作多条sql语句 1、添加JDBC Connection Configuration并配置 Database URL为MySQL的连接串,如果要执行多条SQL语句,后面还要添加“?allowMultiQueri...

专业资深测试者,多年质量管理经验,浪迹网游、金融、房产、招聘及海外行业多年,CDSN百万原创阅读,公众号500+原创文章,提倡测试左移、风险、越权、假设、探索测试,喜欢用抽象思维模式思考和技术探讨,自动化、性能、安全测试实施者,感谢关注! 5124

基于C#通过PLCSIM ADV仿真软件实现与西门子1500PLC的S7通信方法演示

基于C#通过PLCSIM ADV仿真软件实现与西门子1500PLC的S7通信方法演示

Robot_PLC_HMI_Automation 3156

[QMT量化交易小白入门]-二十四、年化收益47%的全球核心资产轮动策略(含代码解析)

m_days = 25 #动量参考天数period=200m_days被设置为25,表示动量参考的天数为25天;period被设置为200,用于指定获取市场数据的周期长度。

木头大左的博客 2967

JDBC执行sql语句的方法,execute、executeUpdate、executeQuery

    执行sql是JDBC最重要的一个步骤,可以说是JDBC的灵魂,执行sql 一般有三个方法:execute、executeUpdate、executeQuery      1、executeUpdate 执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,该方法返回 ...

flying_hengfei的博客 6253

杰理JL7033C芯片运行SoundFont音色库教程

本教程介绍如何在杰理JL7033C芯片上移植TinySoundFont音色库,实现MIDI播放功能。关键步骤包括:获取TinySoundFont开源代码,创建音色库声音播放数据流,封装核心功能文件。硬件需配备外部PSRAM和NOR FLASH存储音色库,软件使用杰理SDK和工具链。移植后系统可支持40个voice,满足MIDI播放和电子琴演奏需求。教程详细说明了代码移植过程,包括音色库文件处理、内存配置和音频流水线设置。

qq_42014563的博客 610

jdbc执行sql语句全流程

查询操作: 使用执行SELECT语句,获取ResultSet并处理结果。插入操作: 使用执行INSERT语句,检查受影响的行数。更新操作: 使用执行UPDATE语句,检查受影响的行数。删除操作: 使用执行DELETE语句,检查受影响的行数。

随便写写 603

Windows密码忘了怎么办?一分钟看懂Windows密码底层机制:无需重装系统也能无痕找回登录密码

忘记Windows开机密码,不一定非得重装系统!本文手把手教你通过提取NTLM Hash值实现“无痕找回密码”,无需PE、无需清除密码,对系统零修改 🛡️ 搭配mimikatz与在线解密平台,小白也能快速上手,了解Windows密码底层机制 🔐

XiaoqiangClub的博客 121

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

11mybatis执行原生jdbc_sql语句

mybatis 执行JDBC SQL语句第一方式 使用mybatis 预留的Connection接口 this.ss 就是 SqlSession 会话 @Test public void s1() throws SQLException { Connection conn = this.ss.getConnection(); 返回Connec...

bangpo7553的专栏 996

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java jdbc执行sql,java 用jdbc连接mysql 并执行sql语句

//java 用jdbc连接mysql 并执行sql语句import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class JDBCMySQL {public static final String DBDRIVER ...

weixin_33303537的博客 1001

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JDBC典型用法、执行SQL语句方式

JDBC典型用法 API: DriverManager:用于管理JDBC驱动的服务类。程序中使用该类的主要功能是获取Connection对象 Connection: 代表数据库连接对象,每个Connection代表一个物理连接会话。要想访问数据库,必须先获得数据库连接 Statement:用于执行SQL语句的工具接口。该对象既可用于执行DDL、DCL语句,也可用于执行DML语句,还可用于执行SQL...

weixin_45823991的博客 3004

如何使用JDBC连接数据库并执行SQL语句?

通过上述步骤和示例代码,可以详细地了解如何使用JDBC连接数据库并执行SQL语句。JDBC提供了丰富的API,使得Java程序能够方便地与各种关系型数据库进行交互。在实际开发中,建议使用来提高安全性和性能。同时,务必确保在操作完成后释放所有数据库资源,以避免资源泄漏。9。

wang15510689957的博客 875

JDBC编程步骤与执行SQL语句的方式

(1)JDBC编程步骤: 第一步:加载数据库驱动。通常使用Class类的forName()静态方法来加载驱动: //加载驱动 Class.forNamed(DriverClass); 其中DriverClass就是数据库驱动类所对应的字符串。例如,加载MySQL的驱动代码如下 //加载MySQL驱动 Class.forName(“com.mysql.jdbc.Driver”);第二步:通

zlz18225318697的博客 4490

【JDBC】Statement执行静态sql语句对象

Statement执行静态sql语句对象   功能:   执行静态sql语句,并获取结果集对象 ※sql属于增删改语句 int count = st.executeUpdate(String sql); / 返回的是sql语句执行后,一共影响了表中的多少行数据。可以根据这个影响的行数来判断增删改是否执行成功,返回值>0则sql语句执行成功,否则执行失败 ※sql属于查询语句 ResultSet rs = st.executeQuery(String sql)

Need not to know 460

Jtti:怎么使用JDBC连接数据库并执行SQL语句

今天小编给大家分享一下怎么使用JDBC连接数据库并执行SQL语句的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

JttiSEO的博客 819

JDBC查看Preparedstatement执行的sql语句

通过JDBC4查看 String sql = "select * from user where uname = ?"; //执行sql语句 ps=conn.prepareStatement(sql); ps.setString(1, uname); res = ps.executeQuery(); String rsq = ((JDBC4PreparedStatement)ps).asSql()...

qq_42352406的博客 9828

JDBC执行SQL语句——新建一行

package jdbc.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import org.junit.Test; public class JDBCTest01 { @Test public void testConnection4() throws Exception { //语句上的优化 String url="jdbc:mysql://lo

qq_45772415的博客 280

JDBC执行SQL语句的常见误区

本文将针对标题[技术总结:JDBC执行SQL语句的常见误区]进行深入探讨,帮助读者了解在使用JDBC执行SQL语句时可能会遇到的常见误区,并给出相应的解决策略。综上所述,在使用JDBC执行SQL语句时,需要特别关注连接错误和SQL语句编写错误这两方面的问题。小红在使用JDBC执行SQL语句时出现了语法错误。总之,对于任何使用数据库连接和执行SQL语句的操作,都需要我们不断学习和实践,避免常见的误区和错误。1. 连接错误:连接数据库时,可能由于网络问题、数据库URL错误、用户名或密码错误等原因导致连接失败。

qq_35974860的博客 95

JDBC执行SQL语句基础

package com.cskaoyan.JDBCDemo; import org.junit.Test; import java.sql.*; public class JDBCStatement { /** * 创建一个连接到数据库的连接 * @return 连接 * @throws SQLException 连接失败会抛出SQL异常 ...

向前走,不要回头 253
上一篇: Java 连接MariaDB
下一篇: 快速使用Java和MariaDB--创建和管理连接池
茵赛飞3D CAD数据转换软件
博客等级 码龄5年 233粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值