วิธีเชื่อมต่อกับฐานข้อมูล MySQL ด้วย Java

วิธีเชื่อมต่อกับฐานข้อมูล MySQL ด้วย Java

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
เกี่ยวกับผู้เขียน เจ ศรีธา(เผยแพร่บทความ 17 บทความ) เพิ่มเติมจาก Jay Sridhar

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก