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

解决方案 »

  1.   

    你有java方面的书吗?一般上面都有的,上面有源程序和解释的
      

  2.   

    executeQuery(String)
    执行查询操作
    executeUpdate(String)
    String为SQL语句就可以了!
      

  3.   

    偶JAVA方面的书只有一本核心技术原理 卷I ,其他的如VB、PB倒有一大堆:(
      

  4.   

    我这有个我原来作的东西,界面就是一个三个表格加三个按钮,实现了分别对三个表格的增删改功能.
    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("基本资料维护:");
    }  
    }
      

  5.   

    下面还有三个类:
    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;
    }
    }

      

  6.   

    下面还有个类:import java.sql.*;
    //查询并返回记录集
    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不久后作的,很简陋,有很多地方都有待修改.不过运行应该没问题.初学参考而已.