最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Java對數(shù)據(jù)庫進行基本的查詢和更新操作

 更新時間:2015年10月10日 17:47:03   投稿:goldensun  
這篇文章主要介紹了使用Java對數(shù)據(jù)庫進行基本的查詢和更新操作,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下

數(shù)據(jù)庫查詢

利用Connection對象的createStatement方法建立Statement對象,利用Statement對象的executeQuery()方法執(zhí)行SQL查詢語句進行查詢,返回結(jié)果集,再形如getXXX()的方法從結(jié)果集中讀取數(shù)據(jù)。經(jīng)過這樣的一系列步驟就能實現(xiàn)對數(shù)據(jù)庫的查詢。

【例】Java應(yīng)用程序訪問數(shù)據(jù)庫。應(yīng)用程序打開考生信息表ksInfo,從中取出考生的各項信息。設(shè)考生信息數(shù)據(jù)庫的結(jié)構(gòu)如下:

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驅(qū)動程序
    }
    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; //存放查詢結(jié)果對象
  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, "數(shù)據(jù)庫連接失敗!");
      System.exit ( - 1);
    }
    new Example10_9(connect); //創(chuàng)建對象
  }
}

Java數(shù)據(jù)庫更新
數(shù)據(jù)庫更新操作包括數(shù)據(jù)表創(chuàng)建、刪除、以及數(shù)據(jù)表記錄的增加、刪除、修改等操作。如果利用數(shù)據(jù) SQL命令實現(xiàn),則利用Statement對旬的executeUpdate()方法,執(zhí)行SQL的update語句,實現(xiàn)數(shù)據(jù)表的修改;執(zhí)行SQL的insert語句,實現(xiàn)數(shù)據(jù)表記錄的添加。

例如,在前面數(shù)據(jù)為查詢例子基礎(chǔ)上,再增加對數(shù)據(jù)表的修改和插入。限于篇幅,不再給出完整程序,只給出實現(xiàn)修改和插入的方法。程序可再增設(shè)插入、,,除保存按鈕,通過已有的瀏覽,定位到數(shù)據(jù)表的特定位置,對癰疽記錄進行編輯修改,或插入,或刪除,然后按保存按鈕,完成修改后的數(shù)據(jù)表保存。

下面用代碼說明數(shù)據(jù)表更新的方法。與數(shù)據(jù)表連接時,需指定獲得的ResultSet 對象是可更新的。

  stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

相關(guān)文章

  • 利用Java實現(xiàn)圖片馬賽克效果

    利用Java實現(xiàn)圖片馬賽克效果

    馬賽克效果是一種常見的圖像處理技術(shù),通過將圖像劃分為多個小塊并對每個小塊進行平均色處理,模擬馬賽克的效果,在本項目中,我們將使用Java的Swing庫和圖像處理技術(shù)來實現(xiàn)圖片的馬賽克特效,需要的朋友可以參考下
    2025-02-02
  • SpringSecurity請求授權(quán)規(guī)則配置與注解詳解

    SpringSecurity請求授權(quán)規(guī)則配置與注解詳解

    這篇文章主要介紹了SpringSecurity請求授權(quán)規(guī)則配置與注解詳解,我們常使用@Secured與@PreAuthorize兩個注解在進入方法前進行角色、權(quán)限的控制,進入方法前數(shù)據(jù)的過濾@PreFilter注解偶爾會看到,需要的朋友可以參考下
    2023-12-12
  • Java基礎(chǔ)之StringBuffer詳解

    Java基礎(chǔ)之StringBuffer詳解

    這篇文章主要介紹了Java基礎(chǔ)之StringBuffer詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • java(jdk)環(huán)境變量配置(XP、win7、win8)圖文教程詳解

    java(jdk)環(huán)境變量配置(XP、win7、win8)圖文教程詳解

    對于初學(xué)java的同學(xué)來說,第一件事不是寫hello world,而是搭建好java開發(fā)環(huán)境,下載jdk,安裝,配置環(huán)境變量。這些操作在xp、win7、win8不同的操作系統(tǒng)里面配置不太一樣,下面通過本文給大家介紹如何在上面不同操作系統(tǒng)下配置
    2017-03-03
  • Springboot如何利用攔截器攔截請求信息收集到日志詳解

    Springboot如何利用攔截器攔截請求信息收集到日志詳解

    一些系統(tǒng)經(jīng)常需要關(guān)注用戶請求的具體信息,如用戶信息、請求參數(shù)、響應(yīng)結(jié)果等等,在SpringBoot應(yīng)用中可通過攔截器的方式統(tǒng)一處理,下面這篇文章主要給大家介紹了關(guān)于Springboot如何利用攔截器攔截請求信息收集到日志的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Java中內(nèi)存分配的幾種方法

    Java中內(nèi)存分配的幾種方法

    本文主要介紹Java中幾種分配內(nèi)存的方法。我們會看到如何使用sun.misc.Unsafe來統(tǒng)一操作任意類型的內(nèi)存。以前用C語言開發(fā)的同學(xué)通常都希望能在Java中通過較底層的接口來操作內(nèi)存,他們一定會對本文中要講的內(nèi)容感興趣
    2014-03-03
  • Spring Boot實戰(zhàn)之?dāng)?shù)據(jù)庫操作的示例代碼

    Spring Boot實戰(zhàn)之?dāng)?shù)據(jù)庫操作的示例代碼

    本篇文章主要介紹了Spring Boot實戰(zhàn)之?dāng)?shù)據(jù)庫操作的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • maven?scope?provided和runtime的例子說明

    maven?scope?provided和runtime的例子說明

    這篇文章主要介紹了maven?scope?provided和runtime的例子說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • SpringBoot+Vue+Redis實現(xiàn)單點登錄(一處登錄另一處退出登錄)

    SpringBoot+Vue+Redis實現(xiàn)單點登錄(一處登錄另一處退出登錄)

    小編接到一個需求,需要實現(xiàn)用戶在瀏覽器登錄后,跳轉(zhuǎn)到其他頁面,當(dāng)用戶在其它地方又登錄時,前面用戶登錄的頁面退出登錄,這篇文章主要介紹了SpringBoot+Vue+Redis實現(xiàn)單點登錄,需要的朋友可以參考下
    2019-12-12
  • 改變JAVA窗體屬性的操作方法

    改變JAVA窗體屬性的操作方法

    在本篇內(nèi)容里小編給大家詳細分析了關(guān)于改變JAVA窗體屬性的操作方法和步驟,需要的朋友們學(xué)習(xí)下。
    2018-12-12

最新評論

长宁区| 灵川县| 吉木萨尔县| 囊谦县| 和平县| 宜兰市| 拜城县| 温宿县| 丁青县| 翁牛特旗| 娄底市| 永川市| 光山县| 益阳市| 东至县| 东辽县| 牙克石市| 平顺县| 吴旗县| 沈丘县| 晋中市| 甘谷县| 英德市| 胶州市| 承德市| 遂溪县| 依安县| 河北省| 会昌县| 浮山县| 大新县| 手游| 凭祥市| 屯留县| 信宜市| 苏尼特右旗| 霞浦县| 腾冲县| 汉沽区| 即墨市| 平邑县|