PreparedStatement返回“您的SQL语法中有错误”

时间:2013-05-20 12:44:33

标签: java mysql prepared-statement

我有这个代码应该将一些数据添加到我的数据库中的表中:

PreparedStatement pstmt = conn.prepareStatement("INSERT INTO content(title, publish_up,fulltext,metakey) VALUES(?,?,?,?)");
/*
 * current is a 'Post' object, Post is a class with attributes id, title, date,
 * content, tags
 */
pstmt.setString(1, current.getTitle());
pstmt.setString(2, current.getDate());
pstmt.setString(3, current.getContent());
pstmt.setString(4, current.getTags());
System.out.println("Title: "+current.getTitle());
System.out.println("Date: "+current.getDate());
System.out.println("Tags: "+current.getTags());
System.out.println("Content: "+current.getContent());
System.out.println();
pstmt.execute();

输出结果为:

Title: Incontri
Date: 2013-02-06 08:35:00.0
Tags: letteratura,storie,persone,racconti,incontri,elvira-ferrara
Content: <div><a href="http://2.bp.blogspot.com/-DMym_A4ZMNg/URIVqzjHUoI/AAAAAAAAKPA/m2MA6CRQSbY/s1600/tarocchi+il+Mondo.jpg" imageanchor="1"><img border="0" height="640" src="http://2.bp.blogspot.com/-DMym_A4ZMNg/URIVqzjHUoI/AAAAAAAAKPA/m2MA6CRQSbY/s640/tarocchi+il+Mondo.jpg" width="317"></a></div><b>Un racconto a puntate, una serie di immagini e suggestioni, dal particolare al generale e viceversa, che diventano man mano una visione d'insieme. Una storia, in pratica, di Elvira Ferrara.</b><br><br>"<i>verranno a trovarti. non è detto che vengano tutti insieme, anzi. uno per volta, e quando meno te li aspetterai. avranno le forme insolite di chi ha qualcosa per te, ma ne è inconsapevole.</i><br><i>non aspettarli, perché potrebbero indispettirsi e non presentarsi. non essere impaziente. </i><br><i>preparati ad accoglierli. prepara il tuo spirito a questi incontri. sii aperta.</i><br><i>non avere preconcetti e tieni gli occhi vigili.</i><br><i>come ho detto avranno le forme più insolite.</i><br><i>non so ancora cosa potranno darti, ma so che verranno per un buon motivo.</i><br><i>dovrai molto a quello che ti diranno, e dovrai ancora di più laddove sarai riluttante.</i><br><i>non essere infantile nei loro confronti.</i><br><i>non credere che per loro sia facile.</i><br><i>è assurdo pensare che un messo possa essere sempre consapevole del peso del suo messaggio, ma tu. tu sai quanto importanti siano. e sai, più di chiunque altro sai che non puoi lasciarli andare via senza averli ascoltati.</i><br><i>sarò noiosa, ma ti ripeto ancora una volta, sii confidente nelle mie, nelle loro parole, sii fiduciosa. </i><br><i>avrai molto da imparare.</i>"<br><br>Mi guardo il palmo della mano. Cerco di leggervi anch'io qualcosa. Non mi aspetto di leggere tutto questo, ma una parola, una piccola parte di questo discorso surreale. E mentre sono lì a scrutare i tagli, le più piccole piegature, le vene, sento ancora quella voce.<br><br>"<i>hai capito? mi hai capito bene?</i>"<br><br>Il suono invade l'etere intorno e gli occhi di questa donna trafiggono i miei.<br>Si sta assicurando che io abbia compreso il suo messaggio, che ne abbia colto l'importanza.<br>Ritraggo la mano con tutti i suoi tagli e i miei dubbi.<br>Mi incammino verso casa, ripensando alle sue parole, cercando negli occhi degli altri gli spiriti che attendo.<br><br><b>(CONTINUA <a href="http://ilblogdipizzi.blogspot.it/2013/02/musicanti-balcanici-al-suo-seguito.html">QUI</a>)</b><br><br><i><a href="http://ilblogdipizzi.blogspot.it/search/label/Elvira%20Ferrara" target="_blank">Elvira Ferrara</a></i><br><br><br><b><span>"Pizzi chi?" è anche su <a href="http://www.facebook.com/pizzi.chi" target="_blank">Facebook</a> e <a href="https://twitter.com/pizzi_chi" target="_blank">Twitter</a>: seguici!</span></b>


Exception in thread "main" 
                 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
                 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 'fulltext,metakey) 
                 VALUES('Incontri','2013-02-06 08:35:00','<div><a href="http://' 
                 at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.Util.getInstance(Util.java:386)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
    at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1362)
    at WP.main(WP.java:166)

我真的不知道为什么我会得到这个例外,MySQL的语法似乎对我来说,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

fulltext是保留字,请尝试在其周围添加反引号:

INSERT INTO content(title, publish_up,`fulltext`,metakey) VALUES(?,?,?,?)