JDBC排序数据实例
在本教程将演示如何在JDBC应用程序中,从数据库表中查询数据记录,在查询语句中将使用asc和desc关键字按升序或降序对记录进行排序。在执行以下示例之前,请确保您已经准备好以下操作:
- 具有数据库管理员权限,以在给定模式的数据库表中查询数据记录。 要执行以下示例,需要用实际用户名和密码替换这里用户名(
username)和密码(password)。 - MySQL或数据库已启动并运行。
所需步骤
使用JDBC应用程序查询表中数据记录需要以下步骤:
导入包:需要包含包含数据库编程所需的JDBC类的包。 大多数情况下,使用
import java.sql.*就足够了。注册JDBC驱动程序:需要初始化驱动程序,以便可以程序中打开数据库的通信通道。
打开连接:需要使用
DriverManager.getConnection()方法来创建一个Connection对象,它表示与数据库服务器的物理连接。执行查询:需要使用类型为
Statement的对象来构建和提交SQL语句来对表中的记录进行排序。 这些查询使用asc和desc子句对升序和降序进行数据排序。清理环境:需要明确地关闭所有数据库资源,而不依赖于JVM的垃圾收集。
示例代码
复制以下示例代码保存到文件:SelectSortingData.java中,然后编译并运行如下 -
//STEP 1. Import required packages
// See more detail at http://www.yiibai.com/jdbc/
import java.sql.*;
public class SelectSortingData {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/jdbc_db";
// Database credentials
static final String USER = "root";
static final String PASS = "123456";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to a selected database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected database successfully...");
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
// 按first字段升序排序
System.out.println("Fetching records in ascending order by fist field...");
String sql = "SELECT id, first, last, age FROM student" +
" ORDER BY first ASC";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
// 按first字段降序排序
System.out.println("Fetching records in descending order by fist field ...");
sql = "SELECT id, first, last, age FROM student" +
" ORDER BY first DESC";
rs = stmt.executeQuery(sql);
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
// 按ID字段降序排序
System.out.println("Fetching records in descending order by ID field ...");
sql = "SELECT id, first, last, age FROM student" +
" ORDER BY id DESC";
rs = stmt.executeQuery(sql);
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
rs.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
conn.close();
}catch(SQLException se){
}// do nothing
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}//end main
}//end JDBCExample
编译上面代码,如下 -
F:\worksp\jdbc> javac -Djava.ext.dirs=F:\worksp\jdbc\libs SelectSortingData.java
执行上面代码,如下 -
## 可先创建表或插入数据 -
## F:\worksp\jdbc> java -Djava.ext.dirs=F:\worksp\jdbc\libs InsertRecords
F:\worksp\jdbc>java -Djava.ext.dirs=F:\worksp\jdbc\libs SelectSortingData
Connecting to a selected database...
Fri Jun 02 00:42:39 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Connected database successfully...
Creating statement...
Fetching records in ascending order by fist field...
ID: 100, Age: 18, First: C++, Last: Li
ID: 103, Age: 28, First: Java, Last: Ja
ID: 101, Age: 25, First: Python, Last: Py
ID: 102, Age: 30, First: Ruby, Last: Ru
Fetching records in descending order by fist field ...
ID: 102, Age: 30, First: Ruby, Last: Ru
ID: 101, Age: 25, First: Python, Last: Py
ID: 103, Age: 28, First: Java, Last: Ja
ID: 100, Age: 18, First: C++, Last: Li
Fetching records in descending order by ID field ...
ID: 103, Age: 28, First: Java, Last: Ja
ID: 102, Age: 30, First: Ruby, Last: Ru
ID: 101, Age: 25, First: Python, Last: Py
ID: 100, Age: 18, First: C++, Last: Li
Goodbye!
F:\worksp\jdbc>
JDBC排序数据实例的更多相关文章
- JDBC删除数据实例
在本教程将演示如何在JDBC应用程序中,删除数据库表中数据记录. 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模式的数据库表中删除数据记录. 要执行以下示例,需要用 ...
- JDBC查询数据实例
在本教程将演示如何在JDBC应用程序中,查询数据库的一个表中数据记录. 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模式中数据库表中查询数据记录. 要执行以下示例, ...
- JDBC更新数据实例
在本教程将演示如何在JDBC应用程序中,更新数据库的一个表中数据记录. 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模式的数据库表中更新数据记录. 要执行以下示例, ...
- JDBC插入数据实例
在本教程将演示如何在JDBC应用程序中向数据库的一个表中插入数据记录. 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模式中数据库表中插入数据记录. 要执行以下示例, ...
- vuejs通过filterBy,orderBy实现搜索筛选,降序排序数据实例
直接贴代码了: 先上输入前的样子: <style> #example{margin:100px auto;width:600px;} .show{margin:10px;} #search ...
- JDBC操作数据库实例
jdbc操作数据库实例 1.jdbc创建数据库 1.1 前提条件 1.拥有创建和删除表的权限 2.数据库已经启动,且可用 1.2 jdbc创建数据库表的步骤: 导包:导入需要进行数据库编程的 JDBC ...
- 【转】在Spring中基于JDBC进行数据访问时怎么控制超时
http://www.myexception.cn/database/1651797.html 在Spring中基于JDBC进行数据访问时如何控制超时 超时分类 超时根据作用域可做如下层级划分: Tr ...
- 使用LINQ查询数据实例和理解
使用LINQ查询数据实例和理解 var contacts= from customer in db.Customers where customer.Name.StartsWith("A&q ...
- JDBC 操作数据库实例
JDBC是什么 JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API,换句话说:JDBC是 ...
随机推荐
- (原创)谈谈boost.asio的异步发送
在上一篇博文中提到asio的异步发送稍微复杂一点,有必要单独拿出来说说.asio异步发送复杂的地方在于: 不能连续调用异步发送接口async_write,因为async_write内部是不断调用asy ...
- python细节问题
1.list添加元素 a = [1, 2] print(id(a)) a += [3] print(id(a)) a = a + [4] print(id(a)) a.append(5) print( ...
- 为什么不能使用Executors.newFixedThreadPool和newCachedThreadPool
newFixedThreadPool的阻塞队列大小是没有大小限制的,如果队列堆积数据太多会造成资源消耗.newCachedThreadPool是线程数量是没有大小限制的,当新的线程来了直接创建,同样会 ...
- 测试redis集群的两种方式:分片和哨兵
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; i ...
- Oracle XQuery 过滤XML查询SQL
Oralce 支持SQL XQuery查询 一个简单示例: SELECT XMLQuery('for $i in /Videogame return $i/Type' passing by value ...
- chrome安装HTTP测试扩展
chrome安装HTTP测试扩展 扩展名: DHC
- 逻辑回归(LR)和支持向量机(SVM)的区别和联系
1. 前言 在机器学习的分类问题领域中,有两个平分秋色的算法,就是逻辑回归和支持向量机,这两个算法个有千秋,在不同的问题中有不同的表现效果,下面我们就对它们的区别和联系做一个简单的总结. 2. LR和 ...
- C语言 · 周期字串
算法提高 周期字串 时间限制:1.0s 内存限制:256.0MB 问题描述 右右喜欢听故事,但是右右的妈妈总是讲一些“从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢 ...
- spidev 驱动 probe 获取 dts 节点参数
一. 尝试在 spi 驱动里边读取 设备树里面 节点的信息 // dts 里面的参数配置 503 &spi0 { 504 status = "okay"; 505 pinc ...
- git .gitignore 文件不起作用
.gitignore 不起作用的原因是因为 git 有以前文件缓存,只要清理一次缓存即可 git rm -r --cached . // 然后再进行 git git add . git commit