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);
}