แบบสอบถามฐานข้อมูล
ใช้เมธอด createStatement ของอ็อบเจ็กต์ Connection เพื่อสร้างอ็อบเจ็กต์ Statement ใช้เมธอดExecutiveQuery() ของอ็อบเจ็กต์ Statement เพื่อรันคำสั่งคิวรี SQL และส่งคืนชุดผลลัพธ์ จากนั้นอ่านข้อมูลจากชุดผลลัพธ์โดยใช้เมธอด เช่น รับXXX() หลังจากขั้นตอนต่างๆ ดังกล่าว ก็สามารถรับรู้การสืบค้นไปยังฐานข้อมูลได้
[ตัวอย่าง] แอปพลิเคชัน Java เข้าถึงฐานข้อมูล แอปพลิเคชันจะเปิดตารางข้อมูลผู้สมัคร ksInfo และดึงข้อมูลต่างๆ เกี่ยวกับผู้สมัคร สมมติว่าโครงสร้างของฐานข้อมูลข้อมูลผู้สมัครเป็นดังนี้
import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.sql.*;public class Example10_9 ขยาย JFrame ใช้งาน ActionListener{ public static Connection ConnectByJdbcodbc( URL สตริง ชื่อผู้ใช้สตริง รหัสผ่านสตริง){ การเชื่อมต่อ con = null; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // โหลดไดรเวอร์ ODBC} catch (ข้อยกเว้น e) { e.printStackTrace (); // การโหลดล้มเหลว การเชื่อมต่อไม่สำเร็จ} ลอง { con = DriverManager .getConnection(url, ชื่อผู้ใช้, รหัสผ่าน); } catch (SQLException e){ e.printStackTrace(); //Connection failed} return con; ชื่อสตริง [] = { "หมายเลขการสอบ", "ชื่อ", "เกรด", "ที่อยู่", "ประวัติย่อ"}; JTextField txtNo = ใหม่ JTextField (8); JTextField txtName = ใหม่ JTextField txtScore = ใหม่ JTextField(3); JTextField txtAddr = ใหม่ JTextField(30); JTextArea txtresume = ใหม่ JTextArea(); JButton ก่อนหน้า = ใหม่ JButton ("ก่อนหน้า"); JButton ถัดไป = ใหม่ JButton ("ถัดไป"); ); คำสั่ง sql; // วัตถุคำสั่ง SQL ResultSet rs; //เก็บผลลัพธ์ objectExample10_9(การเชื่อมต่อเชื่อมต่อ){ super("Candidate ข้อมูลการดูหน้าต่าง"); setSize(450, 350); try{ sql = Connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); ("เลือก * จาก ksInfo"); คอนเทนเนอร์ con = getContentPane(); con.setLayout(new BorderLayout(0, 6); JPanel p[] = new JPanel[4]; for (int i = 0; i < 4; i++){ p[ i] = JPane ใหม่ (FlowLayout ใหม่ (FlowLayout.LEFT, 8, 0)); p[i].เพิ่ม (new JLabel(ชื่อ[i])); } p[0].เพิ่ม(txtNo); p[1].เพิ่ม(txtName); p[2].เพิ่ม(txtScore); p[3].เพิ่ม(txtAddr); JPanel p1 = JPane ใหม่ (GridLayout94 ใหม่, 1, 0, 8)); JScrollPane jsp = ใหม่ JScrollPane(txtResume, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); jsp.setPreforredSize(มิติใหม่ (300, 60); for (int i = 0; i < 4; i++){ p1.add(p[i]); } JPanel p2 = ใหม่ JPanel (FlowLayout ใหม่ (FlowLayout.LEFT, 10, 0); p2.add (JLabel ใหม่ (ชื่อ [4])); p2.add (jsp); Jpanel p3 = Jpanel ใหม่ (); p3.add (ก่อนหน้า); p3.add (ถัดไป); p3.add (แรก); p3.add (สุดท้าย); next.addActionListener (สิ่งนี้); first.addActionListener (สิ่งนี้); } โมฆะสาธารณะ modifiedRecord (การเชื่อมต่อการเชื่อมต่อ) { String stuNo = (String) JOptionPane.showInputDialog (null, "โปรดป้อนหมายเลขการสอบของผู้สมัคร", "ป้อนกล่องโต้ตอบหมายเลขการสอบ", JOptionPane.PLAIN_MESSAGE, null, null, ""); ลอง { sql = Connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); .executeQuery ("SELECT * FROM ksInfo"); คอนเทนเนอร์ con = getContentPane(); con.setLayout(ใหม่ Boarderlayout(0, 6)); Jpanel p[] = new JPanel[4]; for (int i = 0; i < ; i++){ p[i] = new JPane(new FlowLayout(flowLayout.LEFT, 8, 0)); p[i].เพิ่ม(JLabel ใหม่(ชื่อ[i])); p[0].add(txtNo); p[1].add(txtName); p[2].add(txtScore); p[3].add(txtAddr); Jpanel ใหม่ (GridLayout ใหม่) , 1, 0, 8)); JScrollPane jsp = JScrollPane ใหม่ (txtResume, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); jsp.setPreferredSize (มิติใหม่ (300, 60)); สำหรับ (int i = 0; i < 4; i++){ p1.add(p[i]); } Jpanel p2 = ใหม่ JPanel(ใหม่ FlowLayout(FlowLayout.LEFT, 10, 0)); p2.add(ใหม่ JLableI(ชื่อ[4])); p2.add(jsp); JPanel() เพิ่ม (ถัดไป); p3.add (ก่อน); p3.add (สุดท้าย); next.addActionListener(นี้); first.addActionListener(นี้); rs.first(); } catch (ข้อยกเว้น e.printStackTrace(); readRecord(){ try{ txtNo.setText(rs.getString("หมายเลขการสอบ")); txtName.setText(rs.getString("ชื่อ")); txtScore.setText(rs.getString("คะแนน")); txtAddr.setText(rs.getString("ที่อยู่")); "ดำเนินการต่อ"); } catch (SQLException e){ e.printStackTrace(); return false; } true; } public void actionPerformed(ActionEvent e){ ลอง{ ถ้า (e.getSource() == ก่อนหน้า)rs.previous(); else if (e.getSource() == ถัดไป)rs.next(); (e.getSource() == first)rs.first(); else if (e.getSource() == Last)rs.last(); readRecord(); } สาธารณะ โมฆะคงที่ main(String args[]){ การเชื่อมต่อ = null; JFrame .setDefaultLookAndFeeDecorated(true); Font font = new Font("JFrame", Font.PLAIN, 14); if ((connect =connectByJdbcOdbc("jdbc:odbc :redsun", "xia", "1234")) == null){ JOptionPane.showMessageDialog (null, "การเชื่อมต่อฐานข้อมูลล้มเหลว!"); System.exit ( - 1); } new Example10_9 (เชื่อมต่อ); // สร้างวัตถุ}}
Java Database Update <br />การดำเนินการอัพเดตฐานข้อมูลประกอบด้วยการสร้างตารางข้อมูล การลบ และการบวก การลบ และการแก้ไขบันทึกตารางข้อมูล หากมีการใช้งานโดยใช้คำสั่ง data SQL ให้ใช้เมธอดExecutiveUpdate() ของคู่คำสั่งเพื่อรันคำสั่ง SQL update เพื่อแก้ไขตารางข้อมูล; รันคำสั่ง SQL insert เพื่อเพิ่มบันทึกตารางข้อมูล
ตัวอย่างเช่น ตามตัวอย่างการสืบค้นข้อมูลก่อนหน้านี้ ให้เพิ่มการแก้ไขและการแทรกลงในตารางข้อมูล เนื่องจากข้อจำกัดด้านพื้นที่ จึงไม่สามารถให้โปรแกรมทั้งหมดได้ มีเพียงวิธีการแก้ไขและการแทรกเท่านั้น โปรแกรมสามารถเพิ่มปุ่มแทรก ,, และบันทึกได้ ผ่านการเรียกดูที่มีอยู่ ค้นหาตำแหน่งเฉพาะของตารางข้อมูล แก้ไข ปรับเปลี่ยน แทรก หรือลบเรคคอร์ด carbuncle จากนั้นกดปุ่มบันทึกเพื่อทำให้ตารางข้อมูลที่แก้ไขเสร็จสมบูรณ์ . บันทึก.
รหัสต่อไปนี้อธิบายวิธีการปรับปรุงตารางข้อมูล เมื่อเชื่อมต่อกับตารางข้อมูล คุณต้องระบุว่าอ็อบเจ็กต์ ResultSet ที่ได้รับนั้นสามารถอัปเดตได้
stmt = Connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);