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

Най-чистият начин за изграждане на SQL низ в Java

Преди всичко помислете за използването на параметри на заявка в подготвени изрази:

PreparedStatement stm = c.prepareStatement("UPDATE user_table SET name=? WHERE id=?");
stm.setString(1, "the name");
stm.setInt(2, 345);
stm.executeUpdate();

Другото нещо, което може да се направи, е да се запазят всички заявки във файла със свойства. Например във файл queries.properties можете да поставите горната заявка:

update_query=UPDATE user_table SET name=? WHERE id=?

След това с помощта на прост полезен клас:

public class Queries {

    private static final String propFileName = "queries.properties";
    private static Properties props;

    public static Properties getQueries() throws SQLException {
        InputStream is = 
            Queries.class.getResourceAsStream("/" + propFileName);
        if (is == null){
            throw new SQLException("Unable to load property file: " + propFileName);
        }
        //singleton
        if(props == null){
            props = new Properties();
            try {
                props.load(is);
            } catch (IOException e) {
                throw new SQLException("Unable to load property file: " + propFileName + "\n" + e.getMessage());
            }           
        }
        return props;
    }

    public static String getQuery(String query) throws SQLException{
        return getQueries().getProperty(query);
    }

}

можете да използвате вашите заявки, както следва:

PreparedStatement stm = c.prepareStatement(Queries.getQuery("update_query"));

Това е доста просто решение, но работи добре.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TAN() Функция в Oracle

  2. Изявление на ORACLE IIF

  3. Коригиране на грешка „ORA-01789:блокът на заявката има неправилен брой колони с резултати“

  4. Заявка за намиране на пълни сканирания на таблицата в oracle

  5. ORACLE - ORA-01843:не е валиден месец