我编写了一个数据库操作的程序,可是能读取,但是不能插入数据,求各位大牛帮忙看看啊;
数据库名称为Recipe,路径是F:/recipeDatabase/Database1.accdb,无密码;
数据库包含四个字段:字段一是id,字段二是name(菜名),字段三是price(价格),字段四是cook(厨师名)代码如下:package dianCaiXiTong;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
 
public class Server {
 
    public static void main(String args[]){
        Connection con =null;
        Statement stmt = null;
        ResultSet rs = null;
        PreparedStatement sql;
        try{
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
             String strurl ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+
             "F:/recipeDatabase/Database1.accdb";//数据库地址
             con = DriverManager.getConnection(strurl);
             stmt = con.createStatement();
             rs = stmt.executeQuery("select * from Recipe");
 
             while(rs.next()){
              String id = rs.getString(1); // 获得数据库第一列  
               
                 String name = rs.getString(2);  
                 
                 String price = rs.getString(3);
                 
                 String cook = rs.getString(4);
   
                 System.out.println("ID: " + id); // 输出信息  
   
                 System.out.println("菜名: " + name);
                 
                 System.out.println ("价格:" + price);
                 
                 System.out.println ("厨师名:" + cook);
             }
             /*
              * 向数据库中插入数据,这个操作总是不能执行,求大神给改改
              */
             sql = con.prepareStatement("insert into Recipe"+"values(?,?,?,?)");
             sql.setInt(1, 15);
             sql.setString(2, "niuRou");
             sql.executeUpdate();
 
             rs.close();
             stmt.close();
             con.close();
        }catch(Exception e){
            e.printStackTrace();
        }
 
    }
}

解决方案 »

  1.   

    不能用mysql吗?不到分钟就能安装好?access这个用的少用.net的写的比较多?
      

  2.   

    sql = con.prepareStatement("insert into Recipe"+"values(?,?,?,?)");
      sql.setInt(1, 15);
      sql.setString(2, "niuRou");
      sql.executeUpdate();
    ============================================
    1.你可以试着将insert语句写完整。
    2.你用了四个问号,表示你应该传4个参数进去。但实际只传了两个。
    3.祝你好运。