Maison > Java > javaDidacticiel > Explication détaillée des opérations de requête et de mise à jour de Java sur la base de données

Explication détaillée des opérations de requête et de mise à jour de Java sur la base de données

怪我咯
Libérer: 2017-07-02 10:24:51
original
2804 Les gens l'ont consulté

Cet article présente principalement l'utilisation de Java pour effectuer des opérations de requête et de mise à jour de base sur la base de données. C'est la connaissance de base pour apprendre Premiers pas avec Java Les amis qui en ont besoin peuvent s'y référer

Requête de base de données

Utilisez la méthode createStatement de l'objet Connection pour créer un objet Statement, utilisez la méthode executeQuery() de l'objet Statement pour exécuter l'instruction de requête SQL et renvoyer l'ensemble de résultats, puis utilisez la méthode getXXX() à partir de Les données sont lues dans l'ensemble de résultats. Après une telle série d’étapes, la requête vers la base de données peut être réalisée.

【Exemple】L'application Java accède à la base de données. L'application ouvre la table d'informations sur le candidat ksInfo et récupère diverses informations sur le candidat. Supposons que la structure de la base de données d'informations sur les candidats est la suivante :



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); //创建对象
  }
}
Copier après la connexion

Mise à jour de la base de données Java Les opérations de mise à jour de la base de données incluent la création de tables de données ,
supprimer et des opérations telles que l'ajout, la suppression et la modification d'enregistrements de table de données. S'il est implémenté à l'aide de commandes SQL de données, utilisez la méthode executeUpdate() de la paire Statement pour exécuter l'instruction de mise à jour SQL afin de modifier la table de données ; exécutez l'instruction d'insertion SQL pour ajouter des enregistrements de table de données.

Par exemple, sur la base de l'exemple de requête de données précédent, ajoutez une modification et une insertion à la table de données. En raison du manque de place, le programme complet ne sera pas donné, seulement les méthodes pour mettre en œuvre la modification et l'insertion. Le programme peut ajouter des boutons d'insertion et d'enregistrement via la navigation existante, localiser une position spécifique de la table de données, éditer, modifier, insérer ou supprimer l'enregistrement de l'anthrax, puis appuyer sur le bouton Enregistrer pour compléter la table de données modifiée. . sauvegarder.

Le code suivant explique comment mettre à jour la table de données. Lors de la connexion à une table de données, vous devez préciser que l'objet ResultSet obtenu est modifiable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal