Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

อะไรคือความแตกต่างระหว่างเมธอด execute(), executeQuery() และ executeUpdate() ใน JDBC?


เมื่อคุณสร้างอ็อบเจ็กต์คำสั่งแล้ว คุณสามารถรันมันได้โดยใช้หนึ่งในเมธอดรันของอินเทอร์เฟสคำสั่ง ได้แก่ execute(), executeUpdate() และ executeQuery()

วิธีดำเนินการ (): เมธอดนี้ใช้เพื่อดำเนินการคำสั่ง SQL DDL โดยจะส่งกลับค่าบูลีนที่ระบุสภาพอากาศที่วัตถุ ResultSet สามารถรับได้

ตัวอย่าง

<ก่อน> นำเข้า java.sql.Connection นำเข้า java.sql.DriverManager นำเข้า java.sql.SQLException นำเข้า java.sql.Statement ตัวอย่างคลาสสาธารณะ { โมฆะคงที่สาธารณะหลัก (สตริง args []) พ่น SQLException { // การลงทะเบียนไดร์เวอร์ DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //รับการเชื่อมต่อสตริง mysqlUrl ="jdbc:mysql://localhost/sampleDB"; การเชื่อมต่อ con =DriverManager.getConnection (mysqlUrl, "root", "password"); System.out.println("การเชื่อมต่อสำเร็จ......"); // การสร้างคำสั่งงบ stmt =con.createStatement(); //ดำเนินการคำสั่ง String createTable ="CREATE TABLE Employee(" + "Name VARCHAR(255)," + "Int เงินเดือนไม่เป็นค่าว่าง" + "Location VARCHAR(255))"; บูลีนบูล =stmt.execute (createTable); System.out.println(บูล); }}

ผลลัพธ์

เชื่อมต่อแล้ว......เท็จ

executeUpdate(): วิธีนี้ใช้สำหรับรันคำสั่งต่างๆ เช่น แทรก อัพเดต ลบ ส่งคืนค่าจำนวนเต็มแทนจำนวนแถวที่ได้รับผลกระทบ

ตัวอย่าง

<ก่อนหน้า> นำเข้า java.sql.Connection นำเข้า java.sql.DriverManager นำเข้า java.sql.SQLException นำเข้า java.sql.Statement คลาสสาธารณะ ExecuteUpdateExample { โมฆะแบบคงที่สาธารณะหลัก (สตริง args []) พ่น SQLException { // การลงทะเบียนไดร์เวอร์ DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //รับการเชื่อมต่อสตริง mysqlUrl ="jdbc:mysql://localhost/sampleDB"; การเชื่อมต่อ con =DriverManager.getConnection (mysqlUrl, "root", "password"); System.out.println("การเชื่อมต่อสำเร็จ......"); // การสร้างคำสั่งงบ stmt =con.createStatement(); String insertData ="INSERT INTO Employee(" + "Name, Salary, Location) VALUES " + "('Amit', 30000 'Hyderabad'), " + "('Kalyan', 40000 'Vishakhapatnam'), " + "('Renuka', 50000 'Delhi'), " + "('Archana', 15000, 'มุมไบ')"; int i =stmt.executeUpdate(insertData); System.out.println("แถวที่แทรก:"+i); }}

ผลลัพธ์

เชื่อมต่อแล้ว......แทรกแถวแล้ว:4

executeQuery(): เมธอดนี้ใช้เพื่อดำเนินการคำสั่งที่ส่งคืนข้อมูลแบบตาราง (เลือกตัวอย่าง) ส่งคืนวัตถุของ ResultSet ของคลาส

ตัวอย่าง

<ก่อนหน้า> นำเข้า java.sql.Connection นำเข้า java.sql.DriverManager นำเข้า java.sql.ResultSet นำเข้า java.sql.SQLException นำเข้า java.sql.Statement คลาสสาธารณะ ExecuteQueryExample { โมฆะสาธารณะสาธารณะหลัก (สตริง args [ ]) พ่น SQLException { //การลงทะเบียนไดรเวอร์ DriverManager.registerDriver (ใหม่ com.mysql.jdbc.Driver ()); //รับการเชื่อมต่อสตริง mysqlUrl ="jdbc:mysql://localhost/sampleDB"; การเชื่อมต่อ con =DriverManager.getConnection (mysqlUrl, "root", "password"); System.out.println("การเชื่อมต่อสำเร็จ......"); // การสร้างคำสั่งงบ stmt =con.createStatement(); //ดึงข้อมูล ResultSet rs =stmt.executeQuery("เลือก * จากพนักงาน"); ในขณะที่ (rs.next ()) { System.out.print ("ชื่อ:"+rs.getString ("ชื่อ")+", "); System.out.print("เงินเดือน:"+rs.getInt("เงินเดือน")+", "); System.out.print("เมือง:"+rs.getString("Location")); System.out.println(); } }}

ผลลัพธ์

เชื่อมต่อแล้ว......ชื่อ:Amit เงินเดือน:30000 เมือง:HyderabadName:Kalyan เงินเดือน:40000, เมือง:VishakhapatnamName:Renuka เงินเดือน:50000 เมือง:DelhiName:Archana เงินเดือน:15000 เมือง :มุมไบ