例如:
@Test
public void test() {
String sql1 = "insert into emp values(null,?,?,?)"; //?占位符
jdbcTemplate.update(sql1,"李四",24,"男");
}
報錯:Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 僅當使用了列列表並且 IDENTITY_INSERT 為 ON 時,才能為表'emp'中的標識列指定顯式值。
這是因為主鍵設置自增后,不能在sql語句中加入主鍵的值
正確寫法: String sql1 = "insert into emp values(?,?,?)"; //?占位符
jdbcTemplate.update(sql1,"李四",24,"男");
或jdbcTemplate.update( "insert into emp values('凌子',21,'女')");
另附identity_insert為on的寫法(可以在自增主鍵下插入指定的主鍵 比如上一個是1而這個我需要5):
jdbcTemplate.update("set identity_insert emp on "
+ "insert into emp(eid,ename,age,sex) values(5,'凌子',21,'女') "
+ "set identity_insert emp off");
