Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ผลลัพธ์ใน JDBC คืออะไร? วิธีการดึงข้อมูลจากวัตถุ ResultSet?


ชุดผลลัพธ์ อินเทอร์เฟซใน JDBC แสดงถึงข้อมูลแบบตารางที่สร้างโดยแบบสอบถาม SQL มีเคอร์เซอร์ที่ชี้ไปที่แถวปัจจุบัน เริ่มแรก เคอร์เซอร์นี้อยู่ก่อนแถวแรก

ผลลัพธ์ใน JDBC คืออะไร? วิธีการดึงข้อมูลจากวัตถุ ResultSet?

การเลื่อนตัวชี้ไปตลอดทั้งชุดผลลัพธ์

ถัดไป() วิธีการของอินเทอร์เฟซ ResultSet ย้ายตัวชี้ของวัตถุปัจจุบัน (ResultSet) ไปยังแถวถัดไป จากตำแหน่งปัจจุบัน เมธอดนี้คืนค่าบูลีน หากไม่มีแถวถัดจากตำแหน่งปัจจุบัน จะส่งคืนค่าเท็จ มิฉะนั้นจะคืนค่าเป็น จริง ดังนั้น เมื่อใช้วิธีนี้ในลูป while คุณสามารถวนซ้ำเนื้อหาของชุดผลลัพธ์ได้

ในขณะที่(rs.next()){}

การรับค่าคอลัมน์ของแต่ละระเบียน:

อินเทอร์เฟซ ResultSet (ด้วย) มีเมธอด getter (getXXX()) เพื่อดึงค่าในแต่ละคอลัมน์ของแถว ทุกเมธอดของ getter มีสองแบบ:

  • getXXX(int columnIndex): ค่านี้จะยอมรับค่าจำนวนเต็มที่แสดงดัชนีของคอลัมน์และส่งกลับค่าของคอลัมน์นั้น

  • getXXX(String columnLabel ): ค่านี้ยอมรับค่า String ที่แสดงชื่อของคอลัมน์และส่งกลับค่า

คุณต้องใช้วิธี getter ตามลำดับตามประเภทข้อมูลของคอลัมน์ในตาราง

ตัวอย่าง

สมมติว่าเรามีตารางชื่อชุดข้อมูลที่มีเนื้อหาดังแสดงด้านล่าง:

<ก่อนหน้า>+-------------+-----------+| mobile_brand | unit_sale |+-------------+-----------+| Iphone | 3000 || ซัมซุง | 4000 || Nokia | 5000 || Vivo | 1500 || Oppo | 900 || MI | 6400 || MotoG | 4360 || Lenovo | 4100 || RedMi | 4000 || MotoG | 4360 || OnePlus | 6334 |+-------------+-----------+

ตัวอย่าง

ตัวอย่างต่อไปนี้ดึงบันทึกทั้งหมดของ ชุดข้อมูล ตารางและพิมพ์ผลลัพธ์:

<ก่อนหน้า> นำเข้า java.sql.Connection นำเข้า java.sql.DriverManager นำเข้า java.sql.ResultSet นำเข้า java.sql.Statement คลาสสาธารณะ RetrievingData { โมฆะคงที่สาธารณะหลัก (สตริง args []) พ่นข้อยกเว้น { // การลงทะเบียนไดร์เวอร์ DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //รับการเชื่อมต่อสตริง mysqlUrl ="jdbc:mysql://localhost/TestDB"; การเชื่อมต่อ con =DriverManager.getConnection (mysqlUrl, "root", "password"); System.out.println("การเชื่อมต่อสำเร็จ......"); //สร้างคำสั่งวัตถุงบ stmt =con.createStatement(); //ดึงข้อมูล ResultSet rs =stmt.executeQuery("select * from Dataset"); System.out.println("เนื้อหาของตาราง"); while(rs.next()) { System.out.print("ยี่ห้อ:"+rs.getString("Mobile_Brand")+", "); System.out.print("ลดราคา:"+rs.getString("Unit_Sale")); System.out.println(""); } }}

ผลลัพธ์

เชื่อมต่อแล้ว......เนื้อหาของตารางยี่ห้อ:Iphone, ขาย:3000ยี่ห้อ:Samsung, ขาย:4000ยี่ห้อ:Nokia, ขาย:5000ยี่ห้อ:Vivo, ขาย:1500ยี่ห้อ:Oppo, ขาย:900ยี่ห้อ:MI, ขาย:6400ยี่ห้อ:MotoG ขาย:4360ยี่ห้อ:Lenovo ขาย:4100ยี่ห้อ:RedMi ขาย:4000ยี่ห้อ:MotoG ขาย:4360ยี่ห้อ:OnePlus ขาย:6334