分享

java swing jdbc sql 增删改查 实例1

 正心行 2016-08-19

数据库:

      create database Instant;

     use Instant
     create table Product(
        ProductId int not null primary key,
        ProductName varchar(20) not null,
        ProductPrice varchar(15) not null,
        ProductDiscount varchar(15) not null
);

 

GUI界面上应当具有'第一条','最后一条','上一条','下一条','增加','删除','修改','查找' 等按钮和用于显示结果的文本框

 用java的事件处理和jdbc api完成按钮相应功能

 

连接数据库类

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection {
 
 private Connection conn;
 private String driver = 'com.microsoft.jdbc.sqlserver.SQLServerDriver';
 private String url = 'jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Instant';
 private String username = 'sa';
 private String password = '';
 
 public DBConnection() {
  try {
   Class.forName(driver);
   this.conn = DriverManager.getConnection(url,username,password);
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }
 
 public Connection getConnection(){
  return this.conn;
 }

}

 

界面和业务处理类

 

import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class ProductText extends JFrame implements ActionListener {

 private JLabel lblProductId;
 private JLabel lblProductName;
 private JLabel lblProductPrice;
 private JLabel lblDiscount;

 private JTextField tfProductId;
 private JTextField tfPRoductName;
 private JTextField tfPRoductPrice;
 private JTextField tfDiscount;

 private JButton btnFirst;
 private JButton btnLast;
 private JButton btnBefore;
 private JButton btnNext;
 private JButton btnAdd;
 private JButton btnModify;
 private JButton btnDel;
 private JButton btnQuery;

 private DBConnection dbconn = null;
 private Connection conn = null;
 private ResultSet rs = null;
 private PreparedStatement pstmt = null;
 private Statement stmt = null;

 public ProductText() {
  this.setLayout(null);
  this.setBounds(200, 200, 400, 380);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  lblProductId = new JLabel('商品编号');
  lblProductId.setBounds(70, 15, 60, 25);
  this.add(lblProductId);

  tfProductId = new JTextField();
  tfProductId.setBounds(140, 15, 160, 25);
  this.add(tfProductId);

  lblProductName = new JLabel('商品名称');
  lblProductName.setBounds(70, 60, 60, 25);
  this.add(lblProductName);

  tfPRoductName = new JTextField();
  tfPRoductName.setBounds(140, 60, 160, 25);
  this.add(tfPRoductName);

  lblProductPrice = new JLabel('商品价格');
  lblProductPrice.setBounds(70, 105, 60, 25);
  this.add(lblProductPrice);

  tfPRoductPrice = new JTextField();
  tfPRoductPrice.setBounds(140, 105, 160, 25);
  this.add(tfPRoductPrice);

  lblDiscount = new JLabel('商品数量');
  lblDiscount.setBounds(70, 150, 60, 25);
  this.add(lblDiscount);

  tfDiscount = new JTextField();
  tfDiscount.setBounds(140, 150, 160, 25);
  this.add(tfDiscount);

  btnAdd = new JButton('添加');
  btnAdd.addActionListener(this);
  btnAdd.setBounds(60, 250, 60, 30);
  this.add(btnAdd);

  btnDel = new JButton('删除');
  btnDel.addActionListener(this);
  btnDel.setBounds(130, 250, 60, 30);
  this.add(btnDel);

  btnModify = new JButton('修改');
  btnModify.addActionListener(this);
  btnModify.setBounds(200, 250, 60, 30);
  this.add(btnModify);

  btnQuery = new JButton('查询');
  btnQuery.addActionListener(this);
  btnQuery.setBounds(270, 250, 60, 30);
  this.add(btnQuery);

  btnFirst = new JButton('第一个');
  btnFirst.addActionListener(this);
  btnFirst.setBounds(15, 290, 80, 30);
  this.add(btnFirst);

  btnLast = new JButton('最后一个');
  btnLast.addActionListener(this);
  btnLast.setBounds(105, 290, 90, 30);
  this.add(btnLast);

  btnBefore = new JButton('上一个');
  btnBefore.setBounds(205, 290, 80, 30);
  btnBefore.addActionListener(this);
  this.add(btnBefore);

  btnNext = new JButton('下一个');
  btnNext.addActionListener(this);
  btnNext.setBounds(295, 290, 80, 30);
  this.add(btnNext);

  this.setTitle('商品信息');
  this.setResizable(false);
  this.setVisible(true);
 }

 public static void main(String[] args) {
  new ProductText();
 }

 public void actionPerformed(ActionEvent e) {
  if (e.getActionCommand().equals('添加')) {
   if (tfProductId.getText().equals('')
     || tfPRoductName.getText().equals('')
     || tfPRoductPrice.getText().equals('')
     || tfDiscount.getText().equals('')) {
    JOptionPane.showMessageDialog(this, '请填写相关信息');
    return;
   } else {
    add();
    tfProductId.setText('');
    tfPRoductName.setText('');
    tfPRoductPrice.setText('');
    tfDiscount.setText('');
   }
  } else if (e.getActionCommand().equals('删除')) {
   if (tfProductId.getText().equals('')) {
    JOptionPane.showMessageDialog(this, '请选择一条信息');
   } else {
    int n = JOptionPane.showConfirmDialog(this, '您确定要删除此条记录吗?');
    if (n == 0) {
     del();
     tfProductId.setText('');
     tfPRoductName.setText('');
     tfPRoductPrice.setText('');
     tfDiscount.setText('');
    }
   }
  } else if (e.getActionCommand().equals('修改')) {
   if (tfProductId.getText().trim().equals('')
     || tfPRoductName.getText().trim().equals('')
     || tfPRoductPrice.getText().trim().equals('')
     || tfDiscount.getText().trim().equals('')) {
    JOptionPane.showMessageDialog(this, '请填写相关信息');
   } else {
    modify();
   }
  } else if (e.getActionCommand().equals('查询')) {
   if (tfProductId.getText().trim().equals('')) {
    JOptionPane.showMessageDialog(this, '请选择要查询高品的ID');
   } else {
    query();
   }
  } else if (e.getActionCommand().equals('第一个')) {
   first();
  } else if (e.getActionCommand().equals('最后一个')) {
   laster();
  } else if (e.getActionCommand().equals('上一个')) {
   if (tfProductId.getText().trim().equals('')) {
    JOptionPane.showMessageDialog(this, '请您先选择一条商品信息');
   } else {
    before();
   }
  } else if (e.getActionCommand().equals('下一个')) {
   if (tfProductId.getText().equals('')) {
    JOptionPane.showMessageDialog(this, '请您先选择一条商品信息');
   } else {
    next();
   }
  }
 }

 
 public void add() {
  dbconn = new DBConnection();
  conn = dbconn.getConnection();
  String sql1 = 'select ProductId from Product where ProductId='+tfProductId.getText();
  String sql = 'insert into Product (ProductId,ProductName,ProductPrice,ProductDiscount) values(?,?,?,?)';
  try {
   stmt = conn.createStatement();
   rs = stmt.executeQuery(sql1);
  } catch (SQLException e1) {
   e1.printStackTrace();
  }
  try {
   if(!rs.next()){
    try {
     pstmt = conn.prepareStatement(sql);
     pstmt.setInt(1, Integer.parseInt(tfProductId.getText()));
     pstmt.setString(2, tfPRoductName.getText());
     pstmt.setString(3, tfPRoductPrice.getText());
     pstmt.setString(4, tfDiscount.getText());
     pstmt.executeUpdate();
     JOptionPane.showMessageDialog(this, '添加成功');
    } catch (SQLException e) {
     // e.printStackTrace();
     JOptionPane.showMessageDialog(this, '添加失败');
    } finally {
     try {
      if (pstmt != null)
       pstmt.close();
      if (conn != null)
       conn.close();
     } catch (SQLException e) {
      e.printStackTrace();
     }
    }
   } else {
    JOptionPane.showMessageDialog(this, '商品编号重复');
   }
  } catch (NumberFormatException e) {
   e.printStackTrace();
  } catch (HeadlessException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }

 
 public void del() {
  dbconn = new DBConnection();
  conn = dbconn.getConnection();
  String sql = 'delete from Product where ProductId = '
    + tfProductId.getText();
  try {
   pstmt = conn.prepareStatement(sql);
   pstmt.executeUpdate();
   // JOptionPane.showMessageDialog(this, '删除成功');
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   try {
    if (pstmt != null)
     pstmt.close();
    if (conn != null)
     conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
 }

 
 public void modify() {
  dbconn = new DBConnection();
  conn = dbconn.getConnection();
  String sql1 = 'select  ProductId from Product where ProductId='+tfProductId.getText();
  try {
   stmt = conn.createStatement();
   rs = stmt.executeQuery(sql1);
  } catch (SQLException e1) {
   e1.printStackTrace();
  }
  try {
   if(rs.next()){
    String sql = 'update Product set ProductName = ?,ProductPrice = ?,ProductDiscount=? where ProductId = '
      + tfProductId.getText();
    try {
     pstmt = conn.prepareStatement(sql);
     pstmt.setString(1, tfPRoductName.getText());
     pstmt.setString(2, tfPRoductPrice.getText());
     pstmt.setString(3, tfDiscount.getText());
     pstmt.executeUpdate();
     JOptionPane.showMessageDialog(this, '修改成功');
    } catch (SQLException e) {
     e.printStackTrace();
    } finally {
     try {
      if (pstmt != null)
       pstmt.close();
      if (conn != null)
       conn.close();
     } catch (SQLException e) {
      e.printStackTrace();
     }
    }
   } else {
    JOptionPane.showMessageDialog(this, '没有与此ID相对应的记录');
    tfProductId.setText('');
    tfPRoductName.setText('');
    tfPRoductPrice.setText('');
    tfDiscount.setText('');
   }
  } catch (HeadlessException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }

 
 public void query() {
  dbconn = new DBConnection();
  conn = dbconn.getConnection();
  String sql = 'select ProductName,ProductPrice,ProductDiscount from Product where ProductId='
    + tfProductId.getText();
  try {
   stmt = conn.createStatement();
   rs = stmt.executeQuery(sql);
   if (rs.next()) {
    String ProductName = rs.getString('ProductName');
    String ProductPrice = rs.getString('ProductPrice');
    String ProductDiscount = rs.getString('ProductDiscount');
    tfPRoductName.setText(ProductName);
    tfPRoductPrice.setText(ProductPrice);
    tfDiscount.setText(ProductDiscount);
   } else {
    JOptionPane.showMessageDialog(this, '查询失败,您可能没有此信息');
    tfProductId.setText('');
    tfPRoductName.setText('');
    tfPRoductPrice.setText('');
    tfDiscount.setText('');
   }
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   try {
    if (rs != null)
     rs.close();
    if (stmt != null)
     stmt.close();
    if (conn != null)
     conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
 }

 
 public void first() {
  dbconn = new DBConnection();
  conn = dbconn.getConnection();
  String sql = 'select * from Product';
  try {
   // 1.TYPE_FORWORD_ONLY,只可向前滚动;
   // 2.TYPE_SCROLL_INSENSITIVE,双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。
   // 3.TYPE_SCROLL_SENSITIVE,双向滚动,并及时跟踪数据库的更新,以便更改ResultSet中的数据。
   stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
     ResultSet.CONCUR_UPDATABLE);
   rs = stmt.executeQuery(sql);
   if (rs.first()) {
    //stmt = conn.createStatement();
    String ProductId = rs.getString('ProductId');
    String ProductName = rs.getString('ProductName');
    String ProductPrice = rs.getString('ProductPrice');
    String ProductDiscount = rs.getString('ProductDiscount');
    tfProductId.setText(ProductId);
    tfPRoductName.setText(ProductName);
    tfPRoductPrice.setText(ProductPrice);
    tfDiscount.setText(ProductDiscount);
   }
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   try {
    if (rs != null)
     rs.close();
    if (stmt != null)
     stmt.close();
    if (conn != null)
     conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
 }

 
 public void laster() {
  dbconn = new DBConnection();
  conn = dbconn.getConnection();
  String sql = 'select * from Product';
  try {
   // 1.TYPE_FORWORD_ONLY,只可向前滚动;
   // 2.TYPE_SCROLL_INSENSITIVE,双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。
   // 3.TYPE_SCROLL_SENSITIVE,双向滚动,并及时跟踪数据库的更新,以便更改ResultSet中的数据。
   stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
     ResultSet.CONCUR_UPDATABLE);
   rs = stmt.executeQuery(sql);
   if (rs.last()) {
    String ProductId = rs.getString('ProductId');
    String ProductName = rs.getString('ProductName');
    String ProductPrice = rs.getString('ProductPrice');
    String ProductDiscount = rs.getString('ProductDiscount');
    tfProductId.setText(ProductId);
    tfPRoductName.setText(ProductName);
    tfPRoductPrice.setText(ProductPrice);
    tfDiscount.setText(ProductDiscount);
   }
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   try {
    if (rs != null)
     rs.close();
    if (stmt != null)
     stmt.close();
    if (conn != null)
     conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
 }

 
 public void before() {
  ArrayList list = new ArrayList();
  int index = 0;
  dbconn = new DBConnection();
  conn = dbconn.getConnection();
  String sql = 'select * from Product';
  try {
   stmt = conn.createStatement();
   rs = stmt.executeQuery(sql);
   while (rs.next()) {
    Product p = new Product();
    p.setProductId(rs.getInt(1));
    p.setProductName(rs.getString(2));
    p.setProductPrice(rs.getString(3));
    p.setProductDiscount(rs.getString(4));
    list.add(p);
   }

   int id = Integer.parseInt(tfProductId.getText());
   for (int i = 0; i < list.size(); i++) {
    Product pr = list.get(i);
    if (pr.getProductId() == id) {
     index = i;
     break;
    }
   }
   if (index >= 1) {
    Product pro = list.get(--index);
    String s = String.valueOf(pro.getProductId());
    tfProductId.setText(s);
    tfPRoductName.setText(pro.getProductName());
    tfPRoductPrice.setText(pro.getProductPrice());
    tfDiscount.setText(pro.getProductDiscount());
   } else {
    JOptionPane.showMessageDialog(this, '已经是第一条记录');
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }
 
 
 public void next() {
  ArrayList list = new ArrayList();
  int index = 0;
  dbconn = new DBConnection();
  conn = dbconn.getConnection();
  String sql = 'select * from Product';
  try {
   stmt = conn.createStatement();
   rs = stmt.executeQuery(sql);
   while (rs.next()) {
    Product p = new Product();
    p.setProductId(rs.getInt(1));
    p.setProductName(rs.getString(2));
    p.setProductPrice(rs.getString(3));
    p.setProductDiscount(rs.getString(4));
    list.add(p);
   }

   int id = Integer.parseInt(tfProductId.getText());
   for (int i = 0; i < list.size(); i++) {
    Product pr = list.get(i);
    if (pr.getProductId() == id) {
     index = i;
     break;
    }
   }
   if (index < list.size()-1) {
    Product pro = list.get(++index);
    String s = String.valueOf(pro.getProductId());
    tfProductId.setText(s);
    tfPRoductName.setText(pro.getProductName());
    tfPRoductPrice.setText(pro.getProductPrice());
    tfDiscount.setText(pro.getProductDiscount());
   } else {
    JOptionPane.showMessageDialog(this, '已经是最后一条记录');
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多