现在的位置: 首页 > 综合 > 正文

jdbc连接数据库对数据库的操作精简代码

2013年10月03日 ⁄ 综合 ⁄ 共 3904字 ⁄ 字号 评论关闭

package edu.yinhe.stand.jdbc;

import java.awt.BorderLayout;

import java.awt.Dimension;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author zcj
 *
 *
 * create table LOGIN(
  ID      NUMBER,
  ACCOUNT VARCHAR2(64),
  PWD     VARCHAR2(64)
)
 *
 */
public class TableTest extends JFrame {
 
 private static final int HEIGHT = 208;
 private static final int WIDTH = 280;
 
 private JTable table=null;
 private DefaultTableModel mode=null;
 private Vector head=new Vector();
 private Vector data=new Vector();

 public TableTest(){
  initUI();
 }

 private void initUI() {
  // TODO Auto-generated method stub
  this.setSize(WIDTH, HEIGHT);
  this.setTitle("jdbc测试");
  this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  Toolkit tool=Toolkit.getDefaultToolkit();
  Image icon=tool.getImage("images/title.JPG");
  this.setIconImage(icon);
  this.setResizable(false);
  Dimension size=tool.getScreenSize();
  this.setLocation((size.width-WIDTH)/2, (size.height-HEIGHT)/2);
  
  head.add("编号");
  head.add("姓名");
  head.add("性别");
  
  Connection conn=null;
  Statement stat=null;
  ResultSet rst=null;
  try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
   conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:yinhe", "scott", "tiger");
   stat=conn.createStatement();
   String sql="select * from login";
   rst=stat.executeQuery(sql);
   while(rst.next()){
    Vector row1=new Vector();
    row1.add(rst.getInt(1)+"");
    row1.add(rst.getString(2));
    row1.add(rst.getString(3));
    data.add(row1);
   }
  } catch (ClassNotFoundException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  } catch (SQLException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  }finally{
   try {
    rst.close();
    stat.close();
    conn.close();
   } catch (SQLException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   }
  }
  
  
  mode=new DefaultTableModel(data,head);
  
  
  
  table=new JTable(mode);
  JScrollPane scroll=new JScrollPane(table);
  this.add(scroll);
  
  JPanel south=new JPanel();
  JButton btn_del=new JButton("删除");
  JButton btn_exit=new JButton("退出");
  south.add(btn_del);
  south.add(btn_exit);
  this.add(south,BorderLayout.SOUTH);
  
  
  btn_del.addActionListener(new ActionListener() {
   
   @Override
   public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    int i=JOptionPane.showConfirmDialog(null, "你确认删除么?");
    if(i==0){
      int row=table.getSelectedRow();
      if(row==-1){
         JOptionPane.showMessageDialog(null, "对不起,你还未选定行!");
      }else{
         String sid=(String)table.getValueAt(row, 0);
         String sql="delete from login where id="+sid;
        
         //访问数据库代码
      Connection conn=null;
      Statement stat=null;
      ResultSet rst=null;
      try {
       Class.forName("oracle.jdbc.driver.OracleDriver");
       conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:yinhe", "scott", "tiger");
       stat=conn.createStatement();
       int j=stat.executeUpdate(sql);
       if(j==1){
        mode.removeRow(row);
        JOptionPane.showMessageDialog(null, "删除数据成功!");
       }else{
        JOptionPane.showMessageDialog(null, "删除数据库发生未知异常,请联系www.zcj.com");
       }
      } catch (ClassNotFoundException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
      } catch (SQLException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
      }finally{
       try {
        rst.close();
        stat.close();
        conn.close();
       } catch (SQLException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
       }
      }
      }
    }else{
     //null
    }
   }
  });
  
  this.setVisible(true);
 }

抱歉!评论已关闭.