Saya belajar java dan database baru -baru ini. Saya ingat sistem manajemen siswa yang saya tulis sebelumnya, yang diunduh dari internet dan acuh tak acuh. Saya tidak ada hubungannya, jadi saya menulisnya sendiri, tetapi fungsinya tidak menerapkan banyak fungsi.
Bahasa pengembangan: Java; Lingkungan Pengembangan: MySQL, Java; Alat Pengembangan: Eclipse
Untuk mengembangkan kasus ini, Anda harus terlebih dahulu memiliki lingkungan pengembangan Java dan MySQL di komputer, lingkungan pengembangan Java dan konstruksi MySQL, jadi saya tidak akan menjelaskannya lagi. Jika Anda membutuhkannya, silakan hubungi saya dengan informasi kontak berikut: [email protected]
Sistem ini relatif sederhana kali ini: hanya ada satu tabel dalam database: Stu; Fungsi: Dapat menambah, menghapus, dan memodifikasi siswa.
Langkah Pengembangan:
1. Buat tabel dalam database:
Buat tabel stu (string stuid, string stuname, string stusex, stuage int, string stujg, studept sring);
2. Kode Java terutama terdiri dari empat kelas:
Test3 berisi fungsi utama; Stumodel digunakan untuk menyegarkan dan membuat database; Stuadddiag digunakan untuk menambahkan fungsi pembaca; Stuupdiag digunakan untuk memodifikasi informasi siswa. Kode spesifiknya adalah sebagai berikut:
Test3.java:
impor javax.swing.*; impor java.util.*; impor java.awt.*; impor java.awt.event.*; impor java.sql.connection; impor java.sql.driver; impor java.sql.drivermanager; impor java.sql.prepared java.sql.drivermanager; impor java.sql.prepared java.sql.statement; test kelas publik3 memperluas jframe mengimplementasikan ActionListener {// Tentukan beberapa kontrol JPanel JP1, JP2; Jlabel JL1, JL2; JButton JB1, JB2, JB3, JB4; Jtable JT; Jscrollpane JSP; JTextfield JTF; SM Stumodel; // Tentukan stat pernyataan variabel = null; Disiapkan PS; Koneksi ct = null; Hasil rs = null; public static void main (string [] args) {test3 test3 = new test3 (); } // konstruktor public test3 () {jp1 = new jpanel (); JTF = JTextField baru (10); jb1 = jbutton baru ("kueri"); jb1.addactionlistener (ini); jl1 = jlabel baru ("Silakan masukkan nama:"); jp1.add (jl1); jp1.add (jtf); jp1.add (jb1); jb2 = jbutton baru ("add"); jb2.addactionlistener (ini); jb3 = jbutton baru ("memodifikasi"); JB3.AddactionListener (ini); jb4 = jbutton baru ("hapus"); jb4.addactionlistener (ini); jp2 = jpanel baru (); jp2.add (jb2); jp2.add (jb3); jp2.add (jb4); // Buat Objek Model SM = Stumodel baru (); // inisialisasi jt = jtable baru (sm); jsp = jscrollpane baru (JT); // Masukkan JSP ke dalam jframe this.add (jsp); this.add (jp1, "utara"); this.add (jp2, "selatan"); this.setsize (600, 400); //this.setlocation(300, 200); this.setDefaultCloseOperation (exit_on_close); this.setVisible (true); } public void actionPerformed (ActionEvent arg0) {// Tentukan tombol mana yang diklik jika (arg0.getSource () == jb1) {System.out.println ("Pengguna ingin diminta ..."); // Karena data tabel dienkapsulasi ke dalam stumodel, lebih mudah untuk menyelesaikan name string kueri = this.jtf.getText (). Trim (); // Tulis Pernyataan SQL String SQL = "SELECT * DARI STU WHERE STUNAME = '"+NAME+"'"; // Bangun kelas model data dan perbarui sm = stumodel baru (SQL); // Perbarui Jtable JT.SetModel (SM); } // 1. Pop Up Tambah Antarmuka Lain if (arg0.getSource () == jb2) {System.out.println ("Tambahkan ..."); Stuadddiag sa = stuadddiag baru (ini, "tambahkan siswa", benar); // Dapatkan model data baru lagi, sm = stumodel baru (); JT.SetModel (SM); } lain jika (arg0.getSource () == jb4) {// 2. Hapus catatan // 1. Dapatkan ID Student int rownum = this.jt.getSelectedRow (); // getSelectedRow akan kembali ke baris di titik pengguna // Jika pengguna tidak dipilih, return -1 if (rownum == -1) {// prompt joptionpane.showmessagealog (ini, "silakan pilih baris"); kembali ; } // Dapatkan string ID akademik stuid = (string) sm.getValueat (rownum, 0); System.out.println ("id:"+stuid); // Sambungkan database dan lengkapi tugas penghapusan coba {// 1. Muat driver class.forname ("com.mysql.jdbc.driver"); // 2. Hubungkan ke string database url = "jdbc: mysql: // localhost: 3306/spdb1"; String user = "root"; String passwd = "lfdy"; ct = driverManager.getConnection (url, pengguna, passwd); System.out.println ("Koneksi Sukses"); ps = ct.preparestatement ("Hapus dari Stu Where Stuid =?"); ps.setstring (1, stuid); ps.executeUpdate (); } catch (Exception e) {E.PrintStackTrace (); } akhirnya {coba {if (rs! = null) {rs.close (); rs = null; } if (ps! = null) {ps.close (); ps = null; } if (ct! = null) {ct.close (); ct = null; }} catch (Exception e) {e.printstacktrace (); }} sm = stumodel baru (); // Perbarui Jtable JT.SetModel (SM); } else if (arg0.getSource () == jb3) {System.out.println ("11111"); // 3. Pengguna ingin memodifikasi int rownum = this.jt.getSelectedRow (); if (rownum == -1) {// prompt joptionpane.showmessagealog (ini, "Pilih baris"); kembali ; } // Tampilkan dialog System.out.println ("12435"); Stuupdiag su = stuupdiag baru (ini, "memodifikasi akademik", true, sm, rownum); sm = stumodel baru (); JT.SetModel (SM); }}}Stumodel.java:
/** Ini adalah model tabel Stu saya* Anda dapat merangkum semua operasi pada tabel siswa ke dalam kelas ini*/paket com.test2; impor java.sql.connection; impor java.sql.driverManager; impor java.sql.resultset; impor java.sql.statement; impor java. Stumodel memperluas AbstractTablemodel {// RowData menyimpan data baris, ColumnNames menyimpan nama kolom vektor rowData, columnNames; // Tentukan stat pernyataan variabel yang terhubung ke database = null; Koneksi ct = null; Hasil rs = null; // inisialisasi public void init (string sql) {if (sql.equals ("")) {sql = "pilih * dari stu"; } // Intermediate // Set Column Name ColumnNames = vektor baru (); ColumnNames.Add ("Nomor Sekolah"); columnNames.add ("name"); ColumnNames.Add ("Jenis Kelamin"); ColumnNames.Add ("usia"); columnNames.add ("name"); columnNames.add ("name"); columnNames.add ("name"); ColumnNames.Add ("Sect"); // RowData menyimpan beberapa baris rowData = vektor baru (); coba {// 1. Muat driver class.forname ("com.mysql.jdbc.driver"); System.out.println ("Loading berhasil"); // 2. Hubungkan ke database // Tentukan beberapa konstanta string url = "jdbc: mysql: // localhost: 3306/spdb1"; String user = "root"; String passwd = "lfdy"; ct = driverManager.getConnection (url, pengguna, passwd); STAT = CT.CreateStAtement (); // Buat Objek Stat Rs = Stat.ExecuteQuery (SQL); // Hasil kueri sementara (rs.next ()) {vector hang = vektor baru (); hang.add (rs.getString (1)); hang.add (rs.getString (2)); hang.add (rs.getString (3)); hang.add (rs.getint (4)); hang.add (rs.getString (5)); hang.add (rs.getString (6)); // tambahkan ke rowData.add (hang); }} catch (Exception e) {e.printstacktrace (); } akhirnya {coba {if (rs! = null) {rs.close (); rs = null; } if (stat! = null) {stat.close (); stat = null; } if (ct! = null) {ct.close (); ct = null; }} catch (Exception e) {e.printstacktrace (); }}} // Tambahkan fungsi siswa void public addStu (string sql) {// selesaikan tugas penambahan berdasarkan pernyataan SQL yang dimasukkan oleh pengguna} // Konstruktor kedua memperoleh model data melalui stumodel publik pernyataan SQL (string SQL) {this.init (SQL); } // konstruktor, digunakan untuk menginisialisasi model data saya (tabel) stumodel publik () {this.init (""); } // Dapatkan berapa banyak baris yang ada int getrowcount () {// TODO Metode yang dihasilkan secara otomatis mengembalikan this.rowData.size (); } // Dapatkan berapa banyak kolom yang ada int getColumnCount () {// TODO Metode yang dihasilkan secara otomatis Return this.columnnames.size (); } // Dapatkan data baris dan objek publik kolom getValueat (int row, int column) {// TODO Metode Stub Metode yang Dihasilkan Auto ((vektor) (this.rowdata.get (baris))). Get (kolom); } // Dapatkan nama atribut name public string getColumnName (kolom int) {// TODO Auto-Metode Stub Return (String) this.columnnames.get (kolom); }}Stuadddiag.java:
Paket com.test2; impor javax.swing.jdialog; impor javax.swing.*; impor java.awt.event.actionevent; impor java.awt.event.actionlistener; impor java.sql.statement; impor java.sql.connection; impor java.sql; java.sql.*; kelas publik stuadddiag memperluas jDialog mengimplementasikan ActionListener {// Tentukan komponen ayunan yang saya butuhkan Jlabel JL1, JL2, JL3, JL4, JL5, JL6; JTextfield JF1, JF2, JF3, JF4, JF5, JF6; JPanel JP1, JP2, JP3; Jbutton JB1, JB2; // Pemilik Ghostwriter Parent Window, Judul adalah nama jendela, Modal menentukan bahwa itu adalah jendela pola () atau jendela non-mode public stuadddiag (pemilik bingkai, judul string, modal boolean) {// memanggil metode kelas induk super (pemilik, judul, modal); jl1 = jlabel baru ("nomor studi"); jl2 = jlabel baru ("name"); jl3 = jlabel baru ("jenis kelamin"); jl4 = jlabel baru ("usia"); JL5 = JLabel baru ("rumah"); jl6 = jlabel baru ("sekte"); jf1 = JTextField baru (10); jf2 = JTextField baru (10); JF3 = JTextField baru (10); JF4 = JTextField baru (10); JF5 = JTextField baru (10); jf6 = JTextField baru (10); jb1 = jbutton baru ("add"); jb1.addactionlistener (ini); jb2 = jbutton baru ("batal"); jp1 = jpanel baru (); jp2 = jpanel baru (); jp3 = jpanel baru (); // atur tata letak jp1.setLayout (GridLayout baru (6,1)); jp2.setLayout (GridLayout baru (6,1)); jp3.add (jb1); jp3.add (jb2); jp1.add (jl1); jp1.add (jl2); jp1.add (jl3); jp1.add (jl4); jp1.add (jl5); jp1.add (jl6); jp2.add (jf1); jp2.add (jf2); jp2.add (jf3); jp2.add (jf4); jp2.add (jf5); jp2.add (jf6); this.add (jp1, borderlayout.west); this.add (jp2, borderlayout.center); this.add (jp3, borderlayout.south); this.setsize (300.200); this.setVisible (true); } @Override public void actionPerformed (ActionEvent e) {// TODO Metode yang dihasilkan secara otomatis Stub if (e.getSource () == jb1) {connection ct = null; PSTMT Persiapan PSTMT = NULL; Hasil rs = null; coba {// 1. Muat driver class.forname ("com.mysql.jdbc.driver"); System.out.println ("Dimuat dengan sukses"); // 2. Hubungkan ke database // Tentukan beberapa konstanta string url = "jdbc: mysql: // localhost: 3306/spdb1"; String user = "root"; String passwd = "lfdy"; ct = driverManager.getConnection (url, pengguna, passwd); // Pernyataan yang dikompilasi Objek string strsql = "masukkan ke dalam nilai Stu (?,?,?,?,?,?)"; PSTMT = CT.PrepareStatement (strsql); // Tetapkan objek pstmt.setstring (1, jf1.getText ()); pstmt.setstring (2, jf2.gettext ()); pstmt.setstring (3, jf3.getText ()); pstmt.setstring (4, jf4.getText ()); pstmt.setstring (5, jf5.getText ()); pstmt.setstring (6, jf6.getText ()); PSTMT.ExecuteUpdate (); this.dispose (); // tutup dialog siswa} catch (pengecualian arg1) {arg1.printstacktrace (); } akhirnya {coba {if (rs! = null) {rs.close (); rs = null; } if (pstmt! = null) {pstmt.close (); PSTMT = NULL; } if (ct! = null) {ct.close (); ct = null; }} catch (Exception arg2) {arg2.printstacktrace (); }}}}}}Stuupdiag.java:
Paket com.test2;/** memodifikasi siswa*/impor javax.swing.jdialog; impor javax.swing.*; impor java.awt.event.actionevent; import java.awt.event.actionlistener; impor java.sql.statement; impor java.sql.connection; java.sql.resultset; import java.sql.sql.*; kelas publik stuupdiag memperluas jDialog mengimplementasikan ActionListener {// Tentukan komponen ayunan yang saya butuhkan Jlabel JL1, JL2, JL3, JL4, JL5, JL6; JTextfield JF1, JF2, JF3, JF4, JF5, JF6; JPanel JP1, JP2, JP3; Jbutton JB1, JB2; // pemilik pena-in-the-parent window, judul adalah nama jendela, modal menentukan bahwa itu adalah jendela mode () atau jendela non-mode stuupdiag publik (pemilik bingkai, judul string, modal boolean, stumodel sm, int rownum) {// memanggil metode kelas orang tua super (pemilik, judul, modal); JL1 = JLabel baru ("Nomor Siswa"); jl2 = jlabel baru ("name"); jl3 = jlabel baru ("jenis kelamin"); jl4 = jlabel baru ("usia"); jl5 = jlabel baru ("nama"); jl6 = jlabel baru ("bagian"); jf1 = JTextField baru (10); jf1.setText ((sm.getValueat (rownum, 0)). ToString ()); jf2 = JTextField baru (10); jf2.settext ((string) sm.getValueat (rownum, 1)); jf3 = JTextField baru (10); jf3.setText (sm.getValueat (rownum, 2) .toString ()); jf4 = JTextField baru (10); jf4.setText ((sm.getValueat (rownum, 3)). Tostring ()); jf5 = JTextField baru (10); jf5.settext ((string) sm.getValueat (rownum, 4)); jf6 = JTextField baru (10); jf6.setText ((string) sm.getValueat (rownum, 5)); jb1 = jbutton baru ("memodifikasi"); jb1.addactionlistener (ini); jb2 = jbutton baru ("batal"); jp1 = jpanel baru (); jp2 = jpanel baru (); jp3 = jpanel baru (); // atur tata letak jp1.setLayout (GridLayout baru (6,1)); jp2.setLayout (GridLayout baru (6,1)); jp3.add (jb1); jp3.add (jb2); jp1.add (jl1); jp1.add (jl2); jp1.add (jl3); jp1.add (jl4); jp1.add (jl5); jp1.add (jl6); jp2.add (jf1); jp2.add (jf2); jp2.add (jf3); jp2.add (jf4); jp2.add (jf5); jp2.add (jf6); this.add (jp1, borderlayout.west); this.add (jp2, borderlayout.center); this.add (jp3, borderlayout.south); this.setsize (300.200); this.setVisible (true); } @Override public void actionPerformed (ActionEvent e) {// TODO Metode yang dihasilkan secara otomatis Stub if (e.getSource () == jb1) {connection ct = null; PSTMT Persiapan PSTMT = NULL; Hasil rs = null; coba {// 1. Muat driver class.forname ("com.mysql.jdbc.driver"); System.out.println ("Dimuat dengan sukses"); // 2. Hubungkan ke database // Tentukan beberapa konstanta string url = "jdbc: mysql: // localhost: 3306/spdb1"; String user = "root"; String passwd = "lfdy"; ct = driverManager.getConnection (url, pengguna, passwd); // Pernyataan yang dikompilasi Objek string strsql = "masukkan ke dalam nilai Stu (?,?,?,?,?,?)"; PSTMT = CT.PrepareStatement (strsql); // Tetapkan objek pstmt.setstring (1, jf1.getText ()); pstmt.setstring (2, jf2.gettext ()); pstmt.setstring (3, jf3.getText ()); pstmt.setstring (4, jf4.getText ()); pstmt.setstring (5, jf5.getText ()); pstmt.setstring (6, jf6.getText ()); PSTMT.ExecuteUpdate (); this.dispose (); // tutup dialog siswa} catch (pengecualian arg1) {arg1.printstacktrace (); } akhirnya {coba {if (rs! = null) {rs.close (); rs = null; } if (pstmt! = null) {pstmt.close (); PSTMT = NULL; } if (ct! = null) {ct.close (); ct = null; }} catch (Exception arg2) {arg2.printstacktrace (); }}}}}}Hasil Pengembangan dan Pengujian:
1. Sistem Antarmuka Utama:
2. Kueri berdasarkan Nama:
3. Pilih baris dan hapus:
4. Pilih baris untuk memodifikasi:
5. Klik tombol Tambah untuk menambahkan:
Sistem ini akan terus ditingkatkan. Jika Anda memiliki pertanyaan atau pertukaran teknis, silakan hubungi saya: [email protected]
Untuk informasi lebih lanjut tentang sistem manajemen, silakan klik "Sistem Manajemen Topik Khusus" untuk dipelajari
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.