การเชื่อมต่อ Java JDBC และการใช้งาน
JDBC
นำเข้าไดรเวอร์
// jar เป็นชุดไฟล์คลาสแพคเกจซึ่งสามารถอ้างอิงถึงโครงการอื่น ๆ
// นำเข้าขวดภายนอกใน Build Path
เชื่อมต่อกับ JDBC
1. โหลดไดรเวอร์
class.from ("com.mysql.jdbc.driver");สร้างการเชื่อมต่อ
// แพ็คเกจคู่มือใช้ java.sql.*; สตริง jdbc = "jdbc: mysql: // localhost: 3306/นักเรียน? user = root & password = & characterencoding = utf-8"; // นักเรียนคือการเชื่อมต่อชื่อตาราง conn = drivermanager.getConnection (jdbc);
2. โปรดทราบว่าหลังจากเปิดฐานข้อมูลแล้วอย่าลืมปิด
conn.close ();
1. เรียกใช้คำสั่ง SQL (สร้างตาราง, แทรก, ลบ, อัปเดต)
ใช้ Statemant
Statemant ST = conn.createstatemant (); Int Row = St.ExecuteUpdate (คำสั่ง SQL); // ไม่สามารถดำเนินการสอบถามได้
ใช้การเตรียมการ
สามารถใช้ได้หรือไม่? ตัวยึดตำแหน่งเพื่อแทนที่พารามิเตอร์ที่คุณต้องผ่าน
String sql = "แทรกลงใน" + tablename + "(ชื่อ, หัวเรื่อง, คะแนน) ค่า (?,?,?)"; การเตรียมการ Pt = conn.preparestatement (SQL); // ตั้งค่าสำหรับแต่ละตัวยึดตำแหน่งและตัวห้อยเริ่มต้นจาก 1 pt.setstring (1, score.getName ()); Pt.SetString (2.Score.getSubject ()); pt.setDouble (3, score.getScore ()); // ใช้วิธีการที่ไม่มีพารามิเตอร์ pt.executeUpdate ();
1. การดำเนินการแบบสอบถาม
รายการคงที่ <sceles> queryScore (การเชื่อมต่อ PCONN, คะแนน pscore) พ่น sqlexception {arraylist <coal> mlist = new ArrayList <> (); String sql = "เลือก * จาก" + tablename + "ที่ชื่อ =?"; PreparedStatement PS = PCONN.Preparestatement (SQL); ps.setstring (1, pscore.getName ()); resultset rs = ps.executeQuery (); ในขณะที่ (rs.next ()) {// ที่นี่คุณสามารถรับผลลัพธ์ทั้งหมดผ่าน rs string subject = rs.getString ("หัวเรื่อง"); int id = rs.getInt ("id"); คะแนนสองเท่า = Rs.getDouble ("คะแนน"); mlist.add (คะแนนใหม่ (id, pscore.getName (), หัวเรื่อง, คะแนน)); } ส่งคืน mlist; -นี่คือโปรแกรมขนาดเล็ก
// สร้างคลาสการเชื่อมต่อฐานข้อมูลคลาสสาธารณะ dao {// ถามที่อยู่ลิงก์ฐานข้อมูลสตริงคงที่ jdbc = "jdbc: mysql: // localhost: 3306/นักเรียน? user = root & password = & catreatencoding = utf-8"; // เปิดการเชื่อมต่อการเชื่อมต่อแบบสแตติกสาธารณะลิงก์ () {// ขั้นตอนในการใช้ JDBC // 1. โหลดไดรเวอร์ JDBC ลอง {// ชื่อเต็มของคลาส + คลาสคลาสคลาส forName ("com.mysql.jdbc.driver"); // 2. เชื่อมต่อกับการเชื่อมต่อฐานข้อมูล Conn = driverManager.getConnection (JDBC); กลับ Conn; } catch (exception e) {system.out.println ("โหลดไดรเวอร์ล้มเหลว"); คืนค่า null; }}} // คะแนนระดับคลาสสาธารณะคะแนน {ชื่อสตริง; String ID; เรื่องสตริง; คะแนนสองเท่า; คะแนนสาธารณะ (ชื่อสตริง, หัวเรื่องสตริง, คะแนนสองเท่า) {super (); this.name = ชื่อ; this.subject = เรื่อง; this.score = คะแนน; } @Override สตริงสาธารณะ toString () {return "คะแนน [name =" + name + ", id =" + id + ", subject =" + subject + ", score =" + score + "]"; } คะแนนสาธารณะ (ชื่อสตริง, รหัสสตริง, สตริงหัวเรื่อง, คะแนนสองเท่า) {super (); this.name = ชื่อ; this.id = id; this.subject = เรื่อง; this.score = คะแนน; } สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } สตริงสาธารณะ getId () {return id; } โมฆะสาธารณะ setId (รหัสสตริง) {this.id = id; } สตริงสาธารณะ getSubject () {return subject; } โมฆะสาธารณะ setSubject (หัวเรื่องสตริง) {this.subject = หัวเรื่อง; } สาธารณะ double getScore () {คะแนนคืน; } โมฆะสาธารณะ setScore (คะแนนสองเท่า) {this.score = คะแนน; }} // การทดสอบคลาสการทดสอบระดับสาธารณะ {public String String tablename = "คะแนน"; โมฆะคงที่สาธารณะหลัก (สตริง [] args) {ลอง {connection conn = dao.connection (); if (conn! = null) {system.out.println ("เชื่อมโยง"); // createTable (conn); // แทรกบันทึกคะแนน // คะแนน = คะแนนใหม่ ("Li Si", "Android", 98); // system.out.println (addScore2 (conn, คะแนน)); // deletescore (conn, คะแนน); // updateScore (conn, คะแนน); รายการ <coal> list = queryScoreByName (Conn, "Wang Wu"); // queryallscore (Conn); สำหรับ (คะแนนคะแนน: รายการ) {system.out.println (คะแนน); } conn.close (); } else {system.out.println ("ลิงก์ล้มเหลว"); }} catch (sqlexception e) {e.printstacktrace (); }} // สร้างตาราง public public boolean createTable (Connection Conn) {// เริ่มดำเนินการสตริงคำสั่ง SQL SQL = "สร้างตาราง" + tablename + "(ID จำนวนเต็มคีย์หลัก Auto_Increment ชื่อ Varchar (3) ไม่ใช่ Null, Varchar (20) // ในการเรียกใช้คำสั่งคลาสที่ดำเนินการจะต้องดำเนินการคำสั่งลองใช้ {คำสั่ง st = conn.createstatement (); int result = stexecuteUpdate (SQL); System.out.println (ผลลัพธ์); if (ผลลัพธ์! = -1) ส่งคืนจริง; } catch (sqlexception e) {e.printstacktrace (); } return false; } // เพิ่มบูลีนสแตติกบูลีนสาธารณะ (การเชื่อมต่อ Conn, คะแนนคะแนน) พ่น sqlexception {string sql = "แทรกลงใน" + tablename + "(ชื่อ, หัวเรื่อง, คะแนน) ค่า ('" + score.getName () + "', ' + score.getSubject () +" System.out.println (SQL); คำสั่ง st = conn.createstatement (); Int Row = St.ExecuteUpdate (SQL); ถ้า (แถว> 0) ส่งคืนจริง; กลับเท็จ; } // เพิ่มบันทึก 2 บูลีนสาธารณะ addScore2 (การเชื่อมต่อ Conn, คะแนนคะแนน) พ่น sqlexception {// placeholder? ในการแทนที่พารามิเตอร์ที่ต้องตั้งค่าสตริง sql = "แทรกลงใน" + tablename + "(ชื่อ, หัวเรื่อง, คะแนน) ค่า (?,?,?)"; PreparedStatement ps = conn.prepareStatement (SQL); // ต้องได้รับ? ค่าที่แสดงโดย ps.setstring (1, score.getName ()); ps.setstring (2, score.getsubject ()); ps.setDouble (3, score.getScore ()); // เรียกวิธีการที่ไม่มีพารามิเตอร์ int แถว = ps.executeUpdate (); ถ้า (แถว> 0) ส่งคืนจริง; กลับเท็จ; } public boolean public boolean deletescore (Connection conn, คะแนนคะแนน) พ่น sqlexception {string sql = "ลบจาก" + tablename + "โดยที่ชื่อ =? และ subject =?"; // สร้าง prepareStatement PreparedStatement ps = conn.preparestatement (SQL); ps.setstring (1, score.getName ()); ps.setstring (2, score.getsubject ()); // ps.setDouble (3, score.getScore ()); // ดำเนินการแถว int = ps.executeUpdate (); System.out.println (แถว); ถ้า (แถว> 0) ส่งคืนจริง; กลับเท็จ; } การอัพเดทบูลีนแบบคงที่สาธารณะ (การเชื่อมต่อ Conn, คะแนนคะแนน) พ่น Sqlexception {// Modify คะแนนสำหรับสตริงวิชาของเขา SQL = "UPDATE" + TABLENAME + "SET SET =? NAME =? และ?"; PreparedStatement ps = conn.prepareStatement (SQL); ps.setDouble (1, score.getScore ()); ps.setstring (2, score.getName ()); ps.setstring (3, score.getsubject ()); แถว int = ps.executeUpdate (); System.out.println (แถว); ถ้า (แถว> 0) ส่งคืนจริง; กลับเท็จ; } รายการคงที่สาธารณะ <Cole> QueryAllScore (การเชื่อมต่อ Conn) พ่น SQLException {String SQL = "SELECT * จาก" + Tablename; // เริ่มต้นคำสั่งค้นหา st = conn.createstatement (); resultset rs = stexecuteQuery (SQL); รายการ <coal> list = new ArrayList <coor> (); ในขณะที่ (rs.next ()) {// ที่นี่คุณสามารถรับผลลัพธ์ทั้งหมดผ่าน RS String id = rs.getString ("id"); ชื่อสตริง = rs.getString ("ชื่อ"); String subject = rs.getString ("หัวเรื่อง"); คะแนนสองเท่า = Rs.getDouble ("คะแนน"); list.add (คะแนนใหม่ (ชื่อ, รหัส, หัวเรื่อง, คะแนน)); } // end return list; } รายการคงที่สาธารณะ <coal> queryscoreByName (การเชื่อมต่อ Conn, ชื่อสตริง) พ่น sqlexception {string sql = "select * จาก" + tablename + "ที่ไหน name =?"; PreparedStatement Pt = Conn.prepareStatement (SQL); pt.setstring (1, ชื่อ); resultset rs = pt.executeQuery (); รายการ <coal> list = new ArrayList <> (); ในขณะที่ (rs.next ()) {string subject = rs.getString ("หัวเรื่อง"); string id = rs.getString ("id"); คะแนนสองเท่า = Rs.getDouble ("คะแนน"); list.add (คะแนนใหม่ (ชื่อ, รหัส, หัวเรื่อง, คะแนน)); } return list; -