使用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的insert语句,实现数据表记录的添加。

例如,在前面数据为查询例子基础上,再增加对数据表的修改和插入。限于篇幅,不再给出完整程序,只给出实现修改和插入的方法。程序可再增设插入、,,除保存按钮,通过已有的浏览,定位到数据表的特定位置,对痈疽记录进行编辑修改,或插入,或删除,然后按保存按钮,完成修改后的数据表保存。

下面用代码说明数据表更新的方法。与数据表连接时,需指定获得的ResultSet 对象是可更新的。

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

相关推荐

  • java抓取12306信息实现火车余票查询示例

    最近在弄一个微信的公众帐号,涉及到火车票查询,之前用的网上找到的一个接口,但只能查到火车时刻表,12306又没有提供专门的查票的接口.今天突然想起自己直接去12306上查询,抓取查询返回的数据包,这样就可以得到火车票的信息.这里就随笔记一下获取12306余票的过程. 首先,我用firefox浏览器上12306查询余票.打开firefox的Web控制台,选上网络中的"记录请求和响应主体" 然后输入地址日期信息之后点击网页上的查询按钮,就能在Web控制台下看到网页请求的地址了: 就是图片中

  • java操作mysql入门代码实例(含插入、更新和查询)

    复制代码 代码如下: import java.sql.*; public class mysql {    public static String url = "jdbc:mysql://localhost:3306/test";//characterEncoding=GBK    public static String username = "root";    public static String password = "root";

  • java使用淘宝API读写json实现手机归属地查询功能代码

    一般查询手机归属地内容应该很好用json格式保存,在网上找到了淘宝的归属地API,并下了处理json相关的jar包,做了这个手机归属地查询功能 复制代码 代码如下: package com.think.java; import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.MalformedURLException;import java.net

  • java操作mongodb基础(查询 排序 输出list)

    复制代码 代码如下: package com.infomorrow.webroot; import java.util.List; import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.DBObject;import com.mongodb.MongoClient; public cl

  • Java数据对象JDO 2.0查询语言的特点

    查询语言的改进是JDO2.0规范中的重要环节,本文从较高的层面阐述JDO2.0所提供的一些新功能.由于JDO2.0规范还未进入公开草案状态,目前还没有任何内容敲定下来,一切都还可能面临变化.不过,JDO2.0将会很快进入最后阶段,而这里提到的查询特性是JDO2.0专家组(译者注:David Jordan就是专家组重要成员)花费时间最多,并且相对来说最为稳定.因此,我有足够理由相信,最终规范与这里的描述将会基本一致. 如果各位读者觉得本文遗漏了某些重要的特性,建议立即到JDO论坛(http://w

  • Java模糊查询方法详解

    当我们需要开发一个方法用来查询数据库的时候,往往会遇到这样一个问题:就是不知道用户到底会输入什么条件,那么怎么样处理sql语句才能让我们开发的方法不管接受到什么样的条件都可以正常工作呢?这时where '1'='1'加上list就可以完美解决这个问题了,废话少说,上代码: // 模糊查询方法 public List<person> query() { List<person> list = new ArrayList<>(); Connection con = null

  • 在Java的Hibernate框架中对数据库数据进行查询操作

    Hibernate查询语言(HQL)是一种面向对象的查询语言,类似于SQL,但不是对表和列操作,HQL适用于持久对象和它们的属性. HQL查询由Hibernate转换成传统的SQL查询,这在圈上的数据库执行操作. 虽然可以直接使用SQL语句和Hibernate使用原生SQL,但建议使用HQL尽可能避免数据库可移植性的麻烦,并采取Hibernate的SQL生成和缓存策略的优势. 都像SELECT,FROM和WHERE等关键字不区分大小写,但如表名和列名的属性是区分在HQL敏感. FROM 语句 使

  • java调用淘宝api联网查询ip归属地

    淘宝返回的数据为:{"code":0,"data":{"country":"\u4e2d\u56fd","country_id":"CN","area":"\u534e\u4e1c","area_id":"300000","region":"\u5c71\u4e1c\u7701&

  • java查询mongodb中的objectid示例

    找了很久查询objectid的方法都是错的,用mongovue能查询出来,但就是用java不知道怎么查询 1.mongovue里的查询方式: 复制代码 代码如下: {"_id" : ObjectId("5326bfc0e6f780b21635248f")} 2.纯mongodb里的查询方式: 复制代码 代码如下: db.collect.find({ "_id" : ObjectId("5326bfc0e6f780b21635248f&q

  • 使用Java对数据库进行基本的查询和更新操作

    数据库查询 利用Connection对象的createStatement方法建立Statement对象,利用Statement对象的executeQuery()方法执行SQL查询语句进行查询,返回结果集,再形如getXXX()的方法从结果集中读取数据.经过这样的一系列步骤就能实现对数据库的查询. [例]Java应用程序访问数据库.应用程序打开考生信息表ksInfo,从中取出考生的各项信息.设考生信息数据库的结构如下: import java.awt.*; import java.awt.even

  • Java mysql数据库并进行内容查询实例代码

    Java  mysql数据库并进行内容查询 最近用框架做了几个项目,感觉当初底层的东西有点忘了,写一个JDBC的简单的连接代码来熟悉回顾一下,也希望对刚接触的新手能有所帮助.这也是我的第一篇随笔,废话不多说,直接上代码: public Connection getCon() { //数据库连接名称 String username="root"; //数据库连接密码 String password=""; String driver="com.mysql.j

  • Java  mysql数据库并进行内容查询实例代码

    Java  mysql数据库并进行内容查询 最近用框架做了几个项目,感觉当初底层的东西有点忘了,写一个JDBC的简单的连接代码来熟悉回顾一下,也希望对刚接触的新手能有所帮助.这也是我的第一篇随笔,废话不多说,直接上代码: public Connection getCon() { //数据库连接名称 String username="root"; //数据库连接密码 String password=""; String driver="com.mysql.j

  • python针对mysql数据库的连接、查询、更新、删除操作示例

    本文实例讲述了python针对mysql数据库的连接.查询.更新.删除操作.分享给大家供大家参考,具体如下: 连接 一 代码 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","root","root","db_test01" ) # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute(

  • Java连接mysql数据库并进行内容查询的方法

    最近用框架做了几个项目,感觉当初底层的东西有点忘了,写一个JDBC的简单的连接代码来熟悉回顾一下,也希望对刚接触的新手能有所帮助.这也是我的第一篇随笔,废话不多说,直接上代码: public Connection getCon() { //数据库连接名称 String username="root"; //数据库连接密码 String password=""; String driver="com.mysql.jdbc.Driver"; //其中

  • Java对MySQL数据库进行连接、查询和修改操作方法

    0. 一般过程: (1) 调用Class.forName()方法加载驱动程序. (2) 调用DriverManager对象的getConnection()方法,获得一个Connection对象. (3) 创建一个Statement对象,准备一个SQL语句,这个SQL语句可以是Statement对象(立即执行的的语句).PreparedStatement语句(预编译的语句)或CallableStatement对象(存储过程调用的语句). (4) 调用excuteQuery()等方法执行SQL语句,

  • Java程序连接数据库的常用的类和接口介绍

    编写访问数据库的Java程序还需要几个重要的类和接口. DriverManager类 DriverManager类处理驱动程序的加载和建立新数据库连接.DriverManager是java.sql包中用于管理数据库驱动程序的类.通常,应用程序只使用类DriverManager的getConnection()静态方法,用来建立与数据库的连接,返回Connection对象: static Connection getConnection(String url,String username,Stri

  • Java从数据库中读取Blob对象图片并显示的方法

    本文实例讲述了Java从数据库中读取Blob对象图片并显示的方法.分享给大家供大家参考.具体实现方法如下: 第一种方法: 大致方法就是,从数据库中读出Blob的流来,写到页面中去: 复制代码 代码如下: Connection conn = DBManager.getConnection();   String sql = "SELECT picture FROM teacher WHERE id=1";   PreparedStatement ps = null;   ResultSe

  • java实现的连接数据库及模糊查询功能示例

    本文实例讲述了java实现的连接数据库及模糊查询功能.分享给大家供大家参考,具体如下: 模糊查询是比较常见的一种查询方式,例如在订单表中,包含有订单的具体日期.如果要查询某年某月的订单信息,最好的方式就是使用模糊查询.进行模糊查询需要使用关键字LIKE.在使用LIKE关键字进行模糊查询时,可以使用通配符"%",来代替0个或者多个字符,使用下划线_来代表一个字符. 注释:需要注意的是在使用LIKE的时候,后面的查询条件需要加 '  ',英文状态下的单引号引起来,不然报错如下 You ha

  • Java如何使用elasticsearch进行模糊查询

    这篇文章主要介绍了Java如何使用elasticsearch进行模糊查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用环境上篇文章本人已书写过,需要maven坐标,ES连接工具类的请看上一篇文章,以下是内容是笔者在真实项目中运用总结而产生,并写的是主要方法和思路,具体实现大家可以看后面文章,若其中有不适,请大家多多包涵 一.ES模糊查询 (一)不含中文模糊查询,适用于数字 SearchResponse searchResponse=nul

随机推荐