用java向access数据库插入数据
我编写了一个数据库操作的程序,可是能读取,但是不能插入数据,求各位大牛帮忙看看啊;
数据库名称为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();
}
}
}
------解决方案--------------------不能用mysql吗?不到分钟就能安装好?access这个用的少用.net的写的比较多?
------解决方案--------------------
sql = con.prepareStatement("insert into Recipe"+"values(?,?,?,?)");
sql.setInt(1, 15);
sql.setString(2, "niuRou");
sql.executeUpdate();
============================================
1.你可以试着将insert语句写完整。
2.你用了四个问号,表示你应该传4个参数进去。但实际只传了两个。
3.祝你好运。