Поиск из базы данных Oracle в Java с использованием ключевого слова LIKE - PullRequest
0 голосов
/ 25 апреля 2018
query="select * from books where BookName LIKE \"%" +txt1.getText()+"%\"";

это для кода базы данных сервера MySQL. что изменится на оракула?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

проблема решена с помощью этого ..

query = "select * from books, где BookName LIKE '%" + txt1.getText () + "%'";

спасибо всем :)

0 голосов
/ 25 апреля 2018

НЕ строить SQL-запросы, используя конкатенацию строк - вы должны использовать параметры связывания.

Ваша строка запроса должна быть:

query="select * from books where BookName LIKE ?";

и тогда вы можете сделать что-то вроде:

Class.forName( "oracle.jdbc.OracleDriver" ); // If you are using the Oracle driver.

Connection con = DriverManager.getConnection(
  "jdbc:oracle:thin:@localhost:1521:XE",
  "username",
  "password"
);

final String query="select * from books where BookName LIKE ?";
PreparedStatement ps = conn.prepareStatement(query);            
ps.setString( 1, "%" + txt1.getText() + "%" );
ResultSet rs = ps.executeQuery();
// Loop through the result set.
// Close statement/connections

(вам нужно будет обработать исключения и т. Д.)

и

  • Вам не нужно менять запрос на переключение между MySQL и Oracle (просто измените драйвер и строку подключения).
  • Вам не нужно экранировать одинарные или двойные кавычки во входной строке.
  • Вы защищены от атак с использованием SQL-инъекций.
  • Oracle может кэшировать запрос с параметром bind, и ему не нужно повторно его анализировать / компилировать при изменении параметра bind.

Если вы собираетесь написать запрос в виде строки, строковые литералы в SQL заключаются в одинарные (не двойные) кавычки:

query="select * from books where BookName LIKE '%your_string%'";

и вам нужно убедиться, что все одиночные кавычки в вашей строке правильно экранированы (но вместо этого просто используйте параметр bind).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...