当前位置: 代码迷 >> Java Web开发 >> 如何 更新一条数据 向数据库
  详细解决方案

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

热度:736   发布时间:2010-05-31 00:37:07.0
如何 更新一条数据 向数据库
   
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 org.com.DAO.productDao.updateProduct(productDao.java:206)
    at org.com.DAO.productDao.main(productDao.java:26)
搜索更多相关主题的帖子: 数据库  

----------------解决方案--------------------------------------------------------
看异常应该是越界问题,但看不出来哪里越界了,
更新一条数据,必须是持久状态的对象,而你beanProduct bean= new beanProduct(); 这样NEW出来的对象是临时状态的,
你看看是不是这个问题,
----------------解决方案--------------------------------------------------------
pstmt.setString(3, bean.getName());

3??

----------------解决方案--------------------------------------------------------
越界问题,因为更新数据室从0 开始 我是从1 开始 所以报错,
----------------解决方案--------------------------------------------------------
  相关解决方案