① 向数据库发送SQL查询语句

首先使用Statement声明一个SQL语句对象,然后让已创建的连接对象con调用方法createStatement()创建SQL语句对象。

Statement sql = con.createStatement();

Connection con = null;

String DBname = "jdb"; //数据库名字

String url = "jdbc:mysql://localhost:3306/"+DBname+"?useSSL=true&characterEncoding=utf-8";

String username = "root";//数据库账号

String password = "root";//数据库密码

Statement sql = null;

try {

Class.forName("com.mysql.jdbc.Driver");

con = DriverManager.getConnection(url, username, password);//连接代码

sql = con.createStatement();

} catch (Exception e) {

// TODO: handle exception

System.out.println(e);

}

② 处理查询结果

有了SQL语句对象后,可以调用相应的方法实现对数据库中表的查询和修改,并将结果放在一个ResultSet类声明的对象中。换句话说,SQL查询语句对数据库的查询操作将返回一个ResultSet对象,ResultSet对象由按"列"(字段)组织的数据行构成。

ResultSet rs = sql.executeQuery("SELECT * FROM students");//查询student表中的数据

Connection con = null;

String DBname = "jdb"; //数据库名字

String url = "jdbc:mysql://localhost:3306/"+DBname+"?useSSL=true&characterEncoding=utf-8";

String username = "root";//数据库账号

String password = "root";//数据库密码

Statement sql = null;

ResultSet rs = null;

try {

Class.forName("com.mysql.jdbc.Driver");

con = DriverManager.getConnection(url, username, password);//连接代码

sql = con.createStatement();

rs = sql.executeQuery("SELECT * FROM students");//查询student表中的数据

} catch (Exception e) {

// TODO: handle exception

System.out.println(e);

}

ResultSet对象的方法

NO.

方法名称

类型

描述

01

public boolean next()throws SQLException

普通

将光标从当前位置向前移一行

02

public byte getByte(int columnIndex)throws SQLException

普通

以byte的形式获取当前行中指定列的值

03

public Date getDate(int columnIndex)throws SQLException

普通

以java.sql.Date对象的形式获取当前行中指定列的值

04

public double getDouble(int columnIndex)throws SQLException

普通

以double的形式获取此 当前行中指定列的值

05

public float getFloat(int columnIndex)throws SQLException

普通

以float的形式获取当前行中指定列的值

06

public int getInt(int columnIndex)throws SQLException

普通

以int的形式获取当前行中指定列的值

07

public long getLong(int columnIndex)throws SQLException

普通

以long的形式获取当前行中指定列的值

08

public String getString(int columnIndex)throws SQLException

普通

以String的形式获取当前行中指定列的值

09

public byte getByte(String columnName)throws SQLException

普通

以byte的形式获取当前行中指定列的值

10

public Date getDate(String columnName)throws SQLException

普通

以java.sql.Date对象的形式获取当前行中指定列的值

11

public double getDouble(String columnName)throws SQLException

普通

以double的形式获取此 当前行中指定列的值

12

public float getFloat(String columnName)throws SQLException

普通

以float的形式获取当前行中指定列的值

13

public int getInt(String columnName)throws SQLException

普通

以int的形式获取当前行中指定列的值

14

public long getLong(String columnName)throws SQLException

普通

以long的形式获取当前行中指定列的值

15

public String getString(String columnName)throws SQLException

普通

以String的形式获取当前行中指定列的值

说明:

无论字段是何种属性;都可以使用getString方法返回字段值的串表示

③ 关闭连接

con.close();

注:使用ResultSet对象中的数据时,必须始终保持数据库的连接,直到应用程序将ResultSet对象中的数据查看完毕。如果在rs之后立即关闭连接,那么程序将无法获取rs中的数据。

范例:控制statement对象游标

方法:public Statement createStatement(int resultSetType,int resultSetConcurrency) throws SQLException

//获取Statement对象

Statement stmt = con.createStatement(int type,int concurrency);

//返回结果集

ResultSet rs = stmt.executeQuery(SQL语句);

resultSetType - 结果集类型,

resultSetType:ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE 或 ResultSet.TYPE_SCROLL_SENSITIVE

resultSetConcurrency:ResultSet.CONCUR_READ_ONLY 或 ResultSet.CONCUR_UPDATABLE

ResulSet常用方法

NO.

方法名称

类型

描述

01

public void beforeFirst()throws SQLException

普通

将光标移动到开头,位于第一行之前

02

public void afterLast()throws SQLException

普通

将光标移动到末尾,位于最后一行之后

03

public boolean first()throws SQLException

普通

将光标移动到第一行

04

public boolean last()throws SQLException

普通

将光标移动到最后一行

05

public boolean isBeforeFirst()throws SQLException

普通

获取光标是否位于第一行之前

06

public boolean isAfterLast()throws SQLException

普通

获取光标是否位于最后一行之后

07

public boolean isFirst()throws SQLException

普通

获取光标是否位于第一行

08

public boolean isLast()throws SQLException

普通

获取光标是否位于最后一行。调用 isLast 方法可能开销很大

09

public int getRow()throws SQLException

普通

获取当前行编号

10

public boolean absolute(int row)throws SQLException

普通

将光标移动到此 ResultSet 对象的给定行编号

注:如果row取负值,就是倒数的行数,absolute(-1)表示移到最后一行,absolute(-2)表示倒数第二行。

02、JDBC查询的更多相关文章

  1. Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)

    Java 通过JDBC查询数据库表结构(字段名称,类型,长度等) 发布者:唛唛家的豆子   时间:2012-11-20 17:54:02   Java 通过JDBC查询数据库表结构(字段名称,类型,长 ...

  2. spring jdbc 查询结果返回对象、对象列表

    首先,需要了解spring jdbc查询时,有三种回调方式来处理查询的结果集.可以参考 使用spring的JdbcTemplate进行查询的三种回调方式的比较,写得还不错. 1.返回对象(queryF ...

  3. 【T-SQL基础】02.联接查询

    概述: 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础 ...

  4. 用JDBC查询数据库

    JDBC API的核心组件:1.DriverManager类:用语跟踪可用的JDBC驱动程序并产生数据库连接. 2.Connection接口:用于取得数据库信息.生成数据库语句,并管理数据库事务. 3 ...

  5. Redis查询&JDBC查询&Hibernate查询方式的效率比较...

    比较三种查询方式查询效率对比...我是用的JavaWeb的方式通过通过JSP页面查询的填写查询的参数...给予反馈.... 整个demo的下载地址:http://files.cnblogs.com/f ...

  6. JDBC 查询的三大参数 setFetchSize prepareStatement(String sql, int resultSetType, int resultSetConcur)

    JDBC 查询的三大参数 本文转载至 http://blog.csdn.net/turkeyzhou/article/details/5115228 DBC1.0 .JDBC2.0 .JDBC3.0  ...

  7. JDBC查询实例

    作为Java与数据库交互最古老的.最基础的规范,JDBC提供了访问底层数据库的接口,其他ORM框架都是在JDBC这块基石上构建的.下面我们看一个基本的JDBC查询例子: package com.ins ...

  8. 使用jdbc查询防止出现中文乱码的方法

    在使用mysql创建数据库及表格,在navicat中可以正常查询出中文,但使用jdbc查询的结果中,中文为乱码. 网上查到资料,为了能够彻底一劳永逸的解决这个问题,需要修改mysql下配置文件my.i ...

  9. JDBC 查询 模板

    JDBC 查询 与增删改不同的是SQL语句的不同,还有查询反回的是结果集  需要定义 利用 next()方法逐层查询数据 使用getXXX方法获取数据 代码相关参数根据个人设置进行修改!!!! pac ...

随机推荐

  1. 使用Visual Studio学习C语言

    注明:安装的是社区版,只写大部分步骤,做笔记之用.详细还需要看B站教程,https://www.bilibili.com/video/av59608520 一.安装软件 1.安装Visual Stud ...

  2. JS中key-value存取

    获取Key 在代码中,遇到需要单独提取对象的key值时可使用 Object.keys(object) object是你需要操作的对象Object.keys()会返回一个存储对象中所有key值的数组获取 ...

  3. 接口八问 & 接口测试质量评估标准

    接口八问 关于接口的具体信息,可以通过以下八个问题进行了解: 接口的请求地址? 接口的作用? 接口的请求方式? 接口是否是用户相关? 接口是否存在上送数据,上送数据是什么? 接口返回的报文头和编码? ...

  4. LG5357 「模板」AC自动机(二次加强版) AC自动机+fail树

    问题描述 LG5357 题解 不是fail树的AC自动机复杂度是假的. 把AC自动机搞出来,建立Trie树,树上爆搜一遍就好了. \(\mathrm{Code}\) #include<bits/ ...

  5. Identity入门1:Claims、ClaimsIdentity、ClaimsPrincipal详解【转】

    在 ASP.NET Core 中,仍然沿用了 ASP.NET里面的 Identity 组件库,负责对用户的身份进行认证,总体来说的话,没有MVC 5 里面那么复杂,因为在MVC 5里面引入了OWIN的 ...

  6. Linux性能优化实战学习笔记:第三十四讲

    一.上节回顾 上一节,我带你学习了 Linux 网络的基础原理.简单回顾一下,Linux 网络根据 TCP/IP模型,构建其网络协议栈.TCP/IP 模型由应用层.传输层.网络层.网络接口层等四层组成 ...

  7. [LeetCode] 153. Find Minimum in Rotated Sorted Array 寻找旋转有序数组的最小值

    Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...

  8. oracle--delete truncate drop的区别

    一.delete 1.delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表 ...

  9. MySQL基础指令和安装

    数据库概念 那Mysql能干嘛呢?它就是一款软件,安装在任何一台计算机或者服务器上的时候,只要我告诉它创建一个文件,新增一个数据,删除一个数据它就能帮我去做想要的操作 那我们暂且能不能理解为mysql ...

  10. # Leetcode 67:Add Binary(二进制求和)

    Leetcode 67:Add Binary(二进制求和) (python.java) Given two binary strings, return their sum (also a binar ...