你后面没有给他赋值啊
要给?赋值的
ps=con.prepareStatement("insert into user(userID,password) values(?,?)"); 
for (int i = 0; i < objs.length; i++) {
ps.setObject(i+1, objs[i]);
}

解决方案 »

  1.   

    你那样写很不好,没有体现面向对象的概念而且也不利于维护
    我给你我写的桥连的DBManager类
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;public class DBManager {
    private Connection cnn;
    private PreparedStatement stmt;
    private ResultSet rs;
    public void OpenDB(){
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    cnn=DriverManager.getConnection("jdbc:odbc:test","sa","");
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    public ResultSet Query(String sql,Object[] objs){
    try {
    stmt=cnn.prepareStatement(sql);
    for (int i = 0; i < objs.length; i++) {
    stmt.setObject(i+1, objs[i]);
    }
    rs=stmt.executeQuery();
    } catch (Exception e) {
    e.printStackTrace();
    // TODO: handle exception
    }
    return rs;
    }

    public int Update(String sql,Object[] objs){
    int alterCount=0;
    try {
    stmt=cnn.prepareStatement(sql);
    for (int i = 0; i < objs.length; i++) {
    stmt.setObject(i+1, objs[i]);
    alterCount=stmt.executeUpdate();
    }
    } catch (Exception e) {
    e.printStackTrace();
    // TODO: handle exception
    }
    return alterCount;
    }

    public void CloseDB(){
    try {
    rs.close();
    stmt.close();
    cnn.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
      

  2.   

    估计是你类名和java.sql.PreparedStatement冲突了,换一个试试
      

  3.   

    类名不能用PreparedStatement,这样会分不清你在执行系统的,还是自己的