Java SPRING MVC数据库错误jdbc

Java SPRING MVC数据库错误jdbc,java,mysql,sql,spring,jdbc,Java,Mysql,Sql,Spring,Jdbc,谢谢你的时间 我得到一个错误,因为我的项目有两个模块add driver和add truck,我正在对这两个模块执行sql查询,但是当我对addDriver模块执行查询时,数据库异常被抛出 org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [INSERT INTO truck(TRegnNo,VendorName,PurchaseDate,Price,RepairDate

谢谢你的时间

我得到一个错误,因为我的项目有两个模块add driver和add truck,我正在对这两个模块执行sql查询,但是当我对addDriver模块执行查询时,数据库异常被抛出

org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [INSERT INTO truck(TRegnNo,VendorName,PurchaseDate,Price,RepairDate,InvoiceNo,RepairCost) VALUES(?,?,?,?,?,?,?)]; Column 'TRegnNo' cannot be null; nested exception is com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Column 'TRegnNo' cannot be null
    org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:101) 
驱动程序插入sql语句public void insertData(驱动程序驱动程序) { 字符串sql=“插入驱动程序”+(数据编号、数据名、年龄、经验)值(?、、?、?)”; JdbcTemplate JdbcTemplate=新的JdbcTemplate(数据源)


TRegnNo
不能为空。您必须为此行分配一个(唯一)值。

使用以下选项签出:


StackTrace contains
列'TRegnNo'不能为null
指向卡车表中的约束,如主键或外键等。

StackTrace contains
列'TRegnNo'不能为null
。您正在尝试将null值设置为具有非null约束的DB列错误“列'TRegnNo'不能为null”我很清楚。异常清楚地说,
列'TRegnNo'不能为空
,但我没有在truck表中创建条目。我正在添加一个新的驱动程序,那么为什么它会给我一个错误'TRegNo',因为它们在该表中不是该名称的列。stacktrace应该比这长,并且在某一时刻,您应该从您的源中找到一行。Lo好的,在那一行发生了什么,并显示完整的文件或至少周围的一些行。但我并没有在truck表中创建条目。我正在添加一个新的驱动程序,那么为什么它会给我一个错误'TRegNo',因为它们在驱动程序表中没有该名称的列。似乎当您添加一个驱动程序时,它会触发truck表的另一个sql。查看您的数据库se manager,如果存在这样的触发器。嗨,paul,我已共享了添加驱动程序和添加卡车模块的代码。请提供您的宝贵反馈。此方法称为:
public void insertData(truck-truck)
。我的建议是调试代码并查看
truck
对象。truck.getTRegNo返回null,因此返回错误。我已对其进行了调试,并跟踪了我的错误。谢谢
    jdbcTemplate.update(sql, new Object[] {driver.getLicenseNumber(),driver.getDriverName(),driver.getAge(),driver.getExperience()});
}                                                          Truck Insert code                                                                 public void insertData(Truck truck) 
{
    String sql = "INSERT INTO truck" + "(TRegnNo,VendorName,PurchaseDate,Price,RepairDate,InvoiceNo,RepairCost) VALUES(?,?,?,?,?,?,?)";
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    jdbcTemplate.update(sql , new Object[] {truck.getTregNo(),truck.getVendorName(),truck.getPurchaseDate(),truck.getPrice(),truck.getRepairDate(),truck.getInvoiceNo(),truck.getRepairCost()});


}