Запрос к базе данных
Используйте метод createStatement объекта Connection для создания объекта Statement, используйте метод ExecuteQuery() объекта Statement для выполнения оператора SQL-запроса и возврата набора результатов, а затем считайте данные из набора результатов с помощью такого метода, как получитьХХХ(). После такой серии шагов можно реализовать запрос к базе данных.
[Пример] Приложение Java обращается к базе данных. Приложение открывает таблицу информации о кандидате ksInfo и извлекает различную информацию о кандидате. Предположим, что структура информационной базы данных кандидатов следующая:
импортировать java.awt.*;импортировать java.awt.event.*;импортировать javax.swing.*;импортировать java.util.*;импортировать java.sql.*;публичный класс Строковый URL, Строковое имя пользователя, Строковый пароль) {Соединение con = null {; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //Загрузка драйвера ODBC} catch (Exception e){ e.printStackTrace(); return null; //Загрузка не удалась, соединение не удалось} try { con = DriverManager .getConnection(url, имя пользователя, пароль); } catch (SQLException e) { e.printStackTrace(); return null; //Ошибка соединения} return con; String title[] = {"Номер экзамена", "Имя", "Оценка", "Адрес", "Резюме"}; JTextField txtNo = new JTextField(8); JTextField txtName = new JTextField(10); JTextField (3); JTextField txtAddr = новый JTextField (30); JTextArea txtresume = новая JTextArea(); JButton prev = новая JButton("предыдущая"); JButton next = новая JButton("следующая"); JButton first = новая JButton("first"); ); Оператор sql; // Объект оператора SQL ResultSet rs; //Результат запроса хранилища objectExample10_9(Connection Connect){ super("Окно просмотра информации о кандидате"); 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[ я] = новый JPane(новый FlowLayout(FlowLayout.LEFT, 8, 0)); p[i].add(новый) JLabel(title[i])); } p[0].add(txtNo); p[1].add(txtName); p[2].add(txtScore); p[3].add(txtAddr); JPanel p1 = новый JPane (новый GridLayout94, 1, 0, 8) JScrollPane jsp = новый); JScrollPane(txtResume, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); jsp.setPreforredSize(new Dimension(300, 60); for (int i = 0; i < 4; i++) { p1.add(p[i]); } JPanel p2 = новый JPanel(new FlowLayout(FlowLayout.LEFT, 10, 0); p2.add(new JLabel(title[4])); p2.add(jsp); Jpanel p3 = new Jpanel(); p3.add(prev); p3.add(следующий); p3.add(первый); p3.add(последний); next.addActionListener(this); first.addActionListener(this); Last.addActionlistener(this); rs.first(); readRecord(); } catch (Exception e) { e.printStackTrace(): } setVisible(ture); } Public voidifymodifyRecord(Connection Connect){ String stuNo = (String)JOptionPane.showInputDialog(null, «Введите номер экзамена кандидата», «Введите диалоговое окно номера экзамена», JOptionPane.PLAIN_MESSAGE, null, null, «»); try { sql = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); .executeQuery("SELECT * FROM ksInfo Container" = getContentPane(); con.setLayout(new 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].add(new JLabel(title[i])); p[0].add(txtNo); , 1, 0, 8)); JScrollPane jsp = новый JScrollPane(txtResume, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); jsp.setPreferredSize (новое измерение (300, 60)); for (int i = 0; i < 4; i++) { p1.add(p[i]] Jpanel p2 = новый JPanel (новый FlowLayout(FlowLayout.LEFT, 10, 0)); p2.add(new JLableI(title[4])); p2.add(jsp); JPanel p3 = new JPanel(); p3.add(prev); добавить (следующий); p3.add (первый); p3.add (последний); prev.addActionListener (это); next.addActionListener(this); first.addActionListenerIthis); readRecord(){ try{ txtNo.setText(rs.getString("Номер экзамена")); txtName.setText(rs.getString("имя")); txtScore.setText(rs.getString("оценка")); txtAddr.setText(rs.getString("адрес")); txtResume.setText(rs.getString( «Возобновить»); } catch (SQLException e) { e.printStackTrace(); return false; true } public void actionPerformed (ActionEvent e) { try { if (e.getSource() == prev)rs.previous() else if (e.getSource() == next)rs.next(); (e.getSource() == first)rs.first(); else if (e.getSource() ==last)rs.last(); readRecord(); static void main(String args[]){ Connection Connect = NULL; JFrame .setDefaultLookAndFeeDecorated(true); Font Font = new Font("JFrame", Font.PLAIN, 14); if ((connect =connectByJdbcOdbc("jdbc:odbc) :redsun", "ся", "1234")) == null){ JOptionPane.showMessageDialog(null, «Не удалось подключиться к базе данных!» System.exit (- 1); } new example10_9(connect); //Создать объект}}
Обновление базы данных Java <br />Операции обновления базы данных включают создание, удаление и добавление, удаление и изменение таблиц данных. Если это реализовано с использованием команд SQL для данных, используйте методexecutUpdate() пары Statement, чтобы выполнить оператор обновления SQL для изменения таблицы данных, выполните оператор вставки SQL для добавления записей таблицы данных;
Например, на основе предыдущего примера запроса данных добавьте изменение и вставку в таблицу данных. Из-за нехватки места полная программа не будет представлена, а будут представлены только методы модификации и вставки. Программа может добавлять кнопки «Вставить» и «Сохранить». В существующем режиме просмотра найдите определенную позицию таблицы данных, отредактируйте, измените, вставьте или удалите запись карбункула, а затем нажмите кнопку «Сохранить», чтобы завершить изменение таблицы данных. . сохранять.
Следующий код объясняет, как обновить таблицу данных. При подключении к таблице данных необходимо указать, что полученный объект ResultSet является обновляемым.
stmt = Connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);