//First.java
//使用第一种方法连接数据库
//数据源名称为:Testimport java.sql.*;public class First{
public static void main(String args[]){
try{
//加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){
System.out.println(e);
}
try{
//建立连接
String url = "jdbc:odbc:Test";
Connection cn = DriverManager.getConnection(url);
//管理数据库会话
Statement stmt = cn.createStatement();
//执行SQL语句
String sql = "CREATE TABLE t_book(ISBN varchar(13),title varchar(60),price varchar(3))";
stmt.executeUpdate(sql);
}catch(SQLException e){
System.out.println(e);
}
}
}
//使用第一种方法连接数据库
//数据源名称为:Testimport java.sql.*;public class First{
public static void main(String args[]){
try{
//加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){
System.out.println(e);
}
try{
//建立连接
String url = "jdbc:odbc:Test";
Connection cn = DriverManager.getConnection(url);
//管理数据库会话
Statement stmt = cn.createStatement();
//执行SQL语句
String sql = "CREATE TABLE t_book(ISBN varchar(13),title varchar(60),price varchar(3))";
stmt.executeUpdate(sql);
}catch(SQLException e){
System.out.println(e);
}
}
}
解决方案 »
- 关于反射的难题!!
- 怎么学习JAVa
- 求助: 一道简单的java程序。。。。。
- 请教:关于 StreamTokenizer 不能正确获得字符串的问题?
- 新手问题~~~~~~~~~~~~~~~~~~~~~~~
- 我刚学java,下面的程序为什么错了,
- 如何在applet中点击按扭,打开浏览器窗口,然后跳转到指定网页面中?就象点击超连接一样?谢谢!
- 300分询问float数据的问题,大家都进来看
- 帮帮忙!一个小问题!送点分!有关Applet的jdbTable问题!!!
- java的操作平台是什么?用什么工具?
- 高手进!各位有没有实现过包遍历?和找出指定包下面的所有类?
- 急问:在一个canvas上画一个矩形,矩形随鼠标动而跟着变,可是我写的老是闪得太厉害了,而且鼠标不动时则矩形没了?
执行查询操作
executeUpdate(String)
String为SQL语句就可以了!
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;public class Frm_Vindicate extends JFrame
{
JTable t=null, t1, t2, t3, t4;
JTextField text = new JTextField();
JButton add = new JButton("增加");
JButton modify = new JButton("修改");
JButton delete = new JButton("删除");
String lxstr="", str = "" ; Frm_Vindicate(String title)
{
super(title);
setLocation(50,50);
setSize(650,500);
connection();
setlayout();
addevent();
setVisible(true);
}
void setlayout()
{
Container cp = getContentPane();
cp.setLayout(new BorderLayout());
JPanel panel1 = new JPanel();
cp.add(BorderLayout.CENTER,panel1);
panel1.setLayout(new GridLayout(0,4));
JScrollPane j1 = new JScrollPane(t1,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
JScrollPane j2 = new JScrollPane(t2,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
JScrollPane j3 = new JScrollPane(t3,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
JScrollPane j4 = new JScrollPane(t4,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
panel1.add(j1);
panel1.add(j2);
panel1.add(j3);
panel1.add(j4);
JPanel panel2 = new JPanel();
cp.add(BorderLayout.SOUTH,panel2);
panel2.add(add);
panel2.add(modify);
panel2.add(delete);
}
void addevent()
{
t1.addMouseListener(new Tbmouseevent1());
t2.addMouseListener(new Tbmouseevent2());
t3.addMouseListener(new Tbmouseevent3());
t4.addMouseListener(new Tbmouseevent4());
add.addActionListener(new Actionevent(1));
modify.addActionListener(new Actionevent(2));
delete.addActionListener(new Actionevent(3));
}
class Tbmouseevent1 extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
lxstr = "gglbtb";
str = t1.getValueAt(t1.getSelectedRow(),0).toString(); //取得表格中当前被选种的单元格的内容(每行的第一个单元格)
t = t1;
}
}
class Tbmouseevent2 extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
lxstr = "ggbmtb";
str = t2.getValueAt(t2.getSelectedRow(),0).toString();
t = t2;
}
}
class Tbmouseevent3 extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
lxstr = "ggjbrtb";
str = t3.getValueAt(t3.getSelectedRow(),0).toString();
t = t3;
}
}
class Tbmouseevent4 extends MouseAdapter
{
public void mouseClicked(MouseEvent e)
{
lxstr = "ggkhlbtb";
str = t4.getValueAt(t4.getSelectedRow(),0).toString();
t = t4;
}
}
class Actionevent implements ActionListener
{
int a;
Actionevent(int b)
{
a = b;
}
public void actionPerformed( ActionEvent e)
{
Frm_dialog w;
String titlname = "";
if(lxstr.equals("gglbtb"))
{
titlname = "广告类别表";
}
if(lxstr.equals("ggkhlbtb"))
{
titlname = "客户类别表";
}
if(lxstr.equals("ggbmtb"))
{
titlname = "业务部门表";
}
if(lxstr.equals("ggjbrtb"))
{
titlname = "经办人表";
}
if(str.equals("")!=true || lxstr.equals("")!=true)
{
switch (a)
{
case 1:
w = new Frm_dialog("增加"+titlname+"信息:",lxstr,str,a,t);
getDesktopPane().add(w);
break;
case 2:
w = new Frm_dialog("修改"+titlname+"信息:",lxstr,str,a,t);
getDesktopPane().add(w);
break;
case 3: w = new Frm_dialog("删除"+titlname+"信息:",lxstr,str,a,t);
getDesktopPane().add(w);
break;
}
}
else
{
JOptionPane.showMessageDialog(null,"请先选择信息和相应的表格,谢谢!","提醒!",JOptionPane.INFORMATION_MESSAGE);
}
str = "";
lxstr="";
}
}
void connection()
{
try
{
ResultSet r1 = new Execute_R().query_R("select * from gglbtb");
TableModel tm1 = new ResultSetTableModel(r1);
t1 = new JTable(tm1); ResultSet r2 = new Execute_R().query_R("select * from ggbmtb");
TableModel tm2 = new ResultSetTableModel(r2);
t2 = new JTable(tm2); ResultSet r3 = new Execute_R().query_R("select * from ggjbrtb");
TableModel tm3 = new ResultSetTableModel(r3);
t3 = new JTable(tm3); ResultSet r4 = new Execute_R().query_R("select * from ggkhlbtb");
TableModel tm4 = new ResultSetTableModel(r4);
t4 = new JTable(tm4);
}
catch (Exception e)
{
System.out.println("连接有问题!");
}
}
public static void main(String[] args)
{
new Frm_Vindicate("基本资料维护:");
}
}
class Frm_dialog extends JFrame
{
JTable wt;
JLabel jlb = new JLabel("内容:");
JTextField content = new JTextField(10);
JButton ok = new JButton("确定");
int n, h; //保存操作类型和操作记录的索引号
String cname, tname, constr; //分别保存列名,表格名,列的值
ResultSet ra, rm, rd; Frm_dialog(String title,String tbname, String string, int y, JTable jt)
{
super(title);
setLocation(250,200);
setSize(200,150);
setlayout();
tname = tbname;
if (tname.equals("gglbtb"))
{
cname = "广告类别";
}
if (tname.equals("ggbmtb"))
{
cname = "业务部门";
}
if (tname.equals("ggjbrtb"))
{
cname = "经办人";
}
if (tname.equals("ggkhlbtb"))
{
cname = "客户类别";
}
constr = string;
n = y;
switch (n)
{
case 1:
case 2: break;
case 3: jlb.setText("确定要删除此条记录吗?");content.setVisible(false);break;
}
wt = jt;
addevent();
setLayer(1);
setVisible(true);
}
void setlayout()
{
Container cp = getContentPane();
cp.setLayout(new GridLayout(3,0));
cp.add(new JPanel());
JPanel panel2 = new JPanel();
cp.add(panel2);
panel2.add(jlb);
panel2.add(content); JPanel panel3 = new JPanel();
cp.add(panel3);
panel3.add(ok);
}
void addevent()
{
switch (n)
{
case 1: ok.addActionListener(new okevent1());break;
case 2: ok.addActionListener(new okevent2());break;
case 3: ok.addActionListener(new okevent3());break;
}
}
class okevent1 implements ActionListener
{
public void actionPerformed( ActionEvent e)
{
if (content.getText().equals(""))
{
JOptionPane.showMessageDialog(null,"请填写内容,谢谢!","提醒!",JOptionPane.INFORMATION_MESSAGE);
}
else
{
Execute_R er1 = new Execute_R();
int i1 = er1.update_R("insert into "+tname+" values ('"+content.getText()+"')");
er1.statements_close();
if(i1 == 1)
{
JOptionPane.showMessageDialog(null,"增加成功!","注意!",JOptionPane.INFORMATION_MESSAGE);
ra = new Execute_R().query_R("select * from "+tname);
TableModel tma = new ResultSetTableModel(ra);
wt.setModel(tma);
setVisible(false);
}
else
{
JOptionPane.showMessageDialog(null,"增加信息失败!","提醒!",JOptionPane.INFORMATION_MESSAGE);
}
}
}
}
class okevent2 implements ActionListener
{
public void actionPerformed( ActionEvent e)
{
if (content.getText().equals(""))
{
JOptionPane.showMessageDialog(null,"请填写内容,谢谢!","提醒!",JOptionPane.INFORMATION_MESSAGE);
}
else
{
Execute_R er2 = new Execute_R();
int i2 =er2.update_R("update "+tname+" set "+cname+" = '"+content.getText()+"' where "+cname+" = '"+constr+"' ");
er2.statements_close();
if(i2 ==1)
{
JOptionPane.showMessageDialog(null,"修改信息成功!","提醒!",JOptionPane.INFORMATION_MESSAGE);
rm = new Execute_R().query_R("select * from "+tname);
TableModel tmm = new ResultSetTableModel(rm);
wt.setModel(tmm);
setVisible(false);
}
else
{
JOptionPane.showMessageDialog(null,"修改信息失败!","提醒!",JOptionPane.INFORMATION_MESSAGE);
}
}
}
}
class okevent3 implements ActionListener
{
public void actionPerformed( ActionEvent e)
{
Execute_R er3 = new Execute_R();
int i3 = er3.update_R("delete from "+tname+" where "+cname+" = '"+constr+"' ");
er3.statements_close();
if(i3 == 1)
{
JOptionPane.showMessageDialog(null,"删除信息成功!","提醒!",JOptionPane.INFORMATION_MESSAGE);
rd = new Execute_R().query_R("select * from "+tname);
TableModel tmd = new ResultSetTableModel(rd);
wt.setModel(tmd);
setVisible(false);
}
else
{
JOptionPane.showMessageDialog(null,"删除信息失败!","提醒!",JOptionPane.INFORMATION_MESSAGE);
}
}
}
}
下面还有两个类:
class ResultSetTableModel extends AbstractTableModel //建立表格模型类
{
private ResultSet re;
private ResultSetMetaData rsmd; ResultSetTableModel(ResultSet r)
{
re = r;
try
{
rsmd = re.getMetaData();
}
catch (SQLException e)
{
System.out.println("error1");
}
}
public String getColumnName(int c)
{
try
{
return rsmd.getColumnName(c+1);
}
catch (SQLException e)
{
// System.out.println("name");
return "";
}
}
public int getColumnCount()
{
try
{
return rsmd.getColumnCount();
}
catch (SQLException e)
{
// System.out.println("Column");
return 0;
}
}
public Object getValueAt(int r, int c)
{
try
{
re.absolute(r+1);
return re.getObject(c+1);
}
catch (SQLException e)
{
// System.out.println("add");
return null;
}
}
public int getRowCount()
{
try
{
re.last();
return re.getRow();
}
catch (SQLException e)
{
// System.out.println("Row");
return 0;
}
}
}
//查询并返回记录集
public class Execute_R
{
Connection cn;
ResultSet rs_Q;
String u;
Statement s;
int state; // 用来保存操作是否成功的状态 public Statement connection_R(){
u=new String("jdbc:odbc:srk_Access");
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
cn=DriverManager.getConnection(u);
s=cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch (ClassNotFoundException cnfex)
{
System.err.println("Failed to load JDBC/ODBC driver.");
cnfex.printStackTrace();
System.exit(1);
}
catch (Exception ex)
{
System.err.println("Unable to connect");
ex.printStackTrace();
}
return s;
} public ResultSet query_R(String sql){
try
{
rs_Q=connection_R().executeQuery(sql);
}
catch (SQLException sqlex)
{
sqlex.printStackTrace();
}
return rs_Q;
} public int update_R(String sql){
try
{
state=connection_R().executeUpdate(sql);
}
catch (SQLException sqlex)
{
sqlex.printStackTrace();
}
return state;
}
public void statements_close(){
try
{
s.close();
cn.close();
}
catch (SQLException sqlex)
{
sqlex.printStackTrace();
}
}
//public static void main(String arge[]){
// new Execute_R().query_R("select ggbh from ggfsmx");
//}
}
不知道你看不看的懂,里面设计到表格的知识时你可以不必理会.照抄源代码就可以了.至于需要的工具很简单,就Access2000,ODBC数据源(要求你自己会配置数据源,"srk_Access"这个就是我配置的数据源的名字),EditPlus就OK了.
这个是我刚学java不久后作的,很简陋,有很多地方都有待修改.不过运行应该没问题.初学参考而已.