อ่าน 8 นาที
การเชื่อมต่อฐานข้อมูล Java
Java Database Connectivity ( JDBC ) คือ อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) สำหรับ ภาษาการเขียนโปรแกรม Java ซึ่งกำหนดวิธีการที่ไคลเอ็นต์สามารถเข้าถึง ฐานข้อมูล ได้...
การเชื่อมต่อฐานข้อมูล Java
| เจดีบีซี | |
|---|---|
| นักพัฒนา | บริษัท ออราเคิล คอร์ปอเรชั่น |
| เวอร์ชันเสถียร | JDBC 4.3 / 21 กันยายน 2017 |
| ระบบปฏิบัติการ | ข้ามแพลตฟอร์ม |
| พิมพ์ | API การเข้าถึงข้อมูล |
| เว็บไซต์ | คู่มือ API ของ JDBC |
Java Database Connectivity ( JDBC ) คืออินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) สำหรับ ภาษาการเขียนโปรแกรม Javaซึ่งกำหนดวิธีการที่ไคลเอ็นต์สามารถเข้าถึงฐานข้อมูลได้ เป็นเทคโนโลยีการเข้าถึงข้อมูลที่ใช้ Java สำหรับการเชื่อมต่อฐานข้อมูล Java เป็นส่วนหนึ่งของ แพลตฟอร์ม Java Standard EditionจากOracle Corporationโดยมีเมธอดสำหรับสอบถามและอัปเดตข้อมูลในฐานข้อมูล และมุ่งเน้นไปที่ฐานข้อมูลเชิงสัมพันธ์ ตัวเชื่อมต่อ JDBC-to- ODBCช่วยให้สามารถเชื่อมต่อกับแหล่งข้อมูลใดๆ ที่สามารถเข้าถึงได้ผ่าน ODBC ใน สภาพแวดล้อมโฮสต์ ของเครื่องเสมือน Java (JVM)
ประวัติและการนำไปใช้
Sun Microsystemsได้เปิดตัว JDBC เป็นส่วนหนึ่งของJava Development Kit (JDK) 1.1 เมื่อวันที่ 19 กุมภาพันธ์ พ.ศ. 2540 [ 1 ] ตั้งแต่นั้นมาก็เป็นส่วนหนึ่งของJava Platform, Standard Edition (Java SE)
คลาส JDBC อยู่ในแพ็กเกจ Javajava.sqlและjavax.sqlรวมถึงคลาสอื่นๆ อีกเล็กน้อยในที่อื่นๆ ทุกสิ่งที่เกี่ยวข้องกับ JDBC ถูกส่งออกผ่าน โมดูลjava.sql
ตั้งแต่เวอร์ชัน 3.1 เป็นต้นไป JDBC ได้รับการพัฒนาภายใต้กระบวนการชุมชน Java JSR 54 ระบุ JDBC 3.0 (รวมอยู่ใน J2SE 1.4) JSR 114 ระบุส่วนเพิ่มเติมของ JDBC Rowset (สำหรับjavax.sql.RowSet) และ JSR 221 เป็นข้อกำหนดของ JDBC 4.0 (รวมอยู่ใน Java SE 6) [ 2 ]
JDBC 4.1 ได้รับการกำหนดโดยรุ่นบำรุงรักษา 1 ของ JSR 221 [ 3 ]และรวมอยู่ใน Java SE 7 [ 4 ]
JDBC 4.2 ได้รับการกำหนดโดยรุ่นบำรุงรักษาที่ 2 ของ JSR 221 [ 5 ]และรวมอยู่ใน Java SE 8 [ 6 ]
เวอร์ชันล่าสุด JDBC 4.3 ได้รับการกำหนดโดยรุ่นบำรุงรักษา 3 ของ JSR 221 [ 7 ]และรวมอยู่ใน Java SE 9 [ 8 ]
| เวอร์ชัน JDBC | เวอร์ชัน Java | ประเภทการเผยแพร่ | วันที่วางจำหน่าย |
|---|---|---|---|
| 1.1 | เจดีเค 1.1 | หลัก | 19 กุมภาพันธ์ 2540 [ 1 ] |
| 3.0 | เจ2เอสอี 1.4 | หลัก | 9 พฤษภาคม 2545 |
| 4.0 | Java SE 6 | หลัก | 11 ธันวาคม 2549 |
| 4.1 | Java SE 7 | การซ่อมบำรุง | 13 ตุลาคม 2554 |
| 4.2 | Java SE 8 | การซ่อมบำรุง | 4 มีนาคม 2557 |
| 4.3 | Java SE 9 | การซ่อมบำรุง | 21 กันยายน 2017 |
ฟังก์ชันการทำงาน
| ประเภทข้อมูล Oracle | setXXX()วิธีการ |
|---|---|
CHAR | setString() |
VARCHAR2 | setString() |
NUMBER | setBigDecimal() |
setBoolean() | |
setByte() | |
setShort() | |
setInt() | |
setLong() | |
setFloat() | |
setDouble() | |
INTEGER | setInt() |
FLOAT | setDouble() |
CLOB | setClob() |
BLOB | setBlob() |
RAW | setBytes() |
LONGRAW | setBytes() |
DATE | setDate() |
setTime() | |
setTimestamp() |
เนื่องจาก JDBC ส่วนใหญ่เป็นชุดของคำจำกัดความและข้อกำหนดของอินเทอร์เฟซ จึงอนุญาตให้มีการใช้งานอินเทอร์เฟซเหล่านี้ได้หลายแบบและสามารถใช้งานได้โดยแอปพลิเคชันเดียวกันในขณะรันไทม์ API มีกลไกสำหรับการโหลดแพ็กเกจ Java ที่ถูกต้องแบบไดนามิกและลงทะเบียนแพ็กเกจเหล่านั้นกับ JDBC Driver Manager (JDBC Driver Manager java.sql.DriverManager) โดย JDBC Driver Manager java.sql.DriverManagerจะทำหน้าที่เป็นjava.sql.Connectionโรงงานสำหรับการสร้างการเชื่อมต่อ JDBC
การเชื่อมต่อ JDBC รองรับการสร้างและเรียกใช้คำสั่งต่างๆ การเชื่อมต่อ JDBC รองรับคำสั่งอัปเดต เช่นCREATE , INSERT , UPDATEและDELETE ของ SQL หรือคำสั่งสอบถาม เช่นSELECTนอกจากนี้ ยังสามารถเรียกใช้ stored procedure ผ่านการเชื่อมต่อ JDBC ได้อีกด้วย JDBC แสดงคำสั่งโดยใช้คลาสใดคลาสหนึ่งต่อไปนี้:
Statement–java.sql.Statementจะถูกส่งไปยังเซิร์ฟเวอร์ฐานข้อมูลทุกครั้ง กล่าวอีกนัยหนึ่งคือjava.sql.Statementเมธอดจะถูกดำเนินการโดยใช้คำสั่ง SQL เพื่อรับjava.sql.ResultSetวัตถุที่มีข้อมูล[ 9 ]PreparedStatement–java.sql.PreparedStatementเป็นซับอินเทอร์เฟซของjava.sql.Statementอินเทอร์เฟซ[ 9 ]คำสั่งจะถูกแคชไว้ จากนั้นเส้นทางการดำเนินการจะถูกกำหนดไว้ล่วงหน้าบนเซิร์ฟเวอร์ฐานข้อมูล ทำให้สามารถดำเนินการได้หลายครั้งอย่างมีประสิทธิภาพ[ 9 ]java.sql.PreparedStatementใช้สำหรับดำเนินการคำสั่ง SQL ที่คอมไพล์ไว้ล่วงหน้า[ 9 ]การเรียกใช้คำสั่งที่คอมไพล์ไว้ล่วงหน้าจะช่วยเพิ่มประสิทธิภาพและสมรรถนะในการดำเนินการคำสั่งjava.sql.PreparedStatementมักใช้สำหรับคำสั่งแบบไดนามิกที่ต้องส่งพารามิเตอร์อินพุตบางส่วนไปยังฐานข้อมูลเป้าหมาย[ 10 ]อนุญาตjava.sql.PreparedStatementให้การสืบค้นแบบไดนามิกแตกต่างกันไปตามพารามิเตอร์การสืบค้น[ 11 ]CallableStatement–java.sql.CallableStatementเป็นซับอินเทอร์เฟซของjava.sql.Statementอินเทอร์เฟซ[ 11 ]ใช้สำหรับดำเนินการโพรซีเดอร์ที่เก็บไว้ในฐานข้อมูล[ 11 ] [ 12 ]พารามิเตอร์ทั้งอินพุตและเอาต์พุตต้องส่งผ่านไปยังฐานข้อมูลสำหรับโพรซีเดอร์ที่เก็บไว้[ 13 ]
คำสั่งอัปเดต เช่นINSERTและUPDATEจะDELETEส่งคืนจำนวนการอัปเดตที่ระบุจำนวนแถวที่ได้รับผลกระทบในฐานข้อมูลเป็นจำนวนเต็ม[ 13 ]คำสั่งเหล่านี้จะไม่ส่งคืนข้อมูลอื่นใด
คำสั่งคิวรีจะส่งคืนชุดผลลัพธ์แถวของ JDBC ชุดผลลัพธ์แถวนี้ใช้สำหรับวนลูปผ่านชุดผลลัพธ์ คอลัมน์แต่ละคอลัมน์ในแถวจะถูกดึงมาโดยใช้ชื่อหรือหมายเลขคอลัมน์ ชุดผลลัพธ์อาจมีจำนวนแถวเท่าใดก็ได้ ชุดผลลัพธ์แถวมีเมตาเดตาที่อธิบายชื่อของคอลัมน์และประเภทของคอลัมน์เหล่านั้น
มีส่วนขยายเพิ่มเติมจาก API พื้นฐานของ JDBC ในไฟล์javax.sql.
การเชื่อมต่อ JDBC มักจะได้รับการจัดการผ่านพูลการเชื่อมต่อแทนที่จะได้รับโดยตรงจากไดรเวอร์javax.sql.DataSourceเช่น[ 14 ]
ตัวอย่าง
เมื่อแอปพลิเคชัน Java ต้องการเชื่อมต่อกับฐานข้อมูล วิธีหนึ่งDriverManager.getConnection()ที่ใช้คือการสร้างการเชื่อมต่อ JDBC โดยjava.sql.ConnectionURL ที่ใช้จะขึ้นอยู่กับฐานข้อมูลและไดรเวอร์ JDBC นั้นๆ โดยจะเริ่มต้นด้วยjdbc:โปรโตคอลเสมอ แต่ส่วนที่เหลือขึ้นอยู่กับผู้จำหน่ายแต่ละราย
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ;Connection conn = DriverManager.getConnection ( " jdbc :somejdbcvendor:other data needed by some jdbc vendor" , " myLogin" , "myPassword" );try { // ใช้การเชื่อมต่อที่นี่} finally { try { // ปิดการเชื่อมต่อหลังจากเสร็จสิ้นconn.close ( ); } catch ( SQLException e ) { // ส่งต่อข้อยกเว้นเดิม ไม่ใช่ข้อยกเว้นที่ดักจับไว้ที่นี่logger.warn ( "ไม่สามารถปิดการเชื่อมต่อ JDBC ได้" , e ) ; } }ตั้งแต่ Java SE 7 เป็นต้นไป เราสามารถใช้ คำสั่ง try-with-resources ของ Java เพื่อลดความซับซ้อนของโค้ดข้างต้นได้:
import java.sql.Connection ; import java.sql.DriverManager ;try ( Connection conn = DriverManager . getConnection ( "jdbc:somejdbcvendor:other data needed by some jdbc vendor" , "myLogin" , "myPassword" )) { // ใช้การเชื่อมต่อที่นี่} // conn.close() จะถูกเรียกโดยอัตโนมัติ// การเชื่อมต่อจะปิดโดยอัตโนมัติหลังจากออกจากบล็อก tryเมื่อสร้างการเชื่อมต่อแล้ว ก็java.sql.Statementสามารถสร้างได้
import java.sql.Statement ;try ( Statement stmt = conn.createStatement ()) { stmt.executeUpdate ( " INSERT INTO MyTable(name) VALUES ('my name') " ) ; }โปรดทราบว่าjava.sql.Connections, java.sql.Statements และjava.sql.ResultSets มักจะใช้ ทรัพยากร ของระบบปฏิบัติการเช่น ซ็อกเก็ตหรือตัวระบุไฟล์ในกรณีของjava.sql.Connections ไปยังเซิร์ฟเวอร์ฐานข้อมูลระยะไกล ทรัพยากรเพิ่มเติมจะถูกใช้บนเซิร์ฟเวอร์ เช่นเคอร์เซอร์สำหรับjava.sql.ResultSets ที่เปิดอยู่ สิ่งสำคัญคือต้องจัดการกับclose()อ็อบเจ็กต์ JDBC ใดๆ ทันทีที่ทำหน้าที่ของมันเสร็จสิ้น การเก็บขยะไม่ควรถูกพึ่งพา โครงสร้าง try-with-resources ข้างต้นเป็นรูปแบบโค้ดที่ช่วยหลีกเลี่ยงปัญหานี้
ข้อมูลจะถูกดึงมาจากฐานข้อมูลโดยใช้กลไกการสืบค้นฐานข้อมูล ตัวอย่างด้านล่างแสดงการสร้างคำสั่งและการเรียกใช้การสืบค้น
import java.sql.ResultSet ; import java.sql.Statement ;try ( Statement stmt = conn . createStatement (); ResultSet rs = stmt . executeQuery ( "SELECT * FROM MyTable" ) ) { while ( rs . next ()) { int numColumns = rs . getMetaData (). getColumnCount (); for ( int i = 1 ; i <= numColumns ; i ++ ) { // หมายเลขคอลัมน์เริ่มต้นที่ 1 // นอกจากนี้ ยังมีวิธีการมากมายในชุดผลลัพธ์เพื่อส่งคืน// คอลัมน์เป็นประเภทเฉพาะ โปรดดูเอกสารของ Sun // สำหรับรายการการแปลงที่ถูกต้องSystem . out . printf ( "COLUMN %d = %s%n" , i , rs . getObject ( i )); } } }โค้ดต่อไปนี้เป็นตัวอย่างของjava.sql.PreparedStatementการสืบค้นข้อมูลที่ใช้connคลาสจากตัวอย่างแรก:
import java.sql.PreparedStatement ; import java.sql.ResultSet ;try ( PreparedStatement ps = conn . prepareStatement ( "SELECT i.*, j.* FROM Omega i, Zappa j WHERE i.name = ? AND j.num = ?" ) ) { // ในคำสั่ง SQL ที่กำลังเตรียม เครื่องหมายคำถามแต่ละตัวเป็นตัวยึดตำแหน่ง// ที่ต้องถูกแทนที่ด้วยค่าที่คุณระบุผ่านการเรียกใช้เมธอด "set" // การเรียกใช้เมธอดสองครั้งต่อไปนี้จะแทนที่ตัวยึดตำแหน่งสองตัว ตัวแรก// ถูกแทนที่ด้วยค่าสตริง และตัวที่สองด้วยค่าจำนวนเต็มps . setString ( 1 , "Poor Yorick" ); ps . setInt ( 2 , 8008 );// ResultSet, rs, แสดงผลลัพธ์ของการดำเนินการคำสั่ง SQL // ทุกครั้งที่คุณเรียก rs.next() ตัวชี้แถวภายในหรือเคอร์เซอร์// จะเลื่อนไปยังแถวถัดไปของผลลัพธ์ เคอร์เซอร์จะเริ่มต้นที่// ตำแหน่งก่อนแถวแรกtry ( ResultSet rs = ps . executeQuery ()) { while ( rs . next ()) { for ( int i = 1 ; i <= rs . getMetaData (). getColumnCount (); i ++ ) { // หมายเลขคอลัมน์เริ่มต้นที่ 1 // นอกจากนี้ยังมีหลายวิธีใน ResultSet เพื่อส่งคืน// คอลัมน์เป็นประเภทเฉพาะ โปรดดูเอกสารของ Sun // สำหรับรายการการแปลงที่ถูกต้องSystem . out . printf ( "COLUMN %d = %s%n" , i , rs . getObject ( i )); } } } }หากการดำเนินการกับฐานข้อมูลล้มเหลว JDBC จะส่งข้อผิดพลาดSQLExceptionออกมา โดยทั่วไปแล้วแทบจะไม่มีอะไรที่สามารถทำได้เพื่อกู้คืนจากข้อผิดพลาดดังกล่าว นอกจากการบันทึกข้อผิดพลาดพร้อมรายละเอียดให้มากที่สุดเท่าที่จะเป็นไปได้ ขอแนะนำให้java.sql.SQLExceptionแปลงข้อผิดพลาดดังกล่าวให้เป็นข้อยกเว้นในโดเมนแอปพลิเคชัน (ข้อยกเว้นที่ไม่ตรวจสอบ) ซึ่งในที่สุดจะส่งผลให้มีการยกเลิกธุรกรรมและแจ้งเตือนผู้ใช้
โค้ดต่อไปนี้เป็นตัวอย่างของการทำธุรกรรมในฐานข้อมูล :
import java.sql.SQLException ;boolean autoCommitDefault = conn.getAutoCommit ( ) ; try { conn.setAutoCommit ( false ) ; }// ดำเนินการคำสั่งบนการเชื่อมต่อที่นี่แบบธุรกรรมconn.commit (); } catch ( SQLException e ) { try { conn.rollback ( ); } catch ( Throwable e ) { logger.warn ( " ไม่สามารถยกเลิกธุรกรรมได้" , e ) ; } throw e ; } finally { try { conn.setAutoCommit ( autoCommitDefault ) ; } catch ( Throwable e ) { logger.warn ( " ไม่สามารถกู้คืนการตั้งค่า AutoCommit ได้" , e ) ; } }สำหรับตัวอย่างการjava.sql.CallableStatementเรียกใช้ stored procedure ในฐานข้อมูล โปรดดูเอกสาร JDBC API Guide
แพ็คเกจorg.wikipedia.examples ;import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.Statement ;public class DatabaseExample { private static final String DB_URL = "jdbc:mysql://localhost/mydb" ;public static void main ( String [] args ) { try { Class . forName ( "com.mysql.jdbc.Driver" );Connection conn = DriverManager.getConnection ( DB_URL , "root" , "root" ); Statement stmt = conn.createStatement (); String sql = " INSERT INTO emp1 VALUES ('pctb5361', 'kiril', 'john', 968666668)" ; stmt.executeUpdate ( sql ); System.out.println ( " Inserted records into the table ... " ) ; } catch ( SQLException e ) { System.err.printf ( " A SQL error occurred : %s%n" , e.getMessage ( ) ) ; } catch ( Exception e ) { System.err.println ( " An unknown error occurred. " ) ; e.printStackTrace ( ) ; } } }ไดรเวอร์ JDBC
ไดรเวอร์ JDBC คือ อะแดปเตอร์ฝั่งไคลเอ็นต์(ติดตั้งบนเครื่องไคลเอ็นต์ ไม่ใช่บนเซิร์ฟเวอร์) ที่แปลงคำขอจากโปรแกรม Java ไปเป็นโปรโตคอลที่ระบบจัดการฐานข้อมูล (DBMS) สามารถเข้าใจได้
ประเภท
ไดรเวอร์เชิงพาณิชย์และไดรเวอร์ฟรีช่วยให้สามารถเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูลเชิงสัมพันธ์ส่วนใหญ่ได้ โดยไดรเวอร์เหล่านี้แบ่งออกเป็นประเภทต่างๆ ดังต่อไปนี้:
- ประเภท 1ที่เรียกใช้โค้ดเนทีฟของไดรเวอร์ ODBC ที่มีอยู่ในเครื่อง (หมายเหตุ: ใน JDBC 4.2 สะพาน JDBC-ODBC ถูกลบออก[ 15 ] )
- ประเภทที่ 2ที่เรียกใช้ไลบรารีพื้นฐานของผู้ให้บริการฐานข้อมูลทางฝั่งไคลเอ็นต์ จากนั้นโค้ดนี้จะสื่อสารกับฐานข้อมูลผ่านเครือข่าย
- ประเภทที่ 3คือไดรเวอร์ที่เขียนด้วยภาษา Java ล้วนๆ ซึ่งทำหน้าที่สื่อสารกับมิดเดิลแวร์ฝั่งเซิร์ฟเวอร์ จากนั้นมิดเดิลแวร์ก็จะสื่อสารกับฐานข้อมูล
- ประเภทที่ 4คือไดรเวอร์ที่เขียนด้วยภาษา Java ล้วนๆ ซึ่งใช้โปรโตคอลดั้งเดิมของฐานข้อมูล
โปรดสังเกตประเภทที่เรียกว่าไดรเวอร์ JDBC ภายในซึ่งเป็นไดรเวอร์ที่ฝังอยู่ในJREในฐานข้อมูล SQL ที่เปิดใช้งาน Java ใช้สำหรับโพรซีเดอร์ที่เก็บไว้ใน Javaสิ่งนี้ไม่เข้ากับแผนการจำแนกประเภทข้างต้น แม้ว่าอาจจะคล้ายกับไดรเวอร์ประเภท 2 หรือประเภท 4 (ขึ้นอยู่กับว่าฐานข้อมูลนั้นถูกนำไปใช้ใน Java หรือไม่) ตัวอย่างเช่น ไดรเวอร์ KPRB (Kernel Program Bundled) [ 16 ] ที่มาพร้อมกับOracle RDBMS "jdbc:default:connection" เสนอวิธีการเชื่อมต่อแบบมาตรฐาน (อย่างน้อยฐานข้อมูล Oracle และApache Derbyก็รองรับ) อย่างไรก็ตาม ในกรณีของไดรเวอร์ JDBC ภายใน ไคลเอ็นต์ JDBC จะทำงานเป็นส่วนหนึ่งของฐานข้อมูลที่กำลังเข้าถึง ดังนั้นจึงสามารถเข้าถึงข้อมูลได้โดยตรงแทนที่จะผ่านโปรโตคอลเครือข่าย
แหล่งที่มา
- Oracleได้จัดทำรายชื่อไดรเวอร์ JDBC และผู้จำหน่ายบางรายไว้ ให้
- Simba Technologiesจัดส่ง SDK สำหรับสร้างไดรเวอร์ JDBC แบบกำหนดเองสำหรับแหล่งข้อมูลเชิงสัมพันธ์แบบกำหนดเอง/กรรมสิทธิ์ใดๆ ก็ได้
- CData Software จัดส่งไดรเวอร์ JDBC ประเภท 4 สำหรับแอปพลิเคชัน ฐานข้อมูล และ Web API ต่างๆ[ 17 ]
- DataDirect Technologies จัดเตรียมชุดไดรเวอร์ JDBC ประเภท 4 ที่รวดเร็วครอบคลุมสำหรับฐานข้อมูลหลักทั้งหมดที่พวกเขาโฆษณาว่าเป็นประเภท 5 [ 18 ]
- IDS Software มีไดรเวอร์ JDBC ประเภท 3 สำหรับการเข้าถึงฐานข้อมูลหลักทั้งหมดพร้อมกัน คุณสมบัติที่รองรับ ได้แก่ การแคชชุดผลลัพธ์ การเข้ารหัส SSL แหล่งข้อมูลแบบกำหนดเอง และ dbShield
- JDBaccess เป็นไลบรารีสำหรับการจัดการข้อมูลในฐานข้อมูล (persistent management) ในภาษา Java สำหรับMySQLและOracleซึ่งกำหนดการดำเนินการเข้าถึงฐานข้อมูลหลัก ๆ ไว้ใน API ที่ใช้งานง่ายบน JDBC
- JNetDirectนำเสนอชุดไดรเวอร์ JDBC ประสิทธิภาพสูงที่ได้รับการรับรองจาก Sun J2EE อย่างสมบูรณ์
- JDBCR4 เป็นโปรแกรมบริการที่เขียนโดยScott Klementเพื่ออนุญาตให้เข้าถึง JDBC จากRPGบนIBM i [ 19 ]
- HSQLDBเป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS)ที่มีไดรเวอร์ JDBC และใช้งานได้ภายใต้ใบอนุญาต BSD
- SchemaCrawler [ 20 ]เป็น API โอเพนซอร์สที่ใช้ประโยชน์จาก JDBC และทำให้ข้อมูลเมตาของฐานข้อมูลพร้อมใช้งานในรูปแบบอ็อบเจ็กต์ Java ธรรมดา (POJO)
ดูเพิ่มเติม
- GNU Data Access (GDA)
- ฟาซาดเจดีบีซี
- การเชื่อมต่อฐานข้อมูลแบบเปิด (ODBC)
- การแมปอ็อบเจ็กต์เชิงสัมพันธ์ (ORM)
การอ้างอิง
- ^ a b "Sun ปล่อย JDK 1.1 พร้อม Javabeans" . www.sun.com . Sun Microsystems . 19 กุมภาพันธ์ 1997. เก็บถาวรจากต้นฉบับเมื่อ 10 กุมภาพันธ์ 2008 . สืบค้น เมื่อ 15 กุมภาพันธ์ 2010 .
19 กุมภาพันธ์ 1997 - JDK 1.1 [...] พร้อมใช้งานแล้ว [...] การเปิดตัว JDK ครั้งนี้ประกอบด้วย: [...] คุณสมบัติใหม่ที่แข็งแกร่ง รวมถึง JDBC สำหรับการเชื่อมต่อฐานข้อมูล
- ^ข้อกำหนด API ของ JDBC เวอร์ชัน: 4.0
- ^ "โครงการ Java Community Process(SM) - communityprocess - mrel" . jcp.org . สืบค้นเมื่อ22 มีนาคม 2018 .
- ^ "JDBC 4.1" . docs.oracle.com . สืบค้นเมื่อ22 มีนาคม 2018 .
- ^ "โครงการ Java Community Process(SM) - communityprocess - mrel" . jcp.org . สืบค้นเมื่อ22 มีนาคม 2018 .
- ^ "JDBC 4.2" . docs.oracle.com . สืบค้นเมื่อ22 มีนาคม 2018 .
- ^ "โครงการ Java Community Process(SM) - communityprocess - mrel" . jcp.org . สืบค้นเมื่อ22 มีนาคม 2018 .
- ^ "java.sql (Java SE 9 & JDK 9)" . docs.oracle.com . สืบค้นเมื่อ 22 มีนาคม 2018 .
- ^ a b c d Bai 2022 , หน้า 74.
- ^ Bai 2022 , หน้า 122–124, §4.2.3.5 ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการดำเนินการ
- ^ a b c Bai 2022 , หน้า 72–74, §3.2 ส่วนประกอบและสถาปัตยกรรมของ JDBC
- ^ Horstmann 2022 , §5.5.3 SQL Escapes.
- ^ a b Bai 2022 , หน้า 122–124, §4.2.3.5 ส่วนประกอบและสถาปัตยกรรมของ JDBC
- ^ Bai 2022 , หน้า 83, §3.5.1 แหล่งข้อมูล JDBC
- ^ "Java JDBC API" . docs.oracle.com . สืบค้นเมื่อ22 มีนาคม 2018 .
- ^ Greenwald, Rick; Stackowiak, Robert; Stern, Jonathan (1999). Oracle Essentials: Oracle Database 10g . Essentials Series (ฉบับที่ 3). เซบาสโตโพล รัฐแคลิฟอร์เนีย: O'Reilly Media, Inc. (ตีพิมพ์ปี 2004). หน้า 318. ISBN 9780596005856สืบค้นเมื่อ 3 พฤศจิกายน 2016
ไดรเวอร์ JDBC ในฐานข้อมูล (JDBC KPRB) [:] โค้ด Java ใช้เวอร์ชัน JDBC KPRB (Kernel Program Bundled) เพื่อเข้าถึง SQL บนเซิร์ฟเวอร์เดียวกัน
- ^ "ไดรเวอร์ JDBC - CData Software" . CData Software . สืบค้นเมื่อ22 มีนาคม 2018 .
- ^ "ไดรเวอร์ JDBC ประเภท 5 ใหม่ — DataDirect Connect "
- ^ "การเข้าถึงฐานข้อมูลภายนอกจาก RPG ด้วย JDBCR4 เนื้อหาสำคัญ" 28 มิถุนายน 2012 สืบค้นเมื่อ 12 เมษายน 2016
- ^ Sualeh Fatehi. "SchemaCrawler" . GitHub .
ลิงก์ภายนอก
- คู่มือ API ของ JDBC
java.sqlเอกสารJavadocของ APIjavax.sqlเอกสาร Javadoc ของ API- เฟรมเวิร์ก O/R Broker Scala JDBC
- SqlToolเป็นยูทิลิตี้ไคลเอ็นต์ JDBC แบบโอเพนซอร์ส ทำงานผ่านบรรทัดคำสั่ง ใช้งานได้กับฐานข้อมูลที่รองรับ JDBC ทุกประเภท
- สตริง URL ของ JDBC และข้อมูลที่เกี่ยวข้องของฐานข้อมูลทั้งหมด
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การเชื่อมต่อฐานข้อมูล Java
Java Database Connectivity ( JDBC ) คือ อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) สำหรับ ภาษาการเขียนโปรแกรม Java ซึ่งกำหนดวิธีการที่ไคลเอ็นต์สามารถเข้าถึง ฐานข้อมูล ได้...
ประวัติและการนำไปใช้
Sun Microsystems ได้เปิดตัว JDBC เป็นส่วนหนึ่งของ Java Development Kit (JDK) 1.1 เมื่อวันที่ 19 กุมภาพันธ์ พ.ศ. 2540 [ 1 ] ตั้งแต่นั้นมาก็เป็นส่วนหนึ่งของ Java Platform, Standard Edition (Java SE)
ฟังก์ชันการทำงาน
เนื่องจาก JDBC ส่วนใหญ่เป็นชุดของคำจำกัดความและข้อกำหนดของอินเทอร์เฟซ จึงอนุญาตให้มีการใช้งานอินเทอร์เฟซเหล่านี้ได้หลายแบบและสามารถใช้งานได้โดยแอปพลิเคชันเดียวกันในขณะรันไทม์ API มีกลไกสำหรับการโหลดแพ็กเกจ Java...
ตัวอย่าง
เมื่อแอปพลิเคชัน Java ต้องการเชื่อมต่อกับฐานข้อมูล วิธีหนึ่ง DriverManager.getConnection() ที่ใช้คือการสร้างการเชื่อมต่อ JDBC โดย java.sql.