ฉันเชื่อว่าทุกคนคุ้นเคยกับ JDBC ตราบใดที่คุณเป็นคนชวาคุณต้องเรียนรู้สิ่งต่าง ๆ เมื่อคุณติดต่อกับ J2ee เป็นครั้งแรก ใครบอกว่าโปรแกรมต้องจัดการกับฐานข้อมูล? JDBC เป็นความรู้พื้นฐานมากในการจัดการกับฐานข้อมูลและยังค่อนข้างใกล้เคียงกับระดับพื้นฐาน ในการทำงานจริงผู้คนใช้เฟรมเวิร์กที่เป็นผู้ใหญ่มากขึ้นเช่นไฮเบอร์เนตและ mybatis
อย่างไรก็ตามในฐานะที่เป็น JDBC พื้นฐานของกรอบการทำงานที่ครบกำหนดเหล่านี้เราควรเชี่ยวชาญ โดยการทำความเข้าใจการเพิ่มการลบการดัดแปลงและการสืบค้นของ JDBC เท่านั้นเราสามารถเข้าใจได้ดีขึ้นว่าเฟรมเวิร์กที่ครบกำหนดเหล่านี้ใช้งานเพิ่มเติมการลบการปรับเปลี่ยนและการสืบค้นเมื่อพวกเขาสนใจที่จะศึกษาซอร์สโค้ดของไฮเบอร์เนตหรือ mybatis ในอนาคต
กลับไปที่หัวข้อลองมาดูสภาพแวดล้อมการพัฒนาของเรา:
ภาษา Java, เครื่องมือพัฒนา Eclipse, ฐานข้อมูล MySQL, เครื่องมือสร้างภาพฐานข้อมูลฐานข้อมูล NAVICAT
โปรดตรวจสอบข้อมูลด้วยตัวคุณเองสำหรับการติดตั้งการก่อสร้างและการใช้สภาพแวดล้อมการพัฒนา (ง่ายมาก) และจะไม่ได้รับการอธิบายอย่างละเอียดที่นี่
ขั้นตอนแรกคือ การสร้างฐานข้อมูลใช้เครื่องมือสร้างภาพฐานข้อมูล Navicat เพื่อสร้างฐานข้อมูลสร้างตารางในฐานข้อมูลให้หลายฟิลด์ในตาราง (จำไว้ว่าให้ฟิลด์ ID ซึ่งเป็นคีย์หลักที่ไม่ซ้ำกัน
ขั้นตอนที่สอง คือการเปิดฐานข้อมูล (ฉันหวังว่าทุกคนจะสามารถแตะตัวอย่างนี้ด้วยตัวคุณเองซึ่งจะไม่ใช้เวลามากนักทำความคุ้นเคยกับวิธีการที่ JDBC เกี่ยวข้องกับฐานข้อมูลดังนั้นฉันจะแสดงในรูป) ดังแสดงในรูป:
ขั้นตอนที่สามคือ การแปลงคลาส dbutil เพื่ออำนวยความสะดวกในการได้มาซึ่งการเชื่อมต่อฐานข้อมูลที่ชั้น DAO รหัสมีดังนี้:
แพ็คเกจ com.czgo.db; นำเข้า java.sql.connection; นำเข้า java.sql.drivermanager; นำเข้า java.sql.sqlexception; คลาสสาธารณะ dbutil {url สตริงสุดท้ายคงที่ = "jdbc: mysql: //127.0.0. สตริงสุดท้ายคงที่ส่วนตัว uname = "root"; สตริงสุดท้ายคงที่ส่วนตัว pwd = "root"; การเชื่อมต่อแบบคงที่ส่วนตัว conn = null; คงที่ {ลอง {// 1. โหลดคลาสไดรเวอร์ forName ("com.mysql.jdbc.driver"); // 2. รับการเชื่อมต่อกับฐานข้อมูล conn = drivermanager.getConnection (URL, Uname, PWD); } catch (classnotFoundException e) {e.printStackTrace (); } catch (sqlexception e) {e.printstacktrace (); }} การเชื่อมต่อแบบคงที่สาธารณะ getConnection () {return conn; - ขั้นตอนที่ 4: สร้างคลาสเอนทิตี (ดังที่แสดงในภาพด้านบนทุกคนสังเกตการจัดสรรแพ็คเกจเราจะใช้แนวคิด MVC ในการออกแบบตัวอย่างนี้มีแนวคิดการออกแบบเกี่ยวกับ MVC โปรดเรียนรู้ด้วยตัวเองฉันจะไม่พูดมากที่นี่) รหัสดังต่อไปนี้:
แพ็คเกจ com.czgo.model; นำเข้า java.io.serializable;/** * คลาสเอนทิตี: คลาสเทพธิดา * * @author Alanlee * */เทพธิดาระดับสาธารณะใช้งาน Serializable / *** คีย์หลักที่ไม่ซ้ำกัน*/ ID จำนวนเต็มส่วนตัว; / *** ชื่อ*/ ชื่อสตริงส่วนตัว; / *** หมายเลขโทรศัพท์มือถือ*/ สตริงส่วนตัว Mobie; / *** อีเมล*/ อีเมลสตริงส่วนตัว; / *** ที่อยู่บ้าน*/ ที่อยู่สตริงส่วนตัว; จำนวนเต็มสาธารณะ getId () {return id; } โมฆะสาธารณะ setId (ID จำนวนเต็ม) {this.id = id; } สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } สตริงสาธารณะ getMobie () {return mobie; } โมฆะสาธารณะ setMobie (สตริง mobie) {this.mobie = mobie; } สตริงสาธารณะ getEmail () {ส่งคืนอีเมล; } โมฆะสาธารณะ setEmail (อีเมลสตริง) {this.email = อีเมล; } สตริงสาธารณะ getAddress () {return address; } โมฆะสาธารณะ setAddress (ที่อยู่สตริง) {this.address = ที่อยู่; - ขั้นตอนที่ 5 การใช้งานของชั้น DAO (ที่นี่เนื่องจากเป็นตัวอย่างเล็ก ๆ น้อย ๆ จึงไม่มีส่วนต่อประสานการเขียนสำหรับโครงการขนาดใหญ่ในการทำงานจริงซึ่งสะดวกสำหรับการบำรุงรักษาโปรแกรมและการขยายตัว) รหัสมีดังนี้:
แพ็คเกจ com.czgo.dao; นำเข้า java.sql.connection; นำเข้า java.sql.preparedStatement; นำเข้า java.sql.resultset; นำเข้า java.sql.sqlexception; นำเข้า java.util.arraylist; com.czgo.model.goddess;/** * คลาสการประมวลผลเลเยอร์ข้อมูล * * @author alanlee * */ชั้นเรียนสาธารณะ Goddessdao {/** * สอบถามเทพธิดาทั้งหมด * * @return * @throws sqlexception */รายการสาธารณะ Arraylist <Goddess> (); // รับการเชื่อมต่อการเชื่อมต่อฐานข้อมูล conn = dbutil.getConnection (); StringBuilder sb = new StringBuilder (); SB.Append ("เลือก ID, ชื่อ, Mobie, อีเมล, ที่อยู่จาก Goddess"); // ดำเนินการฐานข้อมูลผ่านการเชื่อมต่อฐานข้อมูลเพื่อรับรู้การเพิ่มการลบการดัดแปลงและการค้นหา PreparedStatement ptmt = conn.prepareStatement (sb.toString ()); resultset rs = ptmt.executeQuery (); เทพธิดาเทพธิดา = Null; ในขณะที่ (Rs.Next ()) {Goddess = New Goddess (); Goddess.setId (Rs.getInt ("id")); Goddess.setName (Rs.getString ("ชื่อ")); Goddess.setMobie (Rs.getString ("Mobie")); Goddess.setEmail (Rs.getString ("อีเมล")); Goddess.setAddress (Rs.getString ("ที่อยู่")); Goddess.setAddress (Rs.getString ("ที่อยู่")); Goddesslist.add (เทพธิดา); } กลับ Goddesslist; } / ** * Query Single Goddess * * @return * @throws sqlexception * / เทพธิดาสาธารณะ QueryById (จำนวนเต็ม) โยน sqlexception {เทพธิดา g = null; การเชื่อมต่อ conn = dbutil.getConnection (); String sql = "" + "เลือก * จาก iMOOC_GODDESS" + "โดยที่ id =?"; PreparedStatement PTMT = Conn.PrepareStatement (SQL); ptmt.setint (1, id); resultset rs = ptmt.executeQuery (); ในขณะที่ (rs.next ()) {g = ใหม่เทพธิดา (); G.SetId (Rs.getInt ("ID")); g.setName (rs.getString ("ชื่อ")); G.SetMobie (Rs.getString ("Mobie")); G.SetEmail (Rs.getString ("อีเมล")); G.SetAddress (Rs.getString ("ที่อยู่")); } return g; } / ** * เพิ่ม Goddess * * @throws sqlexception * / โมฆะสาธารณะ addgoddess (เทพธิดา Goddess) พ่น sqlexception {// รับการเชื่อมต่อการเชื่อมต่อฐานข้อมูล conn = dbutil.getConnection (); String sql = "แทรกลงในเทพธิดา (ชื่อ, mobie, อีเมล, ที่อยู่) ค่า (?,?,?,?)"; PreparedStatement PTMT = Conn.PrepareStatement (SQL); ptmt.setstring (1, goddess.getName ()); ptmt.setstring (2, goddess.getMobie ()); ptmt.setstring (3, goddess.getEmail ()); ptmt.setstring (4, goddess.getaddress ()); ptmt.execute (); } / ** * แก้ไขข้อมูลเทพธิดา * * @throws sqlexception * / โมฆะสาธารณะ updategoddess (เทพธิดา Goddess) พ่น sqlexception {connection conn = dbutil.getConnection (); String sql = "อัปเดต Goddess Set name =?, mobie =?, email =?, address =? id =?"; "; PreparedStatement PTMT = Conn.PrepareStatement (SQL); ptmt.setstring (1, goddess.getName ()); ptmt.setstring (2, goddess.getMobie ()); ptmt.setstring (3, goddess.getEmail ()); ptmt.setstring (4, goddess.getaddress ()); ptmt.execute (); } / ** * ลบ Goddess * * @throws sqlexception * / โมฆะสาธารณะ deleeteGoddess (ID จำนวนเต็ม) พ่น sqlexception {การเชื่อมต่อ conn = dbutil.getConnection (); String sql = "ลบจากเทพธิดาที่ id =?"; PreparedStatement PTMT = Conn.PrepareStatement (SQL); ptmt.setint (1, id); ptmt.execute (); - ขั้นตอนที่ 6: การใช้เลเยอร์ควบคุม (เลเยอร์ควบคุมถูกใช้เพื่อเลียนแบบเลเยอร์ควบคุมและอินเทอร์เฟซที่นี่และสร้างข้อมูลโดยตรงที่นี่หากเป็นข้อมูลของอินเทอร์เฟซคุณสามารถผ่านพารามิเตอร์ที่ได้รับผ่านคำขอคุณสามารถเปลี่ยนและปรับปรุงรหัสของเลเยอร์ควบคุมตามสถานการณ์จริง รหัสมีดังนี้:
แพ็คเกจ com.czgo.action; นำเข้า java.sql.sqlexception; นำเข้า java.util.list; นำเข้า com.czgo.dao.goddessdao; นำเข้า com.czgo.model.goddess;/** เช่นเดียวกัน * * @author Alanlee * */Goddessaction คลาสสาธารณะ {/** * เพิ่ม Goddess * * @param Goddess * @throws Exception */Public Void Add (Goddess Goddess) โยนข้อยกเว้น {Goddessdao dao = New Goddessdao (); Goddess.setName ("Aoi Sora"); Goddess.SetMobie ("52220000"); Goddess.setEmail ("[email protected]"); Goddess.setAddress ("ปักกิ่งสีแดงอำเภอ"); dao.addgoddess (เทพธิดา); } / ** * Query Single Goddess * * @param id * @return * @throws sqlexception * / สาธารณะ Getdess รับ (Integer id) พ่น sqlexception {goddessdao dao = new Goddessdao (); ส่งคืน dao.querybyid (id); } / ** * แก้ไขเทพธิดา * * @param Goddess * @throws Exception * / Public Void แก้ไข (เทพธิดา Goddess) โยนข้อยกเว้น {Goddessdao dao = New Goddessdao (); dao.updategoddess (เทพธิดา); } / ** * ลบ Goddess * * @param id * @throws sqlexception * / public void del (Integer id) พ่น sqlexception {goddessdao dao = new Goddessdao (); Dao.DeleteGoddess (ID); } / ** * ค้นหาเทพธิดาทั้งหมด * * @return * @throws Exception * / รายการสาธารณะ <Goddess> Query () โยนข้อยกเว้น {Goddessdao dao = New Goddessdao (); return dao.query (); } / ** * ทดสอบว่าประสบความสำเร็จ * * @param args * @throws sqlexception * / โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่น sqlexception {goddessdao goddessdao = new Goddessdao (); รายการ <Goddess> Goddesslist = Goddessdao.Query (); สำหรับ (เทพธิดาเทพธิดา: Goddesslist) {System.out.println (Goddess.getName () + "," + Goddess.getMobie () + "," + Goddess.getEmail ()); - สุดท้ายเรามาดูกันว่าวิธีการหลักทำงานสำเร็จหรือไม่:
ด้วยวิธีนี้การเชื่อมต่อ Java JDBC อย่างง่ายกับฐานข้อมูล MySQL เสร็จสมบูรณ์เพื่อเพิ่มลบแก้ไขและสอบถาม คุณสามารถลองทำแบบสอบถามขั้นสูงตามแบบสอบถามนั่นคือแบบสอบถามหลายเงื่อนไขเพื่อรวมการใช้ JDBC
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น