Java จัดให้ JDBC (การเชื่อมต่อฐานข้อมูล Java) เป็นส่วนหนึ่งของ Java SDK (Software Development Kit) ใช้สิ่งนี้ ไฟ มันง่ายมากที่จะเชื่อมต่อกับฐานข้อมูลเชิงสัมพันธ์และดำเนินการทั่วไป เช่น การสืบค้น การแทรก การอัปเดต และการลบเรกคอร์ด
แม้ว่า JDBC API หลักจะรวมอยู่ใน java การเชื่อมต่อกับฐานข้อมูลเฉพาะ เช่น MySQL หรือ SQL Server จำเป็นต้องมีส่วนประกอบเพิ่มเติมที่เรียกว่าไดรเวอร์ฐานข้อมูล ไดรเวอร์ฐานข้อมูลนี้เป็นส่วนประกอบซอฟต์แวร์ที่แปลการเรียก JDBC หลักให้อยู่ในรูปแบบที่ฐานข้อมูลนั้นเข้าใจ
รหัสหยุด: กระบวนการที่สำคัญเสียชีวิต
ในบทความนี้ ให้เราดูรายละเอียดของการเชื่อมต่อกับฐานข้อมูล MySQL และวิธีดำเนินการสืบค้นข้อมูลสองสามอย่างกับฐานข้อมูลนี้
ไดรเวอร์ฐานข้อมูล MySQL
ตามที่อธิบายไว้ข้างต้น เพื่อให้สามารถเชื่อมต่อกับฐานข้อมูล MySQL คุณต้องมีไดรเวอร์ JDBC สำหรับ MySQL นี่เรียกว่าไดรเวอร์ Connector/J และสามารถดาวน์โหลดได้จาก ไซต์ MySQL ที่นี่
เมื่อคุณดาวน์โหลดไฟล์ ZIP (หรือ TAR.GZ) แล้ว ให้แตกไฟล์เก็บถาวรและคัดลอกไฟล์ JAR mysql-connector-java--bin.jar ไปยังสถานที่ที่เหมาะสม ไฟล์นี้จำเป็นสำหรับการรันโค้ดใดๆ ที่ใช้ไดรเวอร์ MySQL JDBC
การสร้างฐานข้อมูลตัวอย่าง
สมมติว่าคุณดาวน์โหลดฐานข้อมูล MySQL และ ตั้งค่าให้เรียบร้อย ในที่ที่คุณเข้าถึงได้ ให้เราสร้างฐานข้อมูลตัวอย่างเพื่อใช้ในการเชื่อมต่อและดำเนินการค้นหา
เชื่อมต่อกับฐานข้อมูลโดยใช้ไคลเอนต์ที่คุณเลือก และเรียกใช้คำสั่งต่อไปนี้เพื่อสร้างฐานข้อมูลตัวอย่าง
create database sample;
เรายังต้องการชื่อผู้ใช้และรหัสผ่านเพื่อให้สามารถเชื่อมต่อกับฐานข้อมูลได้ (ยกเว้นกรณีที่คุณต้องการเชื่อมต่อในฐานะผู้ดูแลระบบ ซึ่งโดยทั่วไปแล้วจะเป็นความคิดที่ไม่ดี)
ต่อไปนี้สร้างผู้ใช้ชื่อ ผู้ใช้ทดสอบ ผู้ที่จะเชื่อมต่อกับฐานข้อมูล MySQL จากเครื่องเดียวกันกับที่ทำงานอยู่ (ระบุโดย localhost ) โดยใช้รหัสผ่าน ปลอดภัยpwd .
create user 'testuser'@'localhost' identified by 'securepwd';
หากคุณกำลังเชื่อมต่อกับฐานข้อมูลที่ทำงานอยู่บนเครื่องอื่น (ชื่อ remotemc ) คุณต้องใช้สิ่งต่อไปนี้ ( remotemc สามารถเป็นชื่อโฮสต์หรือที่อยู่ IP ได้):
create user 'testuser'@'remotemc' identified by 'securepwd';
เมื่อสร้างชื่อผู้ใช้และรหัสผ่านแล้ว เราต้องให้สิทธิ์การเข้าถึงฐานข้อมูลตัวอย่างที่สร้างไว้ก่อนหน้านี้
grant all on sample.* to 'testuser'@'localhost';
หรือถ้าฐานข้อมูลเป็นแบบรีโมต:
grant all on sample.* to 'testuser'@'remotemc';
ตอนนี้คุณควรตรวจสอบว่าคุณสามารถ เชื่อมต่อกับฐานข้อมูล ในฐานะผู้ใช้ที่คุณเพิ่งสร้างด้วยรหัสผ่านเดียวกัน คุณยังสามารถเรียกใช้คำสั่งต่อไปนี้หลังจากเชื่อมต่อ เพื่อให้แน่ใจว่าการอนุญาตทั้งหมดถูกต้อง
create table joe(id int primary key auto_increment, name varchar(25));
drop table joe;
ตั้งค่า Java Class Path
ให้เราเข้าไปดูรายละเอียดวิธีการเชื่อมต่อกับ MySQL จาก Java ขั้นตอนแรกคือการโหลดไดรเวอร์ฐานข้อมูล ทำได้โดยเรียกใช้สิ่งต่อไปนี้ในตำแหน่งที่เหมาะสม
หนังใหม่ฟรีออนไลน์โดยไม่ต้องดาวน์โหลดหรือสมัคร
Class.forName('com.mysql.jdbc.Driver');
โค้ดอาจมีข้อยกเว้น ดังนั้นคุณจึงสามารถตรวจจับได้หากต้องการจัดการกับมัน (เช่น การจัดรูปแบบข้อความแสดงข้อผิดพลาดสำหรับ GUI)
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
// use the exception here
}
เป็นเรื่องปกติมากที่จะเรียกใช้โค้ดนี้ในบล็อกสแตติกในคลาส ดังนั้นโปรแกรมจะล้มเหลวทันทีหากไม่สามารถโหลดไดรเวอร์ได้
public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
}
แน่นอน เพื่อให้สามารถค้นหาไดรเวอร์ได้ จะต้องเรียกใช้โปรแกรมด้วยไดรเวอร์ JAR (ดาวน์โหลดและแตกไฟล์ด้านบน) รวมอยู่ในคลาสพาธดังนี้
java -cp mysql-connector-java--bin.jar:...
การเชื่อมต่อกับ MySQL จาก Java
ตอนนี้เราได้แยกรายละเอียดของการโหลดไดรเวอร์ MySQL จาก java แล้ว ให้เราทำการเชื่อมต่อกับฐานข้อมูล วิธีหนึ่งในการสร้างการเชื่อมต่อฐานข้อมูลคือการใช้ DriverManager .
String jdbcUrl = ...;
Connection con = DriverManager.getConnection(jdbcUrl);
และอะไรคือ jdbcUrl ? จะแสดงรายละเอียดของการเชื่อมต่อ รวมถึงเซิร์ฟเวอร์ที่ฐานข้อมูลตั้งอยู่ ชื่อผู้ใช้ และอื่นๆ นี่คือตัวอย่าง URL สำหรับตัวอย่างของเรา
String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=secrepwd';
ขอให้สังเกตว่าเราได้รวมพารามิเตอร์ทั้งหมดที่จำเป็นสำหรับการเชื่อมต่อ รวมทั้งชื่อโฮสต์ ( localhost ) ชื่อผู้ใช้และรหัสผ่าน (การรวมรหัสผ่านเช่นนี้ไม่ใช่วิธีปฏิบัติที่ดี โปรดดูทางเลือกอื่นด้านล่าง)
ใช้สิ่งนี้ jdbcUrl นี่คือโปรแกรมที่สมบูรณ์เพื่อตรวจสอบการเชื่อมต่อ
public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
static public void main(String[] args) throws Exception
{
String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=securepwd';
Connection con = DriverManager.getConnection(jdbcUrl);
System.out.println('Connected!');
con.close();
}
}
โปรดทราบว่าการเชื่อมต่อฐานข้อมูลเป็นทรัพยากรที่มีค่าในโปรแกรมและต้องปิดอย่างถูกต้องดังที่กล่าวไว้ข้างต้น อย่างไรก็ตาม โค้ดด้านบนนี้ไม่ได้ปิดการเชื่อมต่อในกรณีที่มีข้อยกเว้น ในการปิดการเชื่อมต่อบนทางออกปกติหรือผิดปกติ ให้ใช้รูปแบบต่อไปนี้:
try(Connection con = DriverManager.getConnection(jdbcUrl)) {
System.out.println('Connected!');
}
ดังที่กล่าวไว้ข้างต้น ไม่ควรฝังรหัสผ่านใน JDBC URL หากต้องการระบุชื่อผู้ใช้และรหัสผ่านโดยตรง คุณสามารถใช้ตัวเลือกการเชื่อมต่อต่อไปนี้แทน
วิธีซ่อนเพื่อนในเฟสบุ๊ค
String jdbcUrl = 'jdbc:mysql://localhost/sample';
try(Connection con = DriverManager.getConnection(jdbcUrl, 'testuser', 'securepwd')) {
}
การสืบค้นฐานข้อมูลจาก Java
เมื่อสร้างการเชื่อมต่อกับฐานข้อมูลแล้ว ให้เราดูวิธีดำเนินการสืบค้น เช่น การสืบค้นเวอร์ชันฐานข้อมูล:
select version();
แบบสอบถามจะดำเนินการใน java ดังนี้ NS คำแถลง วัตถุถูกสร้างขึ้นและดำเนินการค้นหาโดยใช้คำสั่ง รันคิวรี่() วิธีที่ส่งคืน a ชุดผลลัพธ์ .
String queryString = 'select version()';
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery(queryString);
พิมพ์เวอร์ชันจาก ชุดผลลัพธ์ ดังนี้ 1 หมายถึงดัชนีของคอลัมน์ในผลลัพธ์โดยเริ่มจาก 1
while ( rset.next()) {
System.out.println('Version: ' + rset.getString(1));
}
หลังจากประมวลผลผลลัพธ์แล้ว วัตถุจะต้องปิด
rset.close();
stmt.close();
และครอบคลุมทั้งหมดที่มีในการเชื่อมต่อกับ MySQL จากจาวาและดำเนินการสืบค้นข้อมูลอย่างง่าย
ตรวจสอบของเรา คำสั่ง SQL แผ่นโกง .
แบ่งปัน แบ่งปัน ทวีต อีเมล ตกลงหรือไม่ที่จะติดตั้ง Windows 11 บนพีซีที่เข้ากันไม่ได้ตอนนี้คุณสามารถติดตั้ง Windows 11 บนพีซีรุ่นเก่าที่มีไฟล์ ISO อย่างเป็นทางการได้แล้ว แต่ควรทำเช่นนั้นหรือไม่
อ่านต่อไป หัวข้อที่เกี่ยวข้อง- การเขียนโปรแกรม
- Java
- SQL
สมัครรับจดหมายข่าวของเรา
เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!
คลิกที่นี่เพื่อสมัครสมาชิก