JDBC API ช่วยให้ผู้ใช้สามารถเข้าถึงข้อมูลตารางใด ๆ โดยเฉพาะข้อมูลที่เก็บไว้ในฐานข้อมูลความสัมพันธ์
กระบวนการดำเนินการ:
•เชื่อมต่อแหล่งข้อมูลเช่น: ฐานข้อมูล
•การสอบถามข้อมูลผ่านฐานข้อมูลและคำแนะนำอัปเดต
•ผลลัพธ์ของการตอบสนองฐานข้อมูลและการส่งคืน
สถาปัตยกรรม JDBC
แบ่งออกเป็นสถาปัตยกรรมสองชั้นและสถาปัตยกรรมสามชั้น
สองชั้น
ฟังก์ชั่น: ในสถาปัตยกรรมนี้แอปเพล็ต Java หรือแอปเข้าถึงแหล่งข้อมูลโดยตรง
เงื่อนไข: ต้องใช้ไดรเวอร์เพื่อโต้ตอบกับฐานข้อมูลที่สามารถเข้าถึงได้
กลไก: คำสั่งผู้ใช้จะถูกส่งไปยังฐานข้อมูลหรือแหล่งข้อมูลอื่น ๆ และผลลัพธ์จะถูกส่งคืน
การปรับใช้: แหล่งข้อมูลสามารถเชื่อมต่อผ่านเครือข่ายบนเครื่องอื่นที่เรียกว่าการกำหนดค่า C/S (อาจเป็นเครือข่ายภายในหรืออินเทอร์เน็ต)
สาม -เลเยอร์
คุณสมบัติพิเศษของสถาปัตยกรรมด้านข้างคือมีการแนะนำบริการระดับกลาง
กระบวนการ: คำสั่งและโครงสร้างจะผ่านเลเยอร์นี้
การดึงดูด: มันสามารถเพิ่มการควบคุมการเข้าถึงข้อมูลองค์กรและการอัปเดตประเภทต่างๆ;
แนวโน้มในอดีต: ในอดีตเนื่องจากปัญหาประสิทธิภาพชั้นกลางถูกเขียนขึ้นใน C หรือ C ++ Java เริ่มใช้ในระดับกลางสำหรับการพัฒนาของชั้นกลางได้ทำข้อดีของการเน้น Java
ขั้นตอนการเขียนโปรแกรม JDBC
โหลดไดรเวอร์:
class.forname (driverclass) // โหลด mysql driver class.forname ("com.mysql.jdbc. ไดรเวอร์") // โหลด oracle drive class.forname ("oracle.jdbc.oracledriver" การรักษา
รับการเชื่อมต่อฐานข้อมูล:
คัดลอกรหัสรหัสดังนี้:
DriverManager.getConnection ("JDBC: MySQL: //127.0.0.1: 3306/IMOOC", "root", "root");
สร้างวัตถุคำสั่ง/PreparedStatement:
คัดลอกรหัสรหัสดังนี้:
conn.createstatement ();
Const.PrepareStatement (SQL);
อินสแตนซ์ที่สมบูรณ์
นำเข้า Java.sql.Connection; "; ผู้ใช้สตริงสุดท้ายคงที่สาธารณะ =" liulx "; รหัสผ่านสตริงสุดท้ายคงที่สาธารณะ =" 123456 "; โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น { / / / / 1 โหลดคลาสไดรเวอร์ forname (" com .MYSQL .JDBC.DRIVER "); // 2. รับการเชื่อมต่อการเชื่อมต่อฐานข้อมูล Conn = driverManager.getConnection (URL, ผู้ใช้, รหัสผ่าน); // 3. ใช้งานฐานข้อมูลเพื่อใช้การเพิ่มการลบการดัดแปลงและคำสั่งการค้นหา STMT STMT = conn.createstatement (); .println (rs.getString ("user_name")+"อายุ:"+rs.getint ("อายุ");}}}}
นอกจากนี้การลบและการเปลี่ยนแปลง
Public Class DBUTIL {Public String url สุดท้าย = "JDBC: MySQL: // localhost: 3306/imooc"; Driver Class.forName ("com.mysql.jdbc.driver"); .PrintStackTrace ();} catch (sqlexception e) {E.PrintStackTrace ();}} การเชื่อมต่อแบบคงที่สาธารณะ () {) TUNG Conn;}} // แพ็คเกจโมเดล Liulx.Model; {ID ส่วนตัวจำนวนมาก; วันที่ส่วนตัว create_date; แก่นแท้ แก่นแท้ } // ---------- dao 层 -------------- แพคเกจ liulx.dao; นำเข้า liulx.db.dbutil; นำเข้า liulx.model.goddess; นำเข้า Java SQL.CONNECTION; AddGoddess (Goddess G) พ่น SQLException {// รับการเชื่อมต่อ Connect Conn = dbutil.getConnection (); " +" ค่า (" +"?,? ,? ,? ,? ,? ,? ,?, current_date (),?, current_date (),?) " ลดการดำเนินการของ SQL // ผ่าน ptmt.setstring (1, g.getuser_name ()); ptmt.setdate (4, วันที่ใหม่ (G.GetBirthday (). getTime ()); ); = dbutil.getConnection (); +"update_user =?, update_date = current_date (), isdel =?"+"โดยที่ id =?"; . GetUser_name ()); (8, g.getisdel ()); ); รายการสาธารณะ <Goddess> query () พ่น {connect conn = dbutil.getConnection (); = ใหม่ Raylist <Goddess> (); Goddess G = Null; ("อายุ"); เพื่อลดการดำเนินการของ SQL PREAPERSTATEMENT PTMT = Conn.prepareStatement (SQL); = Goddess ใหม่ (); getint ("เพศ"); Rs.getDate ("create_date"); ");} return g;}}