บทความนี้อธิบายวิธีการของ Java โดยใช้อินเตอร์เฟส PreparedStatement และชุดผลลัพธ์ชุดผลลัพธ์ แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
ภาพประกอบ:
1. คำสั่งอินเทอร์เฟซ PreparedStatement สืบทอดและอินสแตนซ์ของมันมีคำสั่ง SQL ที่รวบรวมและความเร็วในการดำเนินการเร็วกว่าคำสั่ง
2. PreparedStatement สืบทอดฟังก์ชั่นทั้งหมดของคำสั่ง ทั้งสามวิธี executeUpdate executeQuery และ execute ไม่จำเป็นต้องใช้พารามิเตอร์อีกต่อไป
3. ในแอปพลิเคชัน JDBC โดยทั่วไปจะใช้การเตรียมการแทนแทนคำสั่ง
เพื่อการทำงานที่ง่ายให้ทำบรรจุภัณฑ์ก่อน:
สำหรับฐานข้อมูลการเชื่อมต่อการห่อหุ้มการเชื่อมต่ออย่างใกล้ชิด dbutil.java ได้รับการกล่าวถึงในบล็อกก่อนหน้า;
ห่อหุ้มตารางฐานข้อมูลนี่คือการทำงานของตารางคอมพ์ในฐานข้อมูลของฉันดังนั้นการห่อหุ้มจึงมีดังนี้:
แพ็คเกจ com.mysqltest.jdbc.modelComp; compmember คลาสสาธารณะ {ID int ส่วนตัว; ชื่อสตริงส่วนตัว; อายุ int ส่วนตัว; เงินเดือนสองเท่าส่วนตัว / ** * constructor 1 * @param name * @param อายุ * @param เงินเดือน */ public compmember (ชื่อสตริงอายุ int, เงินเดือนสองเท่า) {super (); this.name = ชื่อ; this.age = อายุ; this.salary = เงินเดือน; } / ** * overload constructor * @param id * @param name * @param อายุ * @param เงินเดือน * / public compmember (int id, ชื่อสตริง, อายุ int, เงินเดือนสองเท่า) {super (); this.id = id; this.name = ชื่อ; this.age = อายุ; this.salary = เงินเดือน; } / *** รับเมธอด* / public int getId () {return id; } โมฆะสาธารณะ setId (int id) {this.id = id; } สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } public int getage () {return Age; } การตั้งค่าโมฆะสาธารณะ (อายุ int) {this.age = อายุ; } สาธารณะสองเท่า () {คืนเงินเดือน; } โมฆะสาธารณะ setSalary (เงินเดือนสองเท่า) {this.salary = เงินเดือน; } @Override / *** เขียน toString ใหม่เพื่อให้การแสดงผลดีขึ้น* / สตริงสาธารณะ toString () {return "["+this.id+"]" this.name+","+this.age+"," this.salary; -จากนั้นใช้อินเทอร์เฟซ PreparedStatement เพื่อให้ได้การดำเนินการที่เพิ่มขึ้น:
แพ็คเกจ com.mysqltest.jdbc.xiao1; นำเข้า java.sql.connection; นำเข้า java.sql.preparedStatement; นำเข้า com.mysqltest.jdbc.modelcomp.compmember; dbutil (); / ** * เพิ่มสมาชิกด้วย PrepectStatement * @param mem * @return * @throws Exception */ ส่วนตัว int addmember ส่วนตัว (compmember mem) โยนข้อยกเว้น {connection con = dbutil.getCon (); String sql = "แทรกลงในค่าคอมพ์ (null,?,?,?)"; PreparedStatement PSTMT = Con.prepareStatement (SQL); pstmt.setstring (1, mem.getName ()); pstmt.setint (2, mem.getage ()); pstmt.setDouble (3, mem.getSalary ()); int result = pstmt.executeUpdate (); // ไม่จำเป็นต้องผ่าน sql ใน dbutil.close กลาง (pstmt, con); // PreparedStatement เป็นคลาสย่อยและก็โอเคที่จะปิดด้วยคลาสแม่ ผลการกลับมา; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {compmember mem = new compmember ("Liu Xiang", 24, 8000.00); int result = addMember (mem); if (result == 1) {system.out.println ("เพิ่มสำเร็จ"); } else {system.out.println ("เพิ่มล้มเหลว"); -จากนั้นใช้อินเทอร์เฟซ PreparedStatement เพื่อใช้การสืบค้นและใช้ชุดผลลัพธ์ชุดผลลัพธ์:
แพ็คเกจ com.mysqltest.jdbc.xiao2; นำเข้า java.sql.connection; นำเข้า java.sql.preparedstatement; นำเข้า java.sql.resultset นำเข้า java.util.arraylist; com.mysqltest.jdbc.util.dbutil; class resultsettest public {ส่วนตัว dbutil dbutil = new dbutil (); / ** * ผลลัพธ์การสืบค้นแบบสำรวจ * @throws Exception */ @suppresswarnings ("unused") โมฆะคงที่ส่วนตัว listmem1 () โยนข้อยกเว้น {การเชื่อมต่อ con = dbutil.getCon (); // รับสตริงการเชื่อมต่อ sql = "เลือก * จาก comp"; PreparedStatement PSTMT = Con.prepareStatement (SQL); Resultset rs = pstmt.executeQuery (); // ส่งคืนชุดผลลัพธ์ // next () หมุนเคอร์เซอร์เป็นแถวถัดไปในขณะที่ (rs.next ()) {int id = rs.getInt (1); // รับค่าของชื่อสตริงคอลัมน์แรก = rs.getString (2); // เงินเดือนสองเท่า = Rs.getDouble (4); System.out.println ("ไม่:" + id + "ชื่อ:" + ชื่อ + "อายุ:" + อายุ + "เงินเดือน:" + เงินเดือน); System.out.println ("+============================================================================================================= - - - listmem2 () โยนข้อยกเว้น {การเชื่อมต่อ con = dbutil.getCon (); // รับสตริงการเชื่อมต่อ sql = "เลือก * จาก comp"; Rs.getInt ("id"); // รับค่าของคอลัมน์คอลัมน์แรกชื่อสตริง = rs.getString ("ชื่อ"); // int อายุ = rs.getInt ("อายุ"); System.out.println ("+====================================================================================================================== - - - - - dbutil.getCon (); // รับสตริงการเชื่อมต่อ sql = "เลือก * จาก comp"; คอลัมน์สตริงแรก = Rs.getString ("ชื่อ"); // ent ens = rs.getint ("อายุ"); listmem1 (); // listmem2 ();สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเนื้อหาที่เกี่ยวข้องกับ Java โปรดตรวจสอบหัวข้อของเว็บไซต์นี้: "Java+MySQL การเขียนโปรแกรมสรุป", "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "สรุปทักษะการดำเนินงาน Java
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน