在java核心教程里面有这样的示例
我不知何故~

解决方案 »

  1.   

    我只做过jdbc-odbc bridge连接数据库,感觉和直接用ODBC差不多,就是在写协议的时候有点不同。
        try
        {
          Statement s;
          PreparedStatement ps;
          ResultSet rs;      //读取数据库信息
          try{
            RandomAccessFile file=new RandomAccessFile("nmms.ini","r");
            dbName=file.readLine();
            dbUsername=file.readLine();
            dbPassword=file.readLine();
            file.close();
          }catch(Exception ex){
            System.out.println(ex.toString());
          }      //建立数据库连接
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          String url=new String("jdbc:odbc:"+dbName);
          Connection con=DriverManager.getConnection(url,dbUsername,dbPassword);
          System.out.println("Connection"+con);
          s=con.createStatement();
          //建立和录入数据库
          try
          {
            s.executeUpdate("CREATE TABLE NMMSTable (来稿日期 char(15),来稿单位 Char(40),印付名称 Char(20),纸张 char(15),单价 char(15),数量 char(15),金额 char(15) ,开别 char(15),色别 char(10),交货日期 char(15),收货人 char(10),发票号码 char(20) ,开票金额 char(15) ,付款日期 char(15))");
            System.out.println("Table mytable created");
          }catch(Exception exp){
            System.out.println(exp.toString());
          }      ps=con.prepareStatement("INSERT INTO NMMSTable (来稿日期,来稿单位,印付名称,纸张,单价,数量,金额,开别,色别,交货日期,收货人,发票号码,开票金额,付款日期) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)");      ps.setString(1,rdateField.getText());
          ps.setString(2,unitField.getText());
          ps.setString(3,nameField.getText());
          ps.setString(4,paperField.getText());
          ps.setString(5,priceField.getText());
          ps.setString(6,numberField.getText());
          ps.setString(7,scoreField.getText());
          ps.setString(8,kField.getText());
          ps.setString(9,colorField.getText());
          ps.setString(10,checkoutDateField.getText());
          ps.setString(11,personField.getText());
          ps.setString(12,checkNumberField.getText());
          ps.setString(13,checkScoreField.getText());
          ps.setString(14,payforDateField.getText());      ps.executeUpdate();
          System.out.println("Insert data successful");
          con.close();
        }catch(Exception ex){
          System.out.println(ex);
          note.setText("一个或者多个项目未填");
        }
    }
    这是我做的一个管理软件的一个片断,用法大致如此。