注册 登录
编程论坛 J2EE论坛

如何 更新一条数据 向数据库

杨斯亚 发布于 2010-05-31 00:37, 965 次点击
   
public class productDao {
    public static void main(String [] args){
        
        productDao p=new productDao();
         beanProduct bean= new beanProduct();
         bean.setDid("12345");
           //p.sum();
        //p.sumdange();
        //System.out.print(p.sumdange());
         beanProduct bea =new beanProduct();
         p.updateProduct(bea);
        System.out.print( p.updateProduct(bea));

}
public  boolean updateProduct(beanProduct bean){
        Connection conn = DBConn.getConn();
        try {
        PreparedStatement pstmt=conn.prepareStatement(" update [Product] set p_name=? where p_id=?");
           pstmt.setString(1, bean.getDid());
            pstmt.setString(3, bean.getName());
            pstmt.executeUpdate();
             return true;
        } catch (SQLException e) {
               e.printStackTrace();
            return false;
        }finally{
            DBConn.CloseConn();
        }   
    }
  异常
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
    at sun.jdbc.odbc.JdbcOdbcPreparedStatement.clearParameter(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setNull(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setString(Unknown Source)
    at (productDao.java:206)
    at (productDao.java:26)
3 回复
#2
HeiN2010-05-31 01:10
看异常应该是越界问题,但看不出来哪里越界了,
更新一条数据,必须是持久状态的对象,而你beanProduct bean= new beanProduct(); 这样NEW出来的对象是临时状态的,
你看看是不是这个问题,
#3
pigpigpigxk2010-06-02 22:22
pstmt.setString(3, bean.getName());

3??
#4
杨斯亚2010-06-12 07:54
越界问题,因为更新数据室从0 开始 我是从1 开始 所以报错,
1