困扰了自己一天的问题居然这样简单

在做自己的认为的项目时,遇到了一个很棘手的问题。
hibernate+spring的时候总是报nested exception is org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update这个错误。
查看了很多资料,总是没有解决,后来想到sql中的关键字呢?
一下是我表中的字段,大家看看。
 
但是查看sql关键字:
ADD EXIT PRIMARY
ALL FETCH PRINT
ALTER FILE PRIVILEGES
AND FILLFACTOR PROC
ANY FLOPPY PROCEDURE
AS FOR PROCESSEXIT
ASC FOREIGN PUBLIC
AUTHORIZATION FREETEXT RAISERROR
AVG FREETEXTTABLE READ
BACKUP FROM READTEXT
BEGIN FULL RECONFIGURE
BETWEEN GOTO REFERENCES
BREAK GRANT REPEATABLE
BROWSE GROUP REPLICATION
BULK HAVING RESTORE
BY HOLDLOCK RESTRICT
CASCADE IDENTITY RETURN
CASE IDENTITY_INSERT REVOKE
CHECK IDENTITYCOL RIGHT
CHECKPOINT IF ROLLBACK
CLOSE IN ROWCOUNT
CLUSTERED INDEX ROWGUIDCOL
COALESCE INNER RULE
COLUMN INSERT SAVE
COMMIT INTERSECT SCHEMA
COMMITTED INTO SELECT
COMPUTE IS SERIALIZABLE
CONFIRM ISOLATION SESSION_USER
CONSTRAINT JOIN SET
CONTAINS KEY SETUSER
CONTAINSTABLE KILL SHUTDOWN
CONTINUE LEFT SOME
CONTROLROW LEVEL STATISTICS
CONVERT LIKE SUM
COUNT LINENO SYSTEM_USER
CREATE LOAD TABLE
CROSS MAX TAPE
CURRENT MIN TEMP
CURRENT_DATE MIRROREXIT TEMPORARY
CURRENT_TIME NATIONAL TEXTSIZE
CURRENT_TIMESTAMP NOCHECK THEN
CURRENT_USER NONCLUSTERED TO
CURSOR NOT TOP
DATABASE NULL TRAN
DBCC NULLIF TRANSACTION
DEALLOCATE OF TRIGGER
DECLARE OFF TRUNCATE
DEFAULT OFFSETS TSEQUAL
DELETE ON UNCOMMITTED
DENY ONCE UNION
DESC ONLY UNIQUE
DISK OPEN UPDATE
DISTINCT OPENDATASOURCE UPDATETEXT
DISTRIBUTED OPENQUERY USE
DOUBLE OPENROWSET USER
DROP OPTION VALUES
DUMMY OR VARYING
DUMP ORDER VIEW
ELSE OUTER WAITFOR
END OVER WHEN
ERRLVL PERCENT WHERE
ERROREXIT PERM WHILE
ESCAPE PERMANENT WITH
EXCEPT PIPE WORK
EXEC PLAN WRITETEXT
EXECUTE PRECISION
EXISTS PREPARE

使用的是mysql数据库,后来自己修改了describe和`invalidation`后,插入数据成功了。
这是怎么回事呢?

Oracle、IBM Content Manager、Informix 和 SQL Server 字段映射表:引自http://hi.baidu.com/landor2004/blog/item/4a3a4acab515b68ec817686f.html
模板 java.sql.Types 值 Java 类型 IBM DB2 Oracle Sybase SQL Informix IBM Content Manager
x BIGINT java.lang.long BIGINT NUMBER (38, 0) BIGINT BIGINT INT8 DK_CM_BIGINT
BINARY byte[] CHAR FOR BIT DATA RAW BINARY IMAGE BYTE DK_CM_BLOB
x BIT java.lang.Boolean N/A BIT BIT BIT BIT DK_CM_SMALLINT
BLOB byte[] BLOB BLOB BLOB BLOB BLOB DK_CM_BLOB
x CHAR java.lang.String CHAR, GRAPHIC CHAR CHAR CHAR CHAR DK_CM_CHAR
x CLOB java.lang.String CLOB, DBCLOB CLOB CLOB CLOB CLOB DK_CM_CLOB
DATE java.sql.Date DATE DATE DATE DATE DATE DK_CM_DATE
x DECIMAL java.math.BigDecimal DECIMAL NUMBER DECIMAL, MONEY, SMALLMONEY DECIMAL DECIMAL DK_CM_DECIMAL
x DOUBLE java.lang.Double DOUBLE DOUBLE PRECISION DOUBLE PRECISION DOUBLE PRECISION DOUBLE PRECISION DK_CM_DOUBLE
x FLOAT java.lang.Double FLOAT FLOAT FLOAT FLOAT FLOAT DK_CM_DOUBLE
x INTEGER java.lang.Integer INTEGER INTEGER INT INTEGER INTEGER DK_CM_INTEGER
JAVA_OBJECT java.lang.Object JAVA_OBJECT JAVA_OBJECT JAVA_OBJECT JAVA_OBJECT OPAQUE N/A
LONGVARBINARY byte[] LONG VARCHAR FOR BIT DATA LONG RAW IMAGE IMAGE BYTE DK_CM_BLOB
x LONGVARCHAR java.lang.String LONG VARCHAR, LONG VARGRAPHIC LONG TEXT TEXT TEXT DK_CM_VARCHAR(3500)
x NUMERIC java.math.BigDecimal NUMERIC NUMBER NUMERIC NUMERIC NUMERIC DK_CM_DECIMAL
OTHER java.lang.Object OTHER OTHER OTHER OTHER OTHER N/A
x REAL java.lang.Float REAL REAL REAL REAL REAL DK_CM_DOUBLE
x SMALLINT java.lang.Integer SMALLINT SMALLINT SMALLINT SMALLINT SMALLINT DK_CM_INTEGER
TIME java.sql.Time TIME DATE TIME TIME DATETIME HOUR TO SECOND DK_CM_TIME
TIMESTAMP java.sql.Timestamp TIMESTAMP DATE DATETIME, SMALLDATETIME DATETIME DATETIME YEAR TO FRACTION (5) DK_CM_TIMESTAMP
x TINYINT java.lang.Bute SMALLINT

TINYINT

TINYINT

TINYINT TINYINT DK_CM_INTEGER
VARBINARY byte[] VARCHAR FOR BIT DATA RAW VARBINARY IMAGE BYTE DK_CM_BLOB
x VARCHAR java.lang.String VARCHAR, VARGRAPHIC VARCHAR VARCHAR VARCHAR VARCHAR DK_CM_VARCHAR

mysql在映射boolean类型的时候,很多采用tinyint(1)的,最开始自己也是这样的,myeclipse弄出映射后,
之前映射类型为java.lang.short,修改为java.lang.boolean类型,
修改pojo文件也修改为Boolean类型,可以录入数据,
可今天早上起来再做的时候,发现映射的却是个Byte类型了,表字段没有改变。如上修改却没有用。
原因连我自己也不知道。
后来没办法只能修改表字段了,修改为bit类型的就可以了。

posted on 2009-03-28 00:44 duduli 阅读(2138) 评论(2)  编辑  收藏 所属分类: java 数据库

评论

# re: 困扰了自己一天的问题居然这样简单 2009-03-28 10:08 逝水fox

发现Hibernate执行MySQL的SQL语句时 都不会带上 “`”来引用表名和字段名 这样就很容易出现那种莫名其妙的错误了  回复  更多评论   

# re: 困扰了自己一天的问题居然这样简单 2009-03-29 17:51 李子涵

同感同感`~有次做个小项目``自己将group作为分类信息写为字段~`检查了很久才知道是关键字冲突了``  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

公告

welcome to my place.

常用链接

留言簿(5)

我参与的团队

随笔分类

随笔档案

新闻分类

石头JAVA摆地摊儿

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

@duduli