sql >> Database teknologi >  >> RDS >> Oracle

Reneste måde at bygge en SQL-streng i Java

Overvej først og fremmest at bruge forespørgselsparametre i udarbejdede udsagn:

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

Den anden ting, der kan gøres, er at beholde alle forespørgsler i egenskabsfilen. For eksempel i en queries.properties fil kan placere ovenstående forespørgsel:

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

Så ved hjælp af en simpel hjælpeklasse:

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);
    }

}

du kan bruge dine forespørgsler som følger:

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

Dette er en ret simpel løsning, men fungerer godt.



  1. PHP + SQL Server - Hvordan indstilles tegnsæt til forbindelse?

  2. ACID-egenskaberne for erklæringer og transaktioner

  3. Hvordan påvirker indekser databaseydelsen?

  4. Forstå kolonnealias i Select Query i SQL Server - SQL Server / TSQL Selvstudium del 115