ホームページ >Java >&#&チュートリアル >データベースに対する Java のクエリおよび更新操作の詳細な説明

データベースに対する Java のクエリおよび更新操作の詳細な説明

怪我咯
怪我咯オリジナル
2017-07-02 10:24:512806ブラウズ

この記事では主に、データベース上で基本的なクエリと更新操作を実行するための Java の使用方法を紹介します。これは、Java 入門の基本的な知識です。必要な方は、

データベース クエリ

の使用を参照してください。 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 JFrame implements ActionListener{
  public static Connection connectByJdbcodbc(String url, String username,String password){
    Connection con = null;
    try{
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载ODBC驱动程序
    }
    catch (Exception e){
      e.printStackTrace();
      return null; //加载失败,连接不成功
    }
    try{
      con = DriverManager.getConnection(url, username, password);
    }
    catch (SQLException e){
      e.printStackTrace();
      return null; //连接失败
    }
    return con; //连接成功
  }
  String title[] ={"考号", "姓名", "成绩", "地址", "简历"};
  JTextField txtNo = new JTextField(8);
  JTextField txtName = new JTextField(10);
  JTextField txtScore = new JTextField(3);
  JTextField txtAddr = new JTextField(30);
  JTextArea txtresume = new JTextArea();
  JButton prev = new JButton("前一个");
  JButton next = new JButton("后一个");
  JButton first = new JButton("第一个");
  JButton last = new JButton("最后一个");
  Statement sql; //SQL语句对象
  ResultSet rs; //存放查询结果对象
  Example10_9(Connection connect){
    super("考生信息查看窗口");
    setSize(450, 350);
    try{
      sql = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
      rs = sql.executeQuery("SELECT * FROM ksInfo");
      Container 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));
        p[i].add(new JLabel(title[i]));
      }
      p[0].add(txtNo);
      p[1].add(txtName);
      p[2].add(txtScore);
      p[3].add(txtAddr);
      JPanel p1 = new JPane(new GridLayout94, 1, 0, 8));
      JScrollPane jsp = new 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 = new 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(next);
      p3.add(first);
      p3.add(last);
      prev.addActionListener(this);
      next.addActionListener(this);
      first.addActionListener(this);
      last.addActionlistener(this);
      rs.first();
      readRecord();
    }
    catch (Exception e){
      e.printStackTrace():
    }
    setVisible(ture);
  }
  public void modifyRecord(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);
      rs = sql.executeQuery("SELECT * FROM ksInfo");
      Container con = 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);
      p[1].add(txtName);
      p[2].add(txtScore);
      p[3].add(txtAddr);
      Jpanel p1 = new Jpane(new GridLayout(4, 1, 0, 8));
      JScrollPane jsp = new JScrollPane(txtResume,
        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
        JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
      jsp.setPreferredSize (new dimension(300, 60));
      for (int i = 0; i < 4; i++){
        p1.add(p[i]);
      }
      Jpanel p2 = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 0));
      p2.add(new JLableI(title[4]));
      p2.add(jsp);
      JPanel p3 = new JPanel();
      p3.add(prev);
      p3.add(next);
      p3.add(first);
      p3.add(last);
      prev.addActionListener(this);
      next.addActionListener(this);
      first.addActionListenerIthis);
      last.addActionListener(this);
      rs.first();
      readRecord();
    }
    catch (Exception e){
      e.printStackTrace();
    }
    setVisible(true);
  }
  boolean 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;
    }
    return true;
  }
  public void actionPerformed(ActionEvent e){
    try{
      if (e.getSource() == prev)rs.previous();
      else if (e.getSource() == next)rs.next();
      else if (e.getSource() == first)rs.first();
      else if (e.getSource() == last)rs.last(); readRecord();
    }
    catch (Exception e2){}
  }
  public 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", "xia", "1234")) == null){
      JOptionPane.showMessageDialog(null, "数据库连接失败!");
      System.exit ( - 1);
    }
    new Example10_9(connect); //创建对象
  }
}

Java データベースの更新データベースの更新操作には、データ テーブルの作成、
削除、およびデータ テーブル レコードの追加、削除、変更などの操作が含まれます。 。データ SQL コマンドを使用して実装されている場合は、Statement ペアのexecuteUpdate() メソッドを使用して SQL update ステートメントを実行し、データ テーブルを変更します。SQL 挿入ステートメントを実行してデータ テーブル レコードを追加します。

たとえば、前のデータクエリの例に基づいて、データテーブルに変更と挿入を追加します。スペースの制限のため、完全なプログラムは示されず、変更と挿入を実装する方法のみが示されます。プログラムでは、挿入ボタン、保存ボタンを追加し、既存の参照を通じてデータ テーブルの特定の位置を見つけ、カーバンクル レコードを編集、変更、挿入、または削除し、保存ボタンを押して変更されたデータ テーブルを完成させることができます。 。 保存。

次のコードは、データテーブルを更新する方法を説明します。データ テーブルに接続するときは、取得した ResultSet オブジェクトが更新可能であることを指定する必要があります。

りー

以上がデータベースに対する Java のクエリおよび更新操作の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。