一、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