Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да заснема/кодирам специален символ за SQL Server в приложението Java?

Предполагам, че конструирате SQL по някакъв начин като

String sql = "Select Column from tab where column='" + StringParm + "'"; 

Или нещо подобно? Ако направите това, вие сте отворени за всякакви експлойти и също така ще видите поведение като описаното от вас, където резултантният низ вече не е валиден SQL. Първо трябва да избегнете параметъра, предоставен от потребителя.

Най-доброто решение е да използвате PreparedStatements, така че го правите

Statement stmt = conn.prepareStatement("Select Column from tab where column=?");
stmt.setString(1,StringParam);

Не виждам никакъв бърз начин за разрешаване на проблема ви, без да променям какъвто и да е код на Java, освен евентуално избягване/дезинфекция на входа, преди да удари кода ви (напр. javascript, ако сте уеб приложение)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 Високо натоварване на процесора

  2. Вмъкване на масив от байтове ВЪВ varbinary(max) запис

  3. Няколко стойности на колони в един ред

  4. SQL Групово вмъкване с връзки родител/дете, запазен ли е редът?

  5. PI() Примери в SQL Server