JDBC查詢詳解

一、JDBC查詢語句

JDBC查詢是Java中對關係型數據庫進行查詢操作的方式之一。在JDBC查詢中,我們需要進行以下步驟:

1、加載驅動程序:

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

2、創建連接:

String url = "jdbc:mysql://localhost:3306/test";
Connection conn = DriverManager.getConnection(url, "root", "123456");

3、創建Statement對象:

Statement stmt = conn.createStatement();

4、執行查詢操作:

ResultSet rs = stmt.executeQuery("SELECT * FROM student");

5、處理查詢結果:

while(rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    System.out.println("id:" + id + ",name:" + name);
}

二、JDBC子查詢

JDBC子查詢是指在查詢語句中嵌套了另外一條完整的SELECT語句,根據內外兩個查詢之間的關係,將其分為以下幾種類型:

1、相關子查詢:外部查詢中的每一條記錄都能夠和內部查詢中的數據進行比較,並進行篩選。

SELECT * FROM student WHERE grade > (SELECT AVG(grade) FROM student);

2、不相關子查詢:內部查詢和外部查詢沒有直接聯繫,每次內部查詢只返回一條結果。

SELECT name,(SELECT COUNT(*) FROM score WHERE score.student_id = student.id) as count FROM student;

三、JDBC查詢數據庫

JDBC查詢數據庫主要包括以下幾種操作:

1、獲取全部數據庫:

ResultSet rs = stmt.executeQuery("SHOW DATABASES");

2、獲取所有數據表:

ResultSet rs = stmt.executeQuery("SHOW TABLES");

3、獲取數據表的元數據信息:

DatabaseMetaData metaData = conn.getMetaData();
ResultSet rs = metaData.getColumns(null, null, "student", null);

四、原生JDBC進行大數據量查詢

原生JDBC進行大數據量查詢時需要注意以下幾點:

1、設置每次查詢的數據量:

stmt.setFetchSize(1000);

2、使用游標方式查詢數據:

ResultSet rs = stmt.executeQuery("SELECT * FROM student",ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(Integer.MIN_VALUE);

3、手動關閉ResultSet和Statement:

stmt.close();
rs.close();

五、JDBC查詢數據

JDBC查詢數據的操作包括以下幾種類型:

1、單條件查詢:

ResultSet rs = stmt.executeQuery("SELECT * FROM student WHERE grade > 90");

2、多條件查詢:

PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM student WHERE grade > ? AND gender = ?");
pstmt.setInt(1, 90);
pstmt.setString(2, "male");
ResultSet rs = pstmt.executeQuery();

3、範圍查詢:

PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM student WHERE grade BETWEEN ? AND ?");
pstmt.setInt(1, 80);
pstmt.setInt(2, 90);
ResultSet rs = pstmt.executeQuery();

六、JDBC模糊查詢帶號

JDBC模糊查詢帶號主要通過LIKE關鍵字進行查詢:

PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM student WHERE name LIKE ?");
pstmt.setString(1, "%三%");
ResultSet rs = pstmt.executeQuery();

七、JDBC查詢數量

JDBC查詢數量主要通過聚合函數COUNT進行查詢:

ResultSet rs = stmt.executeQuery("SELECT COUNT(*) FROM student");

八、京東JDBC物流查詢

京東JDBC物流查詢是指通過JDBC查詢京東物流信息的操作。具體步驟如下:

1、登錄京東開放平台,獲取appkey和appsecret。

2、在代碼中調用京東開放平台的API接口獲取到物流信息。

String url = "https://way.jd.com/JDCloud/mobileaddress";
String appkey = "your_appkey";
String appsecret = "your_appsecret";
String param = "mobile=18600000000&appkey=" + appkey;
String sign = DigestUtils.md5Hex(param + appsecret);
url = url + "?" + param + "&sign=" + sign;

URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");

BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();

3、使用JSON解析庫解析返回的JSON字符串。

JSONObject json = new JSONObject(response.toString());
JSONArray result = json.getJSONArray("result");

4、將結果保存到數據庫中。

PreparedStatement pstmt = conn.prepareStatement("INSERT INTO logistics (order_id, status, update_time) VALUES (?, ?, ?)");
pstmt.setString(1, "123456");
pstmt.setString(2, result.getJSONObject(0).getString("Status"));
pstmt.setString(3, result.getJSONObject(0).getString("UpdateTime"));
int rows = pstmt.executeUpdate();

原創文章,作者:DYGJ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/135152.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
DYGJ的頭像DYGJ
上一篇 2024-10-04 00:10
下一篇 2024-10-04 00:10

相關推薦

  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分布式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • C語言貪吃蛇詳解

    一、數據結構和算法 C語言貪吃蛇主要運用了以下數據結構和算法: 1. 鏈表 typedef struct body { int x; int y; struct body *nex…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變量讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性傳感器,能夠同時測量加速度和角速度。它由三個傳感器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25
  • Java BigDecimal 精度詳解

    一、基礎概念 Java BigDecimal 是一個用於高精度計算的類。普通的 double 或 float 類型只能精確表示有限的數字,而對於需要高精度計算的場景,BigDeci…

    編程 2025-04-25

發表回復

登錄後才能評論