Advertisement
pendekar_langit

function build java

Mar 11th, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.20 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package engine;
  7.  
  8. import java.util.List;
  9. import java.sql.Connection;
  10. import java.sql.PreparedStatement;
  11. import java.sql.ResultSet;
  12. import java.sql.SQLException;
  13. import java.sql.Statement;
  14. import java.util.HashMap;
  15. import java.util.Map;
  16. import java.util.Set;
  17. import Utils.Converter;
  18. import java.util.ArrayList;
  19.  
  20. /**
  21.  *
  22.  * @author root
  23.  */
  24. public class Query {
  25.     private koneksi koneksi = new koneksi();
  26.     private Converter converter = new Converter();
  27.    
  28.    
  29.      private void dbg(Object data){
  30.         System.out.println("Query : "+data);
  31.     }
  32.    
  33.     /**
  34.      *
  35.      * @param field
  36.      * @param table
  37.      * @param condition
  38.      */
  39.     public ArrayList<Map<String, Object>> loadData(String[] listcolumn, String table, String condition, String[] data) throws SQLException{
  40.         ArrayList result = new ArrayList();
  41.         Connection con = koneksi.getcon();
  42.         String column = "";
  43.         for(int i = 0; i < listcolumn.length; i++){
  44.             if(listcolumn.length < 2){
  45.                 column += listcolumn[i];
  46.             }else{
  47.                 column += listcolumn[i]+", ";
  48.             }
  49.         }
  50.         String sql = "SELECT "+ column +" FROM "+ table + " WHERE " + condition;
  51.         dbg(sql);
  52.         PreparedStatement prep = con.prepareStatement(sql);
  53.         int i = 1;
  54.         for(String dt : data){
  55.             prep.setString(i, dt);
  56.             i++;
  57.         }
  58.         ResultSet reset =  prep.executeQuery();
  59.         while(reset.next()){
  60.             for( String clmn : listcolumn){
  61.                 Map<String, Object> map = new HashMap<String, Object>();
  62.                 map.put(clmn, reset.getObject(clmn));
  63.                 result.add(map);
  64.             }
  65.         }
  66.         return result;
  67.     }
  68.     /**
  69.      *
  70.      * @param field
  71.      * @param table
  72.      * @return
  73.      */
  74.     public ArrayList<Map<String, Object>> loadData(String[] listcolumn, String table) throws SQLException{
  75.         ArrayList result = new ArrayList();
  76.         Connection con = koneksi.getcon();
  77.         Statement stat = con.createStatement();
  78.         String column = "";
  79.         for(int i = 0; i < listcolumn.length; i++){
  80.             if(listcolumn.length < 2){
  81.                 column = listcolumn[i];
  82.             }else{
  83.                 column += listcolumn[i]+", ";
  84.             }
  85.         }
  86.         String sql = "SELECT "+ column + " FROM "+ table;
  87.         ResultSet res = stat.executeQuery(sql);
  88.         while(res.next()){
  89.             for(String clmn : listcolumn){
  90.                 Map<String, Object> map = new HashMap<String, Object>();
  91.                 map.put(clmn, res.getObject(clmn));
  92.                 result.add(map);
  93.             }
  94.         }
  95.         return result;
  96.     }
  97.    
  98.     public boolean updateData(String table, Map<String, Object> listcolumn, String condition){
  99.         boolean res = false;
  100.         try{
  101.             Connection con = new koneksi().getcon();
  102.             Set<String> keys = listcolumn.keySet();
  103.             String query = "";
  104.             for(String key : keys){
  105.                 query += key+"=?, ";
  106.             }
  107.             String sql = "UPDATE "+ table + " SET "+ query;
  108.             PreparedStatement prep = con.prepareStatement(sql);
  109.             int index = 1;
  110.             for(String key : keys){
  111.                 prep.setObject(index, key);
  112.                 index++;
  113.             }
  114.             prep.executeUpdate();
  115.         }catch(Exception e){
  116.            
  117.         }
  118.        
  119.         return res;
  120.     }
  121.    
  122.     public boolean deleteData(String table, String codition) throws SQLException{
  123.         Connection con = koneksi.getcon();
  124.         String sql = "DELETE FROM "+ table + " WHERE " + codition;
  125.         Statement stat  =  con.createStatement();
  126.         int res =  stat.executeUpdate(sql);
  127.         if(res == 1){
  128.             return true;
  129.         }else{
  130.             return false;
  131.         }
  132.     }
  133.    
  134.     public List getEnum(String table, String column) throws SQLException{
  135.         List res = new ArrayList();
  136.         Connection con = koneksi.getcon();
  137.         String sql = "SHOW COLUMNS FROM `"+ table + "` WHERE Field = '"+column+"'";
  138.         Statement stat = con.createStatement();
  139.         ResultSet result = stat.executeQuery(sql);
  140.         while(result.next()){
  141.             res.add(result.getString("Type"));
  142.         }
  143.         return res;
  144.     }
  145. //    Function for insert data
  146.     public void insertData(String table, Map<String, Object> data){
  147.         try{
  148. //            call connectino from class koneksi
  149.             Connection con = koneksi.getcon();
  150. //            get key from data Map
  151.             Set<String> keys = data.keySet();
  152.             String keyQuery = "";
  153.             String valueQuery = "";
  154.             String sql = "";
  155. //            set query from key for build query.
  156.             if (keys != null){
  157.                 keyQuery += "( ";
  158.                 int x = 0;
  159.                 for (String key : keys) {
  160.                     if(x > 0){
  161.                         keyQuery += ","+key+" ";
  162.                     }else{
  163.                         keyQuery += key+" ";
  164.                     }
  165.                     x++;
  166.                 }
  167.                 keyQuery += ")";
  168. //                count how many value from data
  169.                 valueQuery += "( ";
  170.                 for (int i = 0; i < data.size(); i++) {
  171.                     if(i > 0){
  172.                      valueQuery += ",? ";  
  173.                     }else{
  174.                         valueQuery += "? ";
  175.                     }
  176.                 }
  177.                 valueQuery += ")";
  178.             }
  179. //            generate and execute query
  180.             if(keyQuery != "" && valueQuery != ""){
  181.                 sql = "INSERT INTO "+ table+ " " + keyQuery + " VALUES " + valueQuery;
  182.                 PreparedStatement prep = con.prepareStatement(sql);
  183.                 int index = 1;
  184.                 for (String key : keys) {
  185.                     prep.setObject(index, data.get(key));
  186.                     index++;
  187.                 }
  188.                 prep.executeUpdate();
  189.             }
  190.         }catch(Exception e){
  191.            
  192.         }
  193.        
  194.     }
  195.    
  196.     public String generateID(String pattern, String table, String column){
  197.         String id = "";
  198.         try {
  199.             int length_id = 0;
  200.             Connection con = koneksi.getcon();
  201.             String sql_check_length = "SELECT character_maximum_length AS length FROM information_schema.columns WHERE table_name = ? AND column_name = ?";
  202.             String sql_check_id = "SELECT " + column + " FROM " + table + " ORDER BY " + column + " DESC";
  203.             PreparedStatement prep_length = con.prepareStatement(sql_check_length);
  204.             PreparedStatement prep_check = con.prepareStatement(sql_check_id);
  205. //            set parameter on query sql for check length
  206.             prep_length.setObject(1, table);
  207.             prep_length.setObject(2, column);
  208.            
  209.             ResultSet res_length = prep_length.executeQuery();
  210.             ResultSet res_check = prep_check.executeQuery();
  211.            
  212.             if(res_length.next()){
  213.                 length_id = res_length.getInt("length");
  214.             }
  215.             if(res_check.next()){
  216.                 String before = res_check.getString(column);
  217.                 int before_id = Integer.parseInt(before.substring(pattern.length(), length_id));
  218.                 String after_id = String.valueOf(before_id + 1);
  219.                 id = pattern+converter.pad_zero(after_id, length_id);
  220.             }else if(!res_check.isBeforeFirst()){
  221.                 id = pattern+converter.pad_zero("1", length_id);
  222.             }
  223.            
  224.         } catch (Exception e) {
  225.         }
  226.         return id;
  227.     }
  228. }
  229.  
  230.  
  231. // Sample to use function
  232.  
  233.         Map<String, Object> dataStaff = new HashMap<String, Object>();
  234.         dataStaff.put("id_staff", id);
  235.         dataStaff.put("nama", nama);
  236.         dataStaff.put("no_telp", no_telp);
  237.         dataStaff.put("alamat", alamat);
  238.         dataStaff.put("username", username);
  239.         query.insertData("tb_staff", dataStaff);
  240.  
  241. // code for fun learn friend
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement