如何打印" java中的print()函数

时间:2014-07-31 10:42:08

标签: java mysql sql sql-server

我的代码中有以下行:

int check1 = stmt3.executeUpdate("update ShopSystem.Grocery where g_id="+g_id+" set g_name="+g_name);

它显示以下错误:

 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 'where g_id=5 set g_name=Chikoo' at line 1

我认为它是因为实际传递给SQL Server的是:       “更新ShopSystem.Grocery,其中g_id = 5 set g_name = Chikoo;

g_name实际上是一种String类型。我应该如何在java print语句中将其作为字符串传递?或者我的语法中还有其他错误吗?

3 个答案:

答案 0 :(得分:2)

您需要在查询中的文本值周围提供引号,如下所示:

"update ShopSystem.Grocery set g_name='"+g_name +"' where g_id="+g_id+";

但是,我强烈建议您使用参数化查询/预处理语句而不是连接。

PreparedStatement stmtUpdate = null;

String strUpdate = "update ShopSystem.Grocery set g_name= ? where g_id = ?";

stmtUpdate = yourconnection.prepareStatement(strUpdate);
stmtUpdate.setString(1,g_name);
stmtUpdate.setInt(2,g_id);
stmtUpdate.executeUpdate();

请注意,上面的代码不包含异常处理和处理资源,但它应该让您入门。

答案 1 :(得分:1)

我认为g_name是一个varchar类型,所以你应该用引号('')来表示它,就像这样

int check1 = stmt3.executeUpdate("update ShopSystem.Grocery set g_name='"+g_name+"' where g_id="+g_id );

答案 2 :(得分:0)

正如shree.pat18所说,我建议你使用参数化查询/预备语句:

无论如何,您可以使用简单的引号:

"simple quote here -> ' text ' <-"

或双引号:

"double quote here -> \" text \" <-"