Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara membuat pernyataan yang disiapkan secara dinamis - dan menggunakan kembali kueri

Dengan asumsi Anda sudah dapat membuat string SQL secara dinamis (memasukkan ? di posisi yang tepat sesuai kebutuhan), saya sarankan menggunakan Map untuk meneruskan parameter di mana key akan menjadi urutan parameter (1,2,3 dan seterusnya). Sesuatu seperti ini:

public class Database{
    private String _sqlString;
    private Map<Integer,Object> _parameters;

    public Database(String sql){
        _sqlstring = sql;
    }

    public void setParameters(Map<Integer,Object> param){
        _parameters = param;
    }

    /* 
     * I'm assuming you already have a method like this
     */
    public List processQuery(){
        List results = new ArrayList();
        /* 
         * establish connection here
         */
        PreparedStatement preparedStatement = connection.prepareStatement(this._sqlString);

        if(_parameters != null){
            /* 
             * Iterate over the map to set parameters 
             */
            for(Integer key : _parameters.keySet()){
                preparedStatement.setObject(key, _parameters.get(key));
            }
        }            

        ResultSet rs = preparedStatement.executeQuery();
        /*
         * process the ResultSet
         */
        return results;
    }

}

Akhirnya Anda dapat menggunakan Database sebagai berikut:

String sql = "SELECT FULLNAMES FROM CUSTOMER WHERE ADDRESS = ? OR ADDRESS = ?";

Map<Integer,Object> param = new HashMap<>();
param.put(1,"NEW YORK");
param.put(2,"CHICAGO");

Database db = new Database(sql);
db.setParameters(param);
List customers = db.processQuery();



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana saya bisa menjalankan perintah CMD di aplikasi konsol c #?

  2. Tampilkan (Daftar) Database MySQL di Linux melalui Command Line

  3. Parsing JSON ke mySQL

  4. Bagaimana cara mengaktifkan eksplisit_defaults_for_timestamp?

  5. Cara mengatur nilai seed secara manual sebagai 1000 di MySQL