Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动递增主键值给出空值错误_Java_Sql Server_Sql Server 2008_Spring Mvc - Fatal编程技术网

Java 自动递增主键值给出空值错误

Java 自动递增主键值给出空值错误,java,sql-server,sql-server-2008,spring-mvc,Java,Sql Server,Sql Server 2008,Spring Mvc,我正在尝试使用“SpringMVC”项目将数据插入MicrosoftServerManagementStudio表 联系人id已设置为非空和自动递增1。甚至它也试图插入null 我已经定义了用户id主键不为null和标识1。以下是要创建表的查询: CREATE TABLE contact ( contact_id[int] IDENTITY(1,1) NOT NULL, name varchar(45) NOT NULL, email varchar(45) NOT NULL,

我正在尝试使用“SpringMVC”项目将数据插入MicrosoftServerManagementStudio表

联系人id已设置为
非空
自动递增1
。甚至它也试图插入null

我已经定义了
用户id
主键不为null和标识1。以下是要创建表的查询:

CREATE TABLE contact (
  contact_id[int] IDENTITY(1,1) NOT NULL,
  name varchar(45) NOT NULL,
  email varchar(45) NOT NULL,
  address varchar(45) NOT NULL,
  telephone varchar(45) NOT NULL,
  PRIMARY KEY (contact_id)
) 
表格设计:

错误:

SEVERE: Servlet.service() for servlet [SpringDispatcher] in context with path [/SpringMvcJdbcTemplate] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [INSERT INTO contact (name, email, address, telephone) VALUES (?, ?, ?, ?)]; Cannot insert the value NULL into column 'contact_id', table 'contactdb.dbo.contact'; column does not allow nulls. INSERT fails.; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert the value NULL into column 'contact_id', table 'contactdb.dbo.contact'; column does not allow nulls. INSERT fails.] with root cause
com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert the value NULL into column 'contact_id', table 'contactdb.dbo.contact'; column does not allow nulls. INSERT fails.
代码行:

//插入

    String sql = "INSERT INTO contact (name, email, address, telephone)"
                + " VALUES ('" + contact.getName() + "', '" + contact.getEmail() + "', '" + contact.getAddress() + "', '" + contact.getTelephone() + "')";
    jdbcTemplate.update(sql);
更新

CREATE TABLE contact (
  contact_id int IDENTITY NOT NULL PRIMARY KEY,
  name varchar(45) ,
  email varchar(45) NOT NULL,
  address varchar(45) NOT NULL,
  telephone varchar(45) NOT NULL
) 

创建一个过程或在默认值中添加一个SCOPE_IDENTITY()方法。

在更新的语句中尝试“IDENTITY(1,1)”,并停止在SQL中这样放置值-使用准备好的语句。有关其他非空列中的值,请参见。标识列fine@Anand仅供参考,仅指定“标识”与“标识(1,1)”相同。结果行为没有差别;它们都从1开始,递增1。@在这个SQL实例上打开SQL Server的探查器,选择“Replay”模板,然后尝试通过Java代码进行插入。捕获并分析生成的语句,并将其发布在此处。另一件要尝试的事情是:通过TSQL语句(而不是从Java代码)手动插入“contact”。它也失败了吗?这张桌子上有触发器吗?欢迎使用。通常,在提供答案时,您应该针对至少5-6行代码示例和一些链接。否则,你的答案看起来更像是一个评论。