Apache Derby - Truy xuất dữ liệu

Câu lệnh SELECT được sử dụng để lấy dữ liệu từ bảng. Điều này trả về dữ liệu dưới dạng một bảng được gọi là tập kết quả.

Cú pháp

Sau đây là cú pháp của câu lệnh SELECT:

ij> SELECT column_name, column_name, ... FROM table_name;
Or,
Ij>SELECT * from table_name

Thí dụ

Giả sử chúng ta có một bảng có tên Nhân viên trong cơ sở dữ liệu như hình dưới đây:

ij> CREATE TABLE Employees (
   Id INT NOT NULL GENERATED ALWAYS AS IDENTITY,
   Name VARCHAR(255),
   Salary INT NOT NULL,
   Location VARCHAR(255),
   PRIMARY KEY (Id)
);
> > > > > > > 0 rows inserted/updated/deleted

Và, đã chèn bốn bản ghi trong đó như hình dưới đây -

ij> INSERT INTO Employees (Name, Salary, Location) VALUES
 ('Amit', 30000, 'Hyderabad'),
 ('Kalyan', 40000, 'Vishakhapatnam'),
 ('Renuka', 50000, 'Delhi'),
 ('Archana', 15000, 'Mumbai');
> > > > 4 rows inserted/updated/deleted

Câu lệnh SQL sau đây truy xuất tên, tuổi và chi tiết lương của tất cả nhân viên trong bảng;

ij> SELECT Id, Name, Salary FROM Employees;

Đầu ra của truy vấn này là:

ID |NAME |SALARY
------------------------------------------------------------------------
1 |Amit |30000
2 |Kalyan |40000
3 |Renuka |50000
4 |Archana |15000
4 rows selected

Nếu bạn muốn lấy tất cả các bản ghi của bảng này cùng một lúc, hãy sử dụng * thay vì tên của các cột.

ij> select * from Employees;

Điều này sẽ tạo ra kết quả sau:

ID |NAME |SALARY |LOCATION
------------------------------------------------------------------
1 |Amit |30000 |Hyderabad
2 |Kalyan |40000 |Vishakhapatnam
3 |Renuka |50000 |Delhi
4 |Archana |15000 |Mumbai
4 rows selected

Lấy dữ liệu bằng chương trình JDBC

Phần này hướng dẫn bạn cách Lấy dữ liệu từ bảng trong cơ sở dữ liệu Apache Derby bằng ứng dụng JDBC.

Nếu bạn muốn yêu cầu máy chủ mạng Derby sử dụng máy khách mạng, hãy đảm bảo rằng máy chủ đang hoạt động. Tên lớp cho trình điều khiển máy khách mạng là org.apache.derby.jdbc.ClientDriver và URL là jdbc: derby: // localhost: 1527 /DATABASE_NAME; create = true; user =USER_NAME; passw ord =PASSWORD"

Làm theo các bước dưới đây để Lấy dữ liệu từ bảng trong Apache Derby -

Bước 1: Đăng ký tài xế

Để giao tiếp với cơ sở dữ liệu, trước hết, bạn cần đăng ký trình điều khiển. CácforName() phương pháp của lớp Classchấp nhận một giá trị Chuỗi đại diện cho một tên lớp sẽ tải nó vào bộ nhớ, nó sẽ tự động đăng ký nó. Đăng ký trình điều khiển bằng cách sử dụng phương pháp này.

Bước 2: Nhận kết nối

Nói chung, bước đầu tiên chúng ta làm để giao tiếp với cơ sở dữ liệu là kết nối với nó. CácConnectionlớp đại diện cho kết nối vật lý với một máy chủ cơ sở dữ liệu. Bạn có thể tạo một đối tượng kết nối bằng cách gọigetConnection() phương pháp của DriverManagerlớp học. Tạo kết nối bằng phương pháp này.

Bước 3: Tạo đối tượng câu lệnh

Bạn cần tạo một Statement hoặc là PreparedStatement hoặc là, CallableStatementđối tượng để gửi câu lệnh SQL đến cơ sở dữ liệu. Bạn có thể tạo chúng bằng các phương phápcreateStatement(), prepareStatement() và, prepareCall()tương ứng. Tạo một trong hai đối tượng này bằng phương pháp thích hợp.

Bước 4: Thực hiện truy vấn

Sau khi tạo một câu lệnh, bạn cần thực thi nó. CácStatement lớp cung cấp các phương thức khác nhau để thực hiện một truy vấn như execute()để thực hiện một câu lệnh trả về nhiều hơn một tập kết quả. CácexecuteUpdate()phương thức thực hiện các truy vấn như INSERT, UPDATE, DELETE. CácexecuteQuery() phương thức cho kết quả trả về dữ liệu, v.v ... Sử dụng một trong hai phương thức này và thực hiện câu lệnh đã tạo trước đó.

Thí dụ

Ví dụ JDBC sau đây trình bày cách Lấy dữ liệu từ một bảng trong Apache Derby bằng chương trình JDBC. Ở đây, chúng tôi đang kết nối với cơ sở dữ liệu có tên sampleDB (sẽ tạo nếu nó không tồn tại) bằng cách sử dụng trình điều khiển nhúng.

Các executeQuery() phương thức trả về một ResultSetđối tượng giữ kết quả của câu lệnh. Ban đầu con trỏ thiết lập kết quả sẽ ở bản ghi đầu tiên, bạn có thể in nội dung của đối tượng ResultSet bằng cách sử dụngnext()getXXX() các phương pháp.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class RetrieveData {
   public static void main(String args[]) throws SQLException,
      ClassNotFoundException {
      //Registering the driver
      Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
      //Getting the Connection object
      String URL = "jdbc:derby:sampleDB;create=true";
      Connection conn = DriverManager.getConnection(URL);

      //Creating the Statement object
      4Statement stmt = conn.createStatement();

      //Creating a table and populating it
      String query = "CREATE TABLE Employees("
         + "Id INT NOT NULL GENERATED ALWAYS AS IDENTITY, "
         + "Name VARCHAR(255), Salary INT NOT NULL, "
         + "Location VARCHAR(255), "
         + "PRIMARY KEY (Id))";
      String query = "INSERT INTO Employees("
         + "Name, Salary, Location) VALUES "
         + "('Amit', 30000, 'Hyderabad'), "
         + "('Kalyan', 40000, 'Vishakhapatnam'), "
         + "('Renuka', 50000, 'Delhi'), "
         + "('Archana', 15000, 'Mumbai'), "
         + "('Trupthi', 45000, 'Kochin'), "
         + "('Suchatra', 33000, 'Pune'), "
         + "('Rahul', 39000, 'Lucknow'), "
         + "('Trupti', 45000, 'Kochin')";
      //Executing the query
      String query = "SELECT Id, Name, Salary FROM Employees";
      ResultSet rs = stmt.executeQuery(query);
      while(rs.next()) {
         System.out.println("Id: "+rs.getString("Id"));
         System.out.println("Name: "+rs.getString("Name"));
         System.out.println("Salary: "+rs.getString("Salary"));
         System.out.println(" ");
      }
   }
}

Đầu ra

Khi thực hiện chương trình trên, bạn sẽ nhận được kết quả sau

Id: 1
Name: Amit
Salary: 30000

Id: 2
Name: Kalyan
Salary: 43000

Id: 3
Name: Renuka
Salary: 50000

Id: 4
Name: Archana
Salary: 15000

Id: 5
Name: Trupthi
Salary: 45000

Id: 6
Name: Suchatra
Salary: 33000

Id: 7
Name: Rahul
Salary: 39000