データベースクエリ
Connection オブジェクトの createStatement メソッドを使用して Statement オブジェクトを作成し、Statement オブジェクトのexecuteQuery() メソッドを使用して SQL クエリ ステートメントを実行して結果セットを返し、次に、次のようなメソッドを使用して結果セットからデータを読み取ります。 getXXX()。このような一連のステップを経て、データベースへのクエリが実現されます。
【例】Javaアプリケーションがデータベースにアクセスします。アプリケーションは、候補者情報テーブル ksInfo を開き、候補者に関するさまざまな情報を取得します。候補者情報データベースの構造は次のとおりであるとします。
import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.sql.*;public class Example10_9 extends JFrameimplements ActionListener{ public static Connection connectByJdbcodbc(文字列 URL、文字列ユーザー名、文字列パスワード){ 接続 con = null; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //ODBC ドライバーの読み込み} catch (Exception e){ e.printStackTrace() //読み込みに失敗し、接続に失敗しました} try{ con = DriverManager; .getConnection(url, ユーザー名, パスワード); } catch (SQLException e){ e.printStackTrace(); //接続に失敗しました} return con; String title[] ={"受験番号", "氏名", "住所", "履歴書"}; JTextField txtNo = new JTextField(8) = new JTextField txtScore = new JTextField(3); JTextField txtAddr = 新しい JTextField(30); JTextArea txtresume = new JButton prev = new JButton("previous"); next = new 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); ("SELECT * FROM ksInfo"); コンテナ con = getContentPane(); con.setLayout(new BorderLayout(0, 6); JPanel p[] = new JPanel[4]; for (int i = 0; i < 4; i++){ p[ i] = new JPane(new FlowLayout(FlowLayout.LEFT, 8, 0)); JLabel(タイトル[i])); } p[0].add(txtName); p[3].add(txtAddr); JPanel p1 = 新しい JPane(new 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(最後); next.addActionListener(this); last.addActionlistener(this); } catch (Exception e){ e.printStackTrace(): } public voidmodifyRecord(Connectionconnect){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 コンテナ con =") getContentPane(); con.setLayout(new Boarderlayout(0, 6)); JPanel p[] = new JPane[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); p[1].add(txtScore); p[3].add(txtAddr); , 1, 0, 8)); JScrollPane jsp = new JScrollPane(txtResume, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); jsp.setPreferredSize (新しい次元(300, 60)); (int i = 0; i < 4; i++){ p1.add(p[i]) }新しいJPパネル(新しいFlowLayout(FlowLayout.LEFT, 10, 0)); p2.add(new JLableI(title[4])); p2.add(jsp);追加(次); p3.追加(最後); next.addActionListener(this); last.addActionListener(); } catch (Exception e){ } setVisible(true); readRecord(){ try{ txtNo.setText(rs.getString("受験番号")); txtName.setText(rs.getString("名前")); txtScore.setText(rs.getString("スコア")); txtAddr.setText(rs.getString("アドレス")); "再開")); } catch (SQLException e){ e.printStackTrace() } return; 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(); } catch (Exception e2){} } static void main(String args[]){ 接続接続 = null; JFrame .setDefaultLookAndFeeDecorated(true); フォント フォント = new Font("JFrame", Font.PLAIN, 14); if ((connect =connectByJdbc:odbc); :redsun", "xia", "1234")) == null){ JOptionPane.showMessageDialog(null, "データベース接続に失敗しました!"); System.exit ( - 1) } new Example10_9(connect);
Java データベース更新<br />データベース更新操作には、データ テーブルの作成、削除、データ テーブル レコードの追加、削除、変更が含まれます。データ SQL コマンドを使用して実装されている場合は、Statement ペアのexecuteUpdate() メソッドを使用して SQL update ステートメントを実行し、データ テーブルを変更します。SQL 挿入ステートメントを実行してデータ テーブル レコードを追加します。
たとえば、前のデータ クエリの例に基づいて、データ テーブルに変更と挿入を追加します。スペースの制限のため、完全なプログラムは示されず、変更と挿入を実装する方法のみが示されます。プログラムでは、挿入ボタン、保存ボタンを追加し、既存の参照を通じてデータ テーブルの特定の位置を見つけ、カーバンクル レコードを編集、変更、挿入、または削除し、保存ボタンを押して変更されたデータ テーブルを完成させることができます。 。 保存。
次のコードは、データ テーブルを更新する方法を説明します。データ テーブルに接続するときは、取得した ResultSet オブジェクトが更新可能であることを指定する必要があります。
stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);