
- JDBC - Home
- JDBC - Introduction
- JDBC - SQL Syntax
- JDBC - Environment
- JDBC - Sample Code
- JDBC - Driver Types
- JDBC - Connections
- JDBC - Statements
- JDBC - Result Sets
- JDBC - Data Types
- JDBC - Transactions
- JDBC - Exceptions
- JDBC - Batch Processing
- JDBC - Stored Procedure
- JDBC - Streaming Data
- JDBC - RowSet
- JDBC - Copy Database
- JDBC - ACID Properties
- JDBC - Connection Pooling
- JDBC Examples
- JDBC - Create Database
- JDBC - Select Database
- JDBC - Drop Database
- JDBC - Create Tables
- JDBC - Drop Tables
- JDBC - Insert Records
- JDBC - Select Records
- JDBC - Update Records
- JDBC - Delete Records
- JDBC - WHERE Clause
- JDBC - Like Clause
- JDBC - Sorting Data
- JDBC Useful Resources
- JDBC - Questions and Answers
- JDBC - Quick Guide
- JDBC - Useful Resources
- JDBC - Discussion
- Useful - Java Tutorials
JDBC - Sorting Data
This chapter provides an example on how to sort records from a table using JDBC application. This would use asc and desc keywords to sort records in ascending or descending order. Before executing the following example, make sure you have the following in place −
To execute the following example you can replace the username and password with your actual user name and password.
Your MySQL or whatever database you are using, is up and running.
Required Steps
The following steps are required to create a new Database using JDBC application −
Import the packages − Requires that you include the packages containing the JDBC classes needed for database programming. Most often, using import java.sql.* will suffice.
Open a connection − Requires using the DriverManager.getConnection() method to create a Connection object, which represents a physical connection with a database server.
Execute a query − Requires using an object of type Statement for building and submitting an SQL statement to sort records from a table. These Queries make use of asc and desc clauses to sort data in ascending and descening orders.
-
Clean up the environment − try with resources automatically closes the resources.
Example: Sorting Records of a Table
In this example, we've four static strings containing a dababase connection url, username, password and a SELECT query. Now using DriverManager.getConnection() method, we've prepared a database connection. Once connection is prepared, we've prepared a Statement object using createStatement() method. As next step, We've prepared and executed a SELECT query on table REGISTRATION by calling statement.executeQuery() method where we've added a Order By clause on first name in Ascending order. Then using executeQuery(), all records are fetched and stored in a ResultSet object. ResultSet is iterated and all records are printed.
As next step, We've prepared and executed a SELECT query on table REGISTRATION by calling statement.executeQuery() method where we've added a Order By clause on first name in Descending order. Then using executeQuery(), all records are fetched and stored in a ResultSet object. ResultSet is iterated and all records are printed.
Copy and paste the following example in JDBCExample.java, compile and run as follows −
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCExample { static final String DB_URL = "jdbc:mysql://localhost/TUTORIALSPOINT"; static final String USER = "guest"; static final String PASS = "guest123"; static final String QUERY = "SELECT id, first, last, age FROM Registration"; public static void main(String[] args) { // Open a connection try(Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); Statement stmt = conn.createStatement();) { System.out.println("Fetching records in ascending order..."); ResultSet rs = stmt.executeQuery(QUERY + " ORDER BY first ASC"); while(rs.next()){ //Display values System.out.print("ID: " + rs.getInt("id")); System.out.print(", Age: " + rs.getInt("age")); System.out.print(", First: " + rs.getString("first")); System.out.println(", Last: " + rs.getString("last")); } System.out.println("Fetching records in descending order..."); rs = stmt.executeQuery(QUERY + " ORDER BY first DESC"); while(rs.next()){ //Display values System.out.print("ID: " + rs.getInt("id")); System.out.print(", Age: " + rs.getInt("age")); System.out.print(", First: " + rs.getString("first")); System.out.println(", Last: " + rs.getString("last")); } rs.close(); } catch (SQLException e) { e.printStackTrace(); } } }
Now let us compile the above example as follows −
C:\>javac JDBCExample.java C:\>
When you run JDBCExample, it produces the following result −
C:\>java JDBCExample Fetching records in ascending order... ID: 103, Age: 28, First: Sumit, Last: Mittal ID: 102, Age: 30, First: Zaid, Last: Khan ID: 100, Age: 30, First: Zara, Last: Ali Fetching records in descending order... ID: 100, Age: 30, First: Zara, Last: Ali ID: 102, Age: 30, First: Zaid, Last: Khan ID: 103, Age: 28, First: Sumit, Last: Mittal C:\>
Example: Sorting Records of a Table on Two Columns
In this example, we've three static strings containing a dababase connection url, username and password. Now using DriverManager.getConnection() method, we've prepared a database connection. Once connection is prepared, we've prepared a Statement object using createStatement() method. As next step, We've prepared and executed a SELECT query on table EMPLOYEES by calling statement.executeQuery() method where we've added a Order By clause on id and age in Ascending order. Then using executeQuery(), all records are fetched and stored in a ResultSet object. ResultSet is iterated and all records are printed.
Copy and paste the following example in JDBCExample.java, compile and run as follows −
import java.sql.*; // This class demonstrates use ORDER BY with 2 columns. public class JDBCExample { static final String DB_URL = "jdbc:mysql://localhost/TUTORIALSPOINT"; static final String USER = "root"; static final String PASS = "guest123"; public static void main(String args[]) { try{ Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); Statement stmt = conn.createStatement(); String sel_qry = " select * from employees order by id, age "; ResultSet rs = stmt.executeQuery(sel_qry); System.out.println("Displaying records from EMPLOYEES table sorted by id, age" ); System.out.println("-------------------------------------------------------"); while(rs.next()){ System.out.print(" ID: " + rs.getInt(1)); System.out.print(", AGE: " + rs.getInt(2)); System.out.print(", FirstName: " + rs.getString(3)); System.out.println(", LastName: " + rs.getString(4)); } System.out.println("--------------------------------------------"); rs.close(); stmt.close(); conn.close(); }catch(SQLException e){ e.printStackTrace(); } } }
Now let us compile the above example as follows −
C:\>javac JDBCExample.java C:\>
When you run JDBCExample, it produces the following result −
C:\>java JDBCExample Displaying records from EMPLOYEES table sorted by id, age ------------------------------------------------------- ID: 1, AGE: 50, FirstName: Shahbaz, LastName: Ali ID: 2, AGE: 25, FirstName: Mahnaz, LastName: Fatma ID: 4, AGE: 28, FirstName: Sumit, LastName: Mittal ID: 21, AGE: 35, FirstName: Jeevan, LastName: Rao ID: 22, AGE: 40, FirstName: Dinesh, LastName: Kumar ID: 25, AGE: 35, FirstName: Jeevan, LastName: Rao ID: 26, AGE: 35, FirstName: Aditya, LastName: Chaube ID: 34, AGE: 45, FirstName: Ahmed, LastName: Ali ID: 35, AGE: 51, FirstName: Raksha, LastName: Agarwal -------------------------------------------- C:\>
Example: Sorting Records of a Table in Ascending as well Descending Order
In this example, we've three static strings containing a dababase connection url, username and password. Now using DriverManager.getConnection() method, we've prepared a database connection. Once connection is prepared, we've prepared a Statement object using createStatement() method. As next step, We've prepared and executed a SELECT query on table EMPLOYEES by calling statement.executeQuery() method where we've added a Order By clause on age as Ascending and last name as in Descending order. Then using executeQuery(), all records are fetched and stored in a ResultSet object. ResultSet is iterated and all records are printed.
Copy and paste the following example in JDBCExample.java, compile and run as follows −
import java.sql.*; // This class demonstrates ORDER BY 2 columns one ASC, one DESC public class JDBCExample { static final String DB_URL = "jdbc:mysql://localhost/TUTORIALSPOINT"; static final String USER = "root"; static final String PASS = "guest123"; public static void main(String args[]) { try{ Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); Statement stmt = conn.createStatement(); String sel_qry = " select * from employees order by age asc, last desc"; ResultSet rs = stmt.executeQuery(sel_qry); System.out.println("Displaying records from EMPLOYEES table sorted by age(ASC) and last name (DESC)." ); System.out.println("-------------------------------------------------------"); while(rs.next()){ System.out.print(" ID: " + rs.getInt(1)); System.out.print(", AGE: " + rs.getInt(2)); System.out.print(", FirstName: " + rs.getString(3)); System.out.println(", LastName: " + rs.getString(4)); } System.out.println("--------------------------------------------"); rs.close(); stmt.close(); conn.close(); }catch(SQLException e){ e.printStackTrace(); } } }
Now let us compile the above example as follows −
C:\>javac JDBCExample.java C:\>
When you run JDBCExample, it produces the following result −
C:\>java JDBCExample Displaying records from EMPLOYEES table sorted by age(ASC) and last name (DESC). ------------------------------------------------------- ID: 2, AGE: 25, FirstName: Mahnaz, LastName: Fatma ID: 4, AGE: 28, FirstName: Sumit, LastName: Mittal ID: 21, AGE: 35, FirstName: Jeevan, LastName: Rao ID: 25, AGE: 35, FirstName: Jeevan, LastName: Rao ID: 26, AGE: 35, FirstName: Aditya, LastName: Chaube ID: 22, AGE: 40, FirstName: Dinesh, LastName: Kumar ID: 34, AGE: 45, FirstName: Ahmed, LastName: Ali ID: 1, AGE: 50, FirstName: Shahbaz, LastName: Ali ID: 35, AGE: 51, FirstName: Raksha, LastName: Agarwal -------------------------------------------- C:\>