package com.cn.car;
import com.cn.car.CarsVo;
import com.cn.jdbc.JDBC_Connection;
import java.sql.*;
public class AddCar {
public void addCar(CarsVo carsVo) {
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
try {
conn = JDBC_Connection.getConnection();
String sql =
"insert into cars(id,carnumber,cartype,color,price,rentprice,deposit,isrenting,description) values(?,?,?,?,?,?,?,?,?)";
pstm = conn.prepareStatement(sql);
pstm.setInt(1, carsVo.getId());
pstm.setString(2, carsVo.getCarnumber());
pstm.setString(3, carsVo.getCartype());
pstm.setString(4, carsVo.getColor());
pstm.setDouble(5, carsVo.getPrice());
pstm.setDouble(6, carsVo.getRentprice());
pstm.setDouble(7, carsVo.getDeposit());
pstm.setInt(8, carsVo.getIsrenting());
pstm.setString(9, carsVo.getDescription());

pstm.executeUpdate();
System.out.println("添加成功!添加的内容如下:");
System.out.println();
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBC_Connection.free(rs, conn, pstm);
}
}
}
创建驱动成功!
连接数据库成功!
添加成功!添加的内容如下:连接数据库成功!
com.microsoft.sqlserver.jdbc.SQLServerException: 没有为参数号 1 设置值。

解决方案 »

  1.   

    pstm.setInt(1, carsVo.getId());在这句前面打印些carsVo.getId(),看看是不是没有值等!
      

  2.   

    异常提示很明显了,pstm.setInt(1, carsVo.getId());这里的问题,估计carsVo.getId()返回的是Integer对象,而可能该对象是null
      

  3.   

    自己DEBUG看看 比你发帖子快
      

  4.   

    pstm.setInt(1, carsVo.getId()); 没有正常设置正确 所以执行sql的时候报错了
      

  5.   

    这种问题,完全没有必要发嘛,用DEBUG找下就知道了,你写出这代码来,我相信没有人能知道问题出在哪,异常编译器已经告诉你了,1号参数没有值,是NULL,看贴的人回答也只能告诉你和编译器一样的答案,要学会找错误这样才能提高,这也是成为一名好程序员必备的,注明下些贴没有它意,只是真认诚告诉LZ道理,因为这样的贴子CSDN中太多了,看了蛋疼。
      

  6.   

    下断点debug,看下carsVo.getId()返回的值是否是null