SpringBoot JdbcTemplate 与 SQL Server
Posted
技术标签:
【中文标题】SpringBoot JdbcTemplate 与 SQL Server【英文标题】:SpringBoot JdbcTemplate with SQL Server 【发布时间】:2018-02-15 10:10:06 【问题描述】:我有一个 SpringBoot 应用程序。使用 JdbcTemplate 连接到 SQL Server DB,使用以下语法:
int numOfRowsAffected = remoteJdbcTemplate.update(
"insert into dbo.[ATRESMEDIA Resource Time Registr_] " +
"(Entry No_, Posting Date, Resource No_, Job No_, Work Type, Quantity, Unit of Measure, Description, Company Name, Created Date-Time ) " +
" VALUES (?,?,?,?,?,?,?,?,?,?);",
atresMediaTimeRegistr.getEntryNo(),
atresMediaTimeRegistr.getPostingDate(),
atresMediaTimeRegistr.getResourceNo(),
atresMediaTimeRegistr.getJobNo(),
atresMediaTimeRegistr.getWorkType(),
atresMediaTimeRegistr.getQuantity(),
atresMediaTimeRegistr.getUnitOfMeasure(),
atresMediaTimeRegistr.getDescription(),
atresMediaTimeRegistr.getCompanyName(),
atresMediaTimeRegistr.getCreatedDate());
但是我收到了这个错误:
com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near 'No_'.
【问题讨论】:
【参考方案1】:您的列名带有空格,请使用方括号[]
表示列名,如下所示。
int numOfRowsAffected = remoteJdbcTemplate.update(
"insert into dbo.[ATRESMEDIA Resource Time Registr_] " +
"([Entry No_], [Posting Date], [Resource No_], [Job No_], [Work Type], [Quantity], [Unit of Measure], [Description], [Company Name], [Created Date-Time] ) " +
" VALUES (?,?,?,?,?,?,?,?,?,?);",
例如,如果您尝试在 SQL 中进行如下查询
INSERT INTO TABLE1(Entry No_)
SELECT 1
你会得到同样的错误。
消息 102,级别 15,状态 1,第 1 行“No_”附近的语法不正确。
【讨论】:
以上是关于SpringBoot JdbcTemplate 与 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章