Использование строки в Java - PullRequest
       0

Использование строки в Java

0 голосов
/ 19 августа 2010

Представьте, что я присваиваю строку в приведенном ниже коде строке, скажем

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 ]

7 голосов
/ 19 августа 2010

Если вы хотите создать хороший запрос, используйте подготовленный оператор

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()
2 голосов
/ 19 августа 2010
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.

1 голос
/ 20 августа 2010

Я должен дать свой 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 имеет ПЛОХОЙ http://unixwiz.net/techtips/sql-injection.html

0 голосов
/ 19 августа 2010

Вы можете сделать это так:

stmt.executeQuery("select url from urls where url='"+link+"'");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...