JDBC介绍(三)

CMAC算法原理 2、K1 通过以下运算导出:若 L 的最高有效位等于 0,则 K1 是 L 的左移 1 位。3、K2 通过如下运算导出:若 K1 的最高有效位等于 0,则 K2 是 K1 的左移 1 位。采用了 AES 算法中的类似 CBC 模式的加密方式,即对前一个分组的密文与当前分组的明文进行异或操作后在加密,2、分块处理:首先将消息分成多个固定长度的块,若消息长度不是块大小的倍数,则可以使用填充来将其填充到合适的大小。1、子密钥计算,通过主密钥生成子密钥(key1,key2),子密钥用于最后一个块处理; 阅读详情
Statement ResultSet

Connection对象是代表Java与数据库的联机,接下来我们要执行SQL的话,必须取得Statement对象,它代替我们执行SQL叙述并取得执行之后的结果,我们可以使用Connection的createStatement()来建立Statement对象:

 
 Connection conn = DriverManager.getConnection(
                           url, user, password); 
 Statement stmt = conn.createStatement(); 
 

取得Statement对象之后,我们可以使用executeUpdate()、executeQuery()等方法来执行SQL,executeUpdate()主要是用来执行CREATE TABLE、INSERT、DROP TABLE、ALTER TABLE等会改变数据库内容的SQL,例如:

 
 stmt.executeUpdate("INSERT INTO message VALUES('Michael CHEN', " +
           "'caterpillar@mail.com', '留言吧', '2005-2-4'," + 
           "'欢迎')");
  

executeQuery()方法则是用于SELECT等查询数据库的SQL,executeUpdate()与executeQuery()都会传回ResultSet对象,代表变更或查询的结果,查询的结果会是一笔一笔的资料,我们使用next()来移动至下一笔资料,它会传回 true 或 false表示是否有下一笔资料,接着我们可以使用getXXX()来取得资料,例如getString()、getFloat()、getDouble()等方法,分别取得相对应的字段型态资料,getXXX()方法都提供有依字段名称取得资料,或是依字段顺序取得资料的方法,一个例子如下,我们指定字段名称来取得资料:

 
 ResultSet result = 
              stmt.executeQuery("SELECT * FROM message"); 
 while(result.next()) { 
    System.out.print(result.getString("name") + "/t"); 
    System.out.print(result.getString("email") + "/t"); 
    System.out.print(result.getString("subject") + "/t"); 
    System.out.print(result.getString("time") + "/t"); 
    System.out.println(result.getString("memo") + "/t"); 
 } 
 

使用查询到的结果之字段顺序来显示结果的方式如下:

 
 ResultSet result = 
              stmt.executeQuery("SELECT * FROM message"); 
 while(result.next()) { 
    System.out.print(result.getString(1) + "/t"); 
    System.out.print(result.getString(2) + "/t"); 
    System.out.print(result.getString(3) + "/t"); 
    System.out.print(result.getString(4) + "/t"); 
    System.out.println(result.getString(5) + "/t"); 
 } 
 

Statement的execute()也可以用来执行SQL,并可以用来测试所执行的SQL是执行更新或是查询,传回true的话表示SQL执行将传回多笔资料,也就是执行查询动作,如果是false,表示SQL执行结果将传回受影响的行数,也就是表示进行更新动作,如果事先无法得知是进行查询或是更新,就可以使用execute()。

下面的程序是个完整的范例,注意我们在查询结束后,可以使用Statement的close()方法来释放Statement的数据库资源与JDBC资源,而最后不使用联机时也使用Connection的close()来关闭联机:

  • DBTest.java
 
 package onlyfun.caterpillar;
 
 import java.sql.*;
 
 public class DBTest { 
    public static void main(String[] args) { 
        String driver = "com.mysql.jdbc.Driver"; 
        String url = "jdbc:mysql://localhost:3306/GUESTBOOK?" + 
                   "useUnicode=true&characterEncoding=Big5"; 
        String user = "myname"; 
        String password = "123456"; 
        try { 
            Class.forName(driver); 
            Connection conn = DriverManager.getConnection(
                                        url, user, password);
 
            Statement stmt = conn.createStatement(); 
            stmt.execute("INSERT INTO message VALUES('Michael Chen" + 
               "', 'blog.youkuaiyun.com/ybugchen', '留言吧', "+ 
               "'2005-2-4', '欢迎')"); 
 
            ResultSet result = stmt.executeQuery(
                                  "SELECT * FROM message"); 
            while(result.next()) { 
                System.out.print(result.getString(1) + "/t"); 
                System.out.print(result.getString(2) + "/t"); 
                System.out.print(result.getString(3) + "/t"); 
                System.out.print(result.getString(4) + "/t"); 
                System.out.println(result.getString(5) + "/t"); 
            }
 
            stmt.close(); 
            conn.close(); 
        } 
        catch(ClassNotFoundException e) { 
            System.out.println("找不到驱动程序"); 
            e.printStackTrace(); 
        } 
        catch(SQLException e) { 
            e.printStackTrace(); 
        } 
    } 
 }
 

最后注意到的是,Connection对象预设为自动「认可」(commit),也就是Statement执行SQL叙述完后,马上对数据库进行操作变更,如果想要对Statement要执行的SQL进行除错,可以使用setAutoCommit(false)来将自动认可取消,在执行完SQL之后,再呼叫Connection的commit()方法认可变更,使用Connection的getAutoCommit()可以测试是否设定为自动认可。

不过无论是否有无执行commit()方法,只要SQL没有错,在关闭Statement或Connection前,都会执行认可动作,对数据库进行变更。

 

RU DOS版、EFI版32bit/64bit BIOS常用工具 DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。 立即下载

相关推荐

量化实战:用三种波动率模型给你的期货策略做个“体检”(附Python代码与螺纹钢案例)

本文深入探讨了三种专业波动率模型(Parkinson、Garman-Klass和Rogers-Satchell)在期货量化策略中的应用,并以螺纹钢期货为例,展示了如何通过Python实现这些模型进行多维度波动率分析。文章详细比较了不同模型的特点和适用场景,提供了动态仓位管理、止损策略优化等实战应用方案,帮助交易者更精准地评估市场风险,优化策略表现。

weixin_26824299的博客 460

JDBC概述(JDBC是什么,主要作用,驱动类型等)

JDBC是一种可用于执行SQL语句的JAVA API,是链接数据库和JAVA应用程序的纽带

weixin_52009798的博客 1万+

达梦数据库(DM)的备份与恢复功能

本文系统介绍了达梦数据库(DM)的备份与恢复功能,主要包括作业系统和物理/逻辑备份还原两大模块。作业系统部分详细说明了通过代理环境创建定时备份和删除备份作业的步骤;物理备份还原部分阐述了联机和脱机备份方式,包括数据库、表空间、表和归档的备份还原操作;逻辑备份还原部分介绍了dexp/dimp工具的使用方法及四种级别的导入导出功能。文章还介绍了图形化管理工具进行备份还原的操作流程,全面覆盖了达梦数据库的数据保护方案,为数据库管理员提供了详细的技术指导。

weixin_48812832的博客 1211

JDBC的释义和功能及优缺点的概述

什么是JDBC?     JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。    JDBC提供的主要功能是:1)同一个数据库建立连接;2)向数据库...

loen_77的博客 7996

Win32逆向必备:X32dbg中窗口句柄查看与消息断点的高级用法

本文深入探讨了X32dbg在Win32逆向工程中的高级应用,重点解析窗口句柄查看与消息断点的实战技巧。通过MFC程序逆向案例,详细介绍了如何利用窗口句柄层次结构、条件断点设置及消息映射表定位等技术,快速捕获关键业务逻辑,提升逆向分析效率。

nginx7reverse的博客 1016

C语言 函数

一、什么是函数 二、函数的相关语法 三、函数编码规范

m0_57105760的博客 1890

8-1、JDBC对象介绍(4大参数等)

1 JDBC中的主要类(接口) 在JDBC中常用的类有: l DriverManager;(注册驱动类,调用该类就执行静态代码块的内容,自己注册) l Connection;数据库连接, 可以得到statement,preparedStatement:java.sql.类 l Statement; l ResultSet。 2 DriverManager 其实...

weixin_30326741的博客 307

AI图像识别在临电配电箱安全检测中的应用与实践

计算机视觉与AI图像识别技术正逐步改变传统工业检测方式。通过深度学习模型如YOLOv5和ResNet,系统能自动识别设备元件并分析其状态,大幅提升检测效率和准确性。这种技术特别适用于需要严格遵循行业标准的场景,如临电配电箱的安全检测。将《施工现场临时用电安全技术规范》等条文转化为可量化的算法,AI系统能自动检查PE线连接、漏保功能等关键项目。实际应用表明,此类解决方案可使电气事故率下降90%以上,同时检测耗时缩短80%,为工地安全提供了智能化保障。

weixin_29042035的博客 328

jdbc作用及步骤

核心包 java.sql 主要作用: 与一个数据库建立连接 向数据库发送SQL语句 处理数据库返回的结果 Connection:此接口表示与数据的连接      PreparedStatement:此接口用于执行预编译的 SQL 语句 ResultSet :此接口表示了查询出来的数据库数据结果集 DriverManage:此类用于加载和卸载各种驱动程序并建立与数据库的连接 S

maomao092092的专栏 895

到底是什么决定了二极管的最高工作频率?

硬件工程师,应该都用过二极管的吧,不过也许有一个误区,大多数人可能并不知道,或者说是理解有问题,下面就来细细说下。 一个问题 先提一个问题:到底是什么决定了二极管的最高工作频率? 估计有不少人会回答是二极管反向恢复时间Trr,也有人会说是二极管结电容,那到底谁是对的呢?或者说都一样,反向恢复时间由结电容决定? 到底什么决定了二极管的最高工作频率,我们暂且不论,不过需要知道的是,二极管的反向恢复时间和结电容根本就是两回事,反向恢复时间绝不能等同于结电容的充放电时间。 为什么我这么说呢?.

weixin_42005993的博客 4832

别再凭感觉选电容了!手把手教你计算电机控制器里的母线电容(附Excel计算工具)

本文详细解析了电机控制器中母线电容的选型方法,从理论计算到工程实践,帮助工程师避免常见误区。通过精确计算纹波电压、电容容量等关键参数,并结合薄膜电容与电解电容的性能对比,提供实用的选型建议。附带的Excel计算工具可快速完成参数计算,适用于工业伺服驱动和电动车电机控制器设计。

weixin_28720573的博客 518

jdbc功能类详解

03-jdbc功能类详解-DriverManager 1.DriverManager DriverManager:驱动管理对象 注册驱动(告诉程序该使用哪一个数据库驱动) static void registerDriver(Driver driver):注册与给定的驱动程序 DriverManager 写代码使用:Class.forName(“com.mysql.jdbc.Driver”); 通过查看源码发现:在com.mysql.jdbc.Driver类中存在静态代码块 static {

Major_S的博客 538

数据行小于列索引,内部模式表示可能存在问题

通过检查数据源的完整性和一致性,检查Debezium配置,检查列映射以及启用调试模式和日志记录,您应该能够解决这个错误。请注意,具体的解决方法可能因您的具体情况而异,因此您可能需要根据问题的根本原因进行适当的调整和修复。如果问题仍然存在,您可能需要进一步检查您的数据和配置,并根据具体情况进行调整和修复。在Debezium中,您可以使用列重命名和列映射来定义源和目标之间的列映射关系。通过检查日志,您可以查看详细的错误信息和堆栈跟踪,从而更好地理解问题的根本原因。首先,我们应该检查数据源的完整性和一致性。

XbtoMemory的博客 730

JDBC简单介绍三

JDBC API既支持数据库访...

专注数据库、大数据领域干货分享,用严谨的数据技术广交天下朋友。 132

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JDBC (三) --- PreparedStatement对象介绍

1:PreperedStatement是Statement的子类,它的实例对象可以通过Connection.preparedStatement()方法获得,相对于Statement对象而言:PreperedStatement可以避免SQL注入的问题。 2:Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。PreparedStatement可对SQL进行预编译,从而提高数据库的执...

但行好事 莫问前程 1247

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

什么是JDBC

包(数据库厂商提供的驱动 包)的形式提供给开发人员使用,开发人员使用反射的机制创建这些具体实现类,按照JDBC。的规范,实现自身数据库操作的功能代码,然后以。,提供了诸如查询和更新数据库中数据的方法。的规范来完 成数据库的操作。是面向关系型数据库的。中用来规范客户端程序。

m0_70648941的博客 845

[SQL]:如何简化JDBC代码

问题的提出在一个应用程序中,处理JDBC的操作是一个重复率较高的工作。当你在一个JDBC数据源上执行SQL查询时,你通常需要执行下面几个步骤: 1.生成SQL语句 2.获得连接 3.获得一个PreparedStatement对象 4.在PreparedStatement对象中设定需要送入到数据库的值 5.执行SQL语句 6.处理查询结果 除此之外,你还需要处理SQLException异常。

键者天行 6306

复习1:数据库以及JDBC复习

这段时间一直都是在学习javaEE的相关内容,一直都是边听课边操作,一直听到了后面会话的内容了,但是前面的一些知识由于内容过多所以很多都忘记了。在这里分几次进行复习,第一次先复习数据库的先关内容。在这里主要不是将所有的知识点都囊括进来,而是将上课老师提到的面试题以及一些经典例题以及老师上课的一些思路进行一些整体,方便之后能够对照着代码进行反复学习。 1.面试题: 1. 什么是SQL? 答:Structured Query Language:结构化查询语言 其实就是定义了操作所有关系型数据库的规则。每一种数据

qq_40971025的博客 445

如何用jdbc访问MS Access数据库

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

java专栏 320

JDBC URL

1.JDBC URL的概念JDBC URL提供了一种标识数据库的方法,可以使相应的驱动程序能识别该数据库并与之建立连接。实际上,驱动程序编程员将决定用什么JDBC URL来标识特定的驱动程序。用户不必关心如何来形成JDBC URL,它们只须使用与所用的驱动程序一起提供的URL即可。JDBC的作用是提供某些约定,驱动程序程序员在构造它们的JDBC URL时应该遵循这些约定。(1)由于JDBC

dahaidao的专栏 4305

jdbc简单操作

jdbc的简单操作,使用idea简单操作mysql

asd590的博客 185

Mysql & JDBC 测试

定义:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。 应用场景:微服务开发,因为项目是多模块单独运行在各自的服务器 其余待补充

Lynnand的博客 957

jdbc连接access的方法

第一种:  你用下面的代码试试 (强烈建议也是only可以建议的方法)  con = DriverManager.getConnection("jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=C:/data/Access/test1.mdb","dba","sql");   后面的代码一样。这样你就可以访问access数据库了。    ...

shazhifeng的专栏 325

Oracle JDBC连接的三种方式

格式一: Oracle JDBC Thin using an SID: jdbc:oracle:thin:@host:port:SID Example: jdbc:oracle:thin:@localhost:1521:orcl 格式二: Oracle JDBC Thin using a ServiceName: jdbc:oracle:thin:@//host:port/se...

守护熊猫 926

oracle jdbc驱动_JDBC(1)

JDBCJDBC是连接Java程序和数据库的纽带,JDBC的实现封装了与各种数据库服务器通信的细节。Java程序通过JDBC API来访问数据库。其中JDBC API位于java.sql包中,javax.sql包中包含了一些提供高级特性的API。JDBC的实现包含三个部分:JDBC驱动管理器:java.sql.DriverManager类。由Oracle公司实现,负责注册特定JDBC驱动...

weixin_39628041的博客 642

Java学习【阶段三[02】JDBC(02 DCL管理用户)

qq_41915980的博客 193

Jdbc事务操作

JdbcTransaction 事务操作 要么相关的都操作,但凡有一个出错,相关的都要回滚到操作前的状态 JDBC程序中为了让多个 SQL 语句作为一个事务执行: 调用 Connection 对象的 setAutoCommit(false); 以取消自动提交事务 在所有的 SQL 语句都成功执行后,调用 commit(); 方法提交事务 在出现异常时,调用 rollback();

weixin_44966780的博客 259
上一篇: JDBC介绍(二)
下一篇: JDBC介绍(四)
ybugchen
博客等级 码龄22年 1粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值