gpt4 book ai didi

mysql - 无法在mysql表中插入一条以自增键为PK的记录

转载 作者:行者123 更新时间:2023-11-29 09:10:39 25 4
gpt4 key购买 nike

我无法插入记录。我正在使用 hibernate 和 mysql。

文件如下...

Route.hbm.xml

    <id name="routeId" type="java.lang.Integer" unsaved-value="null">
<column name="ROUTE_ID" not-null="true" />
<generator class="increment" />
</id>
<property name="routeName" type="java.lang.String" column="ROUTE_NAME" />
<property name="from" type="java.lang.String" column="FROM" />
<property name="to" type="java.lang.String" column="TO" />
<property name="distance" type="java.lang.Integer" column="DISTANCE" />
<property name="time" type="java.lang.Integer" column="TIME" />

RouteDTO.java

private static final long serialVersionUID = 1L;
private Integer routeId;
private String routeName;
private String from;
private String to;
private Integer distance;
private Integer time;


public Integer getRouteId() {
return routeId;
}
public void setRouteId(Integer routeId) {
this.routeId = routeId;
}
.
.
.
.

表结构为

CREATE TABLE `route` (
`ROUTE_ID` int(5) NOT NULL AUTO_INCREMENT,
`ROUTE_NAME` varchar(20) NOT NULL,
`FROM` varchar(20) NOT NULL,
`TO` varchar(20) NOT NULL,
`DISTANCE` int(11) DEFAULT NULL,
`TIME` int(11) DEFAULT NULL,
PRIMARY KEY (`ROUTE_ID`)
)

当我尝试通过RoutDAO.java保存此记录时

代码是

getHibernateTemplate().save(routeDto);

它给我错误如下......

Hibernate: select routedto0_.ROUTE_ID as ROUTE1_, routedto0_.ROUTE_NAME as ROUTE2_0_, routedto0_.FROM as FROM0_, routedto0_.TO as TO0_, routedto0_.DISTANCE as DISTANCE0_, routedto0_.TIME as TIME0_ from ROUTE routedto0_
Hibernate: insert into ROUTE (ROUTE_NAME, FROM, TO, DISTANCE, TIME, ROUTE_ID) values (?, ?, ?, ?, ?, ?)
Apr 15, 2011 9:04:03 PM org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: 1064, SQLState: 42000
Apr 15, 2011 9:04:03 PM org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM, TO, DISTANCE, TIME, ROUTE_ID) values ('A099', 'Hadapser', 'Pune Station', ' at line 1
Apr 15, 2011 9:04:03 PM org.hibernate.event.def.AbstractFlushingEventListener performExecutions
SEVERE: Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:179)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:726)
......
<小时/>
Caused by: java.sql.BatchUpdateException: 
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use
near 'FROM, TO, DISTANCE, TIME, ROUTE_ID) values
('A099', 'Hadapser', 'Pune Station', ' at line 1
at
<小时/>
com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2024)
at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1449)
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:294)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:57)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:172)
... 58 more

请帮帮我...

最佳答案

这是因为名为FROM 的列。这是一个 SQL 关键字。因此 Hibernate 发出的 SQL 是无效的。我对 MySQL 让您首先创建表感到有点惊讶。

您应该为列选择一个与 FROM 不同的名称。

关于mysql - 无法在mysql表中插入一条以自增键为PK的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5679145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com