Недавно я изучаю Java и базу данных. Я помню систему управления студентами, которую я писал ранее, которая была загружена из Интернета и была небрежной. Мне нечего было делать, поэтому я сам написал, но функции не выполняли много функций.
Язык развития: Java; Среда развития: MySQL, Java; Инструменты разработки: Eclipse
Чтобы развить этот случай, вы должны сначала иметь среду разработки Java и MySQL на компьютере, среду разработки Java и строительство MySQL, поэтому я больше не буду описывать это. Если вам это нужно, пожалуйста, свяжитесь со мной со следующей контактной информацией: [email protected]
В это время система относительно проста: в базе данных есть только одна таблица: Stu; Функция: может добавить, удалить и изменить студентов.
Шаги развития:
1. Создайте таблицы в базе данных:
Создать таблицу Stu (Stuid String, Stuname String, Stusex String, Stuage Int, Stujg String, Stemept sring);
2. Код Java в основном состоит из четырех классов:
Test3 содержит основную функцию; Stumodel используется для обновления и отображения базы данных; Stuadddiag используется для добавления функций считывателя; Stuupdiag используется для изменения информации о студентах. Конкретный код заключается в следующем:
Тест3.java:
Импорт javax.swing.*; импортировать java.util.*; импорт java.awt.*; импортировать java.awt.event.*; import java.sql.concection; импорт java.sql.driver; импорт java.sql.drivermanager; импорт java.sql.predstatement; java.sql.statement; public class test3 расширяет JFrame реализует ActionListener {// определить некоторые элементы управления JPanel JP1, JP2; Jlabel JL1, JL2; Jbutton JB1, JB2, JB3, JB4; JTable JT; JScrollpane JSP; JTextfield JTF; Stumodel SM; // Определите операцию переменной stat = null; Подготовлено PS; Соединение Ct = null; Результат RS = NULL; public static void main (string [] args) {test3 test3 = new test3 (); } // Constructor public test3 () {jp1 = new jPanel (); jtf = new JTextfield (10); jb1 = new jbutton ("запрос"); jb1.addactionListener (это); jl1 = new jlabel («Пожалуйста, введите имя:»); jp1.add (jl1); jp1.add (jtf); jp1.add (jb1); jb2 = new jbutton ("добавить"); JB2.AddactionListener (это); jb3 = new jbutton ("modify"); JB3.AddactionListener (это); jb4 = new jbutton ("delete"); JB4.AddactionListener (это); jp2 = new jpanel (); JP2.Add (JB2); JP2.Add (JB3); JP2.Add (JB4); // Создать модель объекта sm = new Stumodel (); // инициализировать jt = new jtable (sm); jsp = new jscrollpane (jt); // положить jsp в jframe this.add (jsp); this.add (jp1, "North"); this.add (jp2, "south"); это. setize (600, 400); //this.setlocation(300, 200); this.setDefaultCloseoperation (exit_on_close); this.setvisible (true); } public void actionPerformed (actionEvent arg0) {// определить, какая кнопка нажимается, если (arg0.getSource () == jb1) {System.out.println («Пользователь хочет запросить ...»); // Поскольку данные таблицы инкапсулируются в Stumodel, легче завершить имя строки запроса = this.jtf.getText (). Trim (); // Написать оператор SQL string sql = "select * from stu, где Stuname = '"+name+"'"; // Создание класса модели данных и обновление SM = New Stumodel (SQL); // Обновление JTable JT.SetModel (SM); } // 1. Всплыть интерфейс добавить else if (arg0.getsource () == jb2) {System.out.println ("Add ..."); Stuadddiag sa = new Stuadddiag (это, «добавить студента», true); // снова получить новую модель данных, sm = new Stumodel (); jt.setmodel (sm); } else if (arg0.getSource () == jb4) {// 2. Удалить запись // 1. Получите студенческий идентификатор int rownum = this.jt.getSelectedRow (); // getSelectedRow вернется в строку в пользовательской точке // Если пользователь не выбрана, вернуть -1 if (rownum == -1) {// rusm joptionpane.showmessagegedialog (это, «пожалуйста, выберите строку»); возвращаться ; } // Получить академический идентификационный строку stuid = (string) sm.getvalueat (rownum, 0); System.out.println ("id:"+stuid); // Подключите базу данных и выполните задачу удаления Try {// 1. Загрузить Driver Class.forname ("com.mysql.jdbc.driver"); // 2. Подключиться к строке базы данных url = "jdbc: mysql: // localhost: 3306/spdb1"; String user = "root"; String passwd = "lfdy"; ct = DriverManager.getConnection (URL, пользователь, PassWD); System.out.println («Соединение успешно»); ps = ct.prepareStatement ("удалить из Stu, где Stuid =?"); Ps.setString (1, Stuid); ps.executeupdate (); } catch (Exception e) {e.printstackTrace (); } наконец {try {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 = new Stumodel (); // Обновление JTable JT.SetModel (SM); } else if (arg0.getSource () == jb3) {System.out.println ("11111"); // 3. Пользователи хотят изменить int rownum = this.jt.getSelectedRow (); if (rownum == -1) {// Приглашение joptionpane.showmessageDialog (это, «Пожалуйста, выберите ряд»); возвращаться ; } // Показать Dialog System.out.println ("12435"); Stuupdiag su = new Stuupdiag (это, «модифицировать академический», верно, sm, rownum); sm = new Stumodel (); jt.setmodel (sm); }}}Stumodel.java:
/** Это моя модель таблицы STU* Вы можете инкапсулировать все операции на таблицах студентов в этот класс*/package com.test2; import java.sql.connection; импорт java.sql.drivermanager; импорт java.sql.resultset; импорт java.sql.statement; импорт java. Stumodel extends AbstractTableModel {// RowData сохраняет данные строки, ColumnNames сохраняет имена имен столбцов Vector RowData, ColumnNames; // Определите стат операционной операции, которая подключается к базе данных = null; Соединение Ct = null; Результат RS = NULL; // инициализировать public void init (String SQL) {if (sql.equals ("")) {sql = "select * from stu"; } // Intermediate // Установить имя столбца ColumnNames = new Vector (); colunnames.add ("номер школы"); columnnames.add ("name"); colunnames.add («пол»); colunnames.add ("age"); columnnames.add ("name"); columnnames.add ("name"); columnnames.add ("name"); colunnames.add ("секта"); // rowdata хранит несколько строк rowdata = new Vector (); Попробуйте {// 1. Загрузить драйвер class.forname ("com.mysql.jdbc.driver"); System.out.println («Загрузка успешно»); // 2. Подключитесь к базе данных // Определите несколько констант String url = "jdbc: mysql: // localhost: 3306/spdb1"; String user = "root"; String passwd = "lfdy"; ct = DriverManager.getConnection (URL, пользователь, PassWD); stat = ct.createStatement (); // Создать объект stat rs = stat.executequery (sql); // recery результат while (rs.next ()) {vector hang = new Vector (); 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)); // добавить в rowdata.add (hang); }} catch (Exception e) {e.printstackTrace (); } наконец {try {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 (); }}} // Добавить функцию студента public void AddStu (String SQL) {// Завершить задачу с добавлением на основе оператора SQL, введенного пользователем} // Второй конструктор получает модель данных через переданный оператор SQL Public Stumodel (String SQL) {this.init (sql); } // Конструктор, используемый для инициализации моей модели данных (таблица) public Stumodel () {this.init (""); } // Получить, сколько строк существует int getRowCount () {// todo автоматическое сгенерированное метод retub return this.rowdata.size (); } // Получить, сколько столбцов существует int getColumnCount () {// TODO Автогенерированный метод QUEB return this.columnnames.size (); } // Получить данные строки и столбца публичного объекта getValueat (int row, int column) {// todo с генерируемым автоматическим методом return ((vector) (this.rowdata.get (row))). Get (column); } // Получить имя атрибута public String getColumnName (int column) {// todo автоматическое сгенерированное метод return (string) this.columnnames.get (column); }}Stuadddiag.java:
пакет com.test2; import javax.swing.jdialog; import javax.swing.*; import java.awt.event.actionevent; import java.awt.event.actionListener; импорт java.sql.statement; импорт Java.sql.Connection; импорт java.sql.drivermanager; java.sql.*; открытый класс Stuadddiag расширяет Jdialog реализует ActionListener {// определять компонент свинга, мне нужен Jlabel JL1, JL2, JL3, JL4, JL5, JL6; JTextfield JF1, JF2, JF3, JF4, JF5, JF6; JPanel JP1, JP2, JP3; Jbutton JB1, JB2; // Владелец родительского окна Ghostwriter, название-это имя окна, Modal указывает, что это шаблон Window () или немодовое окно Public Stuadddiag (владелец кадра, заголовок строки, логический модал) {// Вызов метода родительского класса Super (владелец, заголовок, модальный); jl1 = new jlabel ("номер исследования"); jl2 = new jlabel ("name"); jl3 = new jlabel («пол»); jl4 = new jlabel ("Age"); jl5 = new jlabel ("Home"); jl6 = new jlabel ("секта"); JF1 = новый JTextfield (10); JF2 = новый JTextField (10); JF3 = новый JTextfield (10); JF4 = новый JTextfield (10); JF5 = новый JTextField (10); JF6 = новый JTextField (10); jb1 = new jbutton ("добавить"); jb1.addactionListener (это); jb2 = new jbutton ("cancel"); jp1 = new jpanel (); jp2 = new jpanel (); jp3 = new jpanel (); // установить макет jp1.setlayout (new Gridlayout (6,1)); jp2.setlayout (new Gridlayout (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); это. Setize (300 200); this.setvisible (true); } @Override public void actionperformed (actionEvent e) {// todo автоматическое сгенерированное метод if (e.getSource () == jb1) {connection ct = null; Подготовленное Statatement pstmt = null; Результат RS = NULL; Попробуйте {// 1. Загрузить драйвер class.forname ("com.mysql.jdbc.driver"); System.out.println ("загружен успешно"); // 2. Подключитесь к базе данных // Определите несколько констант String url = "jdbc: mysql: // localhost: 3306/spdb1"; String user = "root"; String passwd = "lfdy"; ct = DriverManager.getConnection (URL, пользователь, PassWD); // Скомпилированный оператор строки объекта strsql = "Вставьте в значения stu (?,?,?,?,?,?)"; pstmt = ct.preparestatement (strsql); // назначить объект 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 (); // закройте диалог студента} catch (Exception arg1) {arg1.printstacktrace (); } наконец {try {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:
пакет com.test2;/** Модифицировать студентов*/import javax.swing.jdialog; импорт javax.swing.*; import java.awt.event.actionevent; импорт java.awt.event.actionlistener; импорт java.sql.statement; импорт java.sql.connection; импорт. java.sql.resultset; import java.sql.sql.*; открытый класс Stuupdiag расширяет Jdialog реализует ActionListener {// Определить компонент свинга, мне нужен Jlabel JL1, JL2, JL3, JL4, JL5, JL6; JTextfield JF1, JF2, JF3, JF4, JF5, JF6; JPanel JP1, JP2, JP3; Jbutton JB1, JB2; // Владелец Окно Пелл-в-Паритель, заголовок-это имя окна, MODAL Указывает, что это режим Window () или немодовое окно Public Stuupdiag (владелец кадра, заголовок строки, логический модал, Stumodel SM, Int Rownum) {// вызывающий метод родительского класса Super (владелец, заголовок, модал); jl1 = new jlabel ("номер студента"); jl2 = new jlabel ("name"); jl3 = new jlabel («пол»); jl4 = new jlabel ("Age"); jl5 = new jlabel ("name"); jl6 = new jlabel ("раздел"); jf1 = new jtextfield (10); jf1.settext ((sm.getvalueat (rownum, 0)). toString ()); jf2 = new jtextfield (10); jf2.settext ((string) sm.getvalueat (rownum, 1)); jf3 = new jtextfield (10); jf3.settext (sm.getvalueat (rownum, 2) .toString ()); jf4 = new jtextfield (10); jf4.settext ((sm.getvalueat (rownum, 3)). toString ()); jf5 = new jtextfield (10); jf5.settext ((string) sm.getvalueat (rownum, 4)); jf6 = new jtextfield (10); jf6.settext ((string) sm.getvalueat (rownum, 5)); jb1 = new jbutton ("modify"); jb1.addactionListener (это); jb2 = new jbutton ("cancel"); jp1 = new jpanel (); jp2 = new jpanel (); jp3 = new jpanel (); // установить макет jp1.setlayout (new Gridlayout (6,1)); jp2.setlayout (new Gridlayout (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); это. Setize (300 200); this.setvisible (true); } @Override public void actionperformed (actionEvent e) {// todo автоматическое сгенерированное метод if (e.getSource () == jb1) {connection ct = null; Подготовленное Statatement pstmt = null; Результат RS = NULL; Попробуйте {// 1. Загрузить драйвер class.forname ("com.mysql.jdbc.driver"); System.out.println ("загружен успешно"); // 2. Подключитесь к базе данных // Определите несколько констант String url = "jdbc: mysql: // localhost: 3306/spdb1"; String user = "root"; String passwd = "lfdy"; ct = DriverManager.getConnection (URL, пользователь, PassWD); // Скомпилированный оператор строки объекта strsql = "Вставьте в значения stu (?,?,?,?,?,?)"; pstmt = ct.preparestatement (strsql); // назначить объект 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 (); // закройте диалог студента} catch (Exception arg1) {arg1.printstacktrace (); } наконец {try {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 (); }}}}}}Результаты разработки и тестирования:
1. Основной интерфейс системы:
2. Запрос по имени:
3. Выберите строку и удалите:
4. Выберите строку для изменения:
5. Нажмите кнопку «Добавить», чтобы добавить:
Эта система будет по -прежнему улучшаться. Если у вас есть какие -либо вопросы или технические обмены, пожалуйста, свяжитесь со мной: [email protected]
Для получения дополнительной информации о системе управления, пожалуйста, нажмите «Специальная тема управления», чтобы узнать
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.