java中的字符串用法

时间:2010-08-19 19:22:03

标签: java string concatenation

考虑将下面代码中的URL分配给字符串,比如说

String link = "http://www.topix.com/rss/city/ellensburg-wa";

我应该如何使用以下代码中的字符串而不是URL本身。

注意:我是java的初学者

 stmt.executeQuery("select url from urls where url='http://www.topix.com/rss/city/ellensburg-wa'");

 stmtR.executeUpdate("insert into urls values(21211,'http://www.topix.com/rss/city/ellensburg-wa','source',1,0)"

4 个答案:

答案 0 :(得分:7)

如果您想创建一个不错的查询,请使用prepared statement

PreparedStatement insertUrlStatement = con.prepareStatement("INSERT INTO urls VALUES(?, ?, ?, ?)");
//Replace the **first** "?" by an "id" variable content (containing an **int**)
insertUrlStatement.setInt(1, id);
//Replace the **second** "?" by the "url" variable content (containing a **String**)
insertUrlStatement.setString(2, url);
//Two other setXxx();
insertUrlStatement.executeUpdate()

答案 1 :(得分:2)

stmt.executeQuery("select url from urls where url='" + link + "'");

stmtR.executeUpdate("insert into urls values(21211,'" + link + "','source',1,0)"

+是Java的字符串连接运算符 请参阅:http://download.oracle.com/javase/1.4.2/docs/api/java/lang/String.html


注意!!

如果要将其用于SQL查询,则应该考虑使用预准备语句(请参阅其他答案)。

答案 2 :(得分:1)

我必须在这个上给我2p。

永远不会 使用字符串连接和SQL。

(好吧,或许应该读作永远不会使用sting连接和用户输入)

遵循上面给出的关于使用预准备陈述的建议。

想想如果你使用字符串连接和SQL,当一​​些讨厌的用户输入链接时会发生什么

x'; DROP TABLE urls; --

您的代码看起来像

stmt.executeQuery("select url from urls where url='x'; DROP TABLE urls; --'");

严重的是,甚至不写一个做这个的原型,坏代码总是坏代码,最终会被使用。你不想因为编写十大漏洞之一而被解雇吗? www.drdobbs.com/web-development/224400744

转到此站点以获取更多示例以及SQL字符串连接为BAD的原因 http://unixwiz.net/techtips/sql-injection.html

答案 3 :(得分:0)

你可以这样做:

stmt.executeQuery("select url from urls where url='"+link+"'");