Advertisement
pendekar_langit

new

Mar 14th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.52 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 List loadData(String[] listcolumn, String table, String condition, String[] data) throws SQLException{
  40. List 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. result.add(reset.getObject(clmn));
  62. }
  63. }
  64. return result;
  65. }
  66. /**
  67. *
  68. * @param field
  69. * @param table
  70. * @return
  71. */
  72. public List loadData(String[] listcolumn, String table) throws SQLException{
  73. List result = new ArrayList();
  74. Connection con = koneksi.getcon();
  75. Statement stat = con.createStatement();
  76. String column = "";
  77. for(int i = 0; i < listcolumn.length; i++){
  78. if(listcolumn.length < 2){
  79. column = listcolumn[i];
  80. }else{
  81. column += listcolumn[i]+", ";
  82. }
  83. }
  84. String sql = "SELECT "+ column + " FROM "+ table;
  85. ResultSet res = stat.executeQuery(sql);
  86. while(res.next()){
  87. for(String clmn : listcolumn){
  88. result.add(res.getObject(clmn));
  89. }
  90. }
  91. return result;
  92. }
  93.  
  94. public boolean updateData(String table, Map<String, Object> listcolumn, String condition){
  95. boolean res = false;
  96. try{
  97. Connection con = new koneksi().getcon();
  98. Set<String> keys = listcolumn.keySet();
  99. String query = "";
  100. for(String key : keys){
  101. query += key+"=?, ";
  102. }
  103. String sql = "UPDATE "+ table + " SET "+ query;
  104. PreparedStatement prep = con.prepareStatement(sql);
  105. int index = 1;
  106. for(String key : keys){
  107. prep.setObject(index, key);
  108. index++;
  109. }
  110. prep.executeUpdate();
  111. }catch(Exception e){
  112.  
  113. }
  114.  
  115. return res;
  116. }
  117.  
  118. public boolean deleteData(String table, String codition) throws SQLException{
  119. Connection con = koneksi.getcon();
  120. String sql = "DELETE FROM "+ table + " WHERE " + codition;
  121. Statement stat = con.createStatement();
  122. int res = stat.executeUpdate(sql);
  123. if(res == 1){
  124. return true;
  125. }else{
  126. return false;
  127. }
  128. }
  129.  
  130. public List getEnum(String table, String column) throws SQLException{
  131. List res = new ArrayList();
  132. Connection con = koneksi.getcon();
  133. String sql = "SHOW COLUMNS FROM `"+ table + "` WHERE Field = '"+column+"'";
  134. Statement stat = con.createStatement();
  135. ResultSet result = stat.executeQuery(sql);
  136. while(result.next()){
  137. res.add(result.getString("Type"));
  138. }
  139. return res;
  140. }
  141. // Function for insert data
  142. public void insertData(String table, Map<String, Object> data){
  143. try{
  144. // call connectino from class koneksi
  145. Connection con = koneksi.getcon();
  146. // get key from data Map
  147. Set<String> keys = data.keySet();
  148. String keyQuery = "";
  149. String valueQuery = "";
  150. String sql = "";
  151. // set query from key for build query.
  152. if (keys != null){
  153. keyQuery += "( ";
  154. int x = 0;
  155. for (String key : keys) {
  156. if(x > 0){
  157. keyQuery += ","+key+" ";
  158. }else{
  159. keyQuery += key+" ";
  160. }
  161. x++;
  162. }
  163. keyQuery += ")";
  164. // count how many value from data
  165. valueQuery += "( ";
  166. for (int i = 0; i < data.size(); i++) {
  167. if(i > 0){
  168. valueQuery += ",? ";
  169. }else{
  170. valueQuery += "? ";
  171. }
  172. }
  173. valueQuery += ")";
  174. }
  175. // generate and execute query
  176. if(keyQuery != "" && valueQuery != ""){
  177. sql = "INSERT INTO "+ table+ " " + keyQuery + " VALUES " + valueQuery;
  178. PreparedStatement prep = con.prepareStatement(sql);
  179. int index = 1;
  180. for (String key : keys) {
  181. prep.setObject(index, data.get(key));
  182. index++;
  183. }
  184. prep.executeUpdate();
  185. }
  186. }catch(Exception e){
  187.  
  188. }
  189.  
  190. }
  191.  
  192. public String generateID(String pattern, String table, String column){
  193. String id = "";
  194. try {
  195. int length_id = 0;
  196. Connection con = koneksi.getcon();
  197. String sql_check_length = "SELECT character_maximum_length AS length FROM information_schema.columns WHERE table_name = ? AND column_name = ?";
  198. String sql_check_id = "SELECT " + column + " FROM " + table + " ORDER BY " + column + " DESC";
  199. PreparedStatement prep_length = con.prepareStatement(sql_check_length);
  200. PreparedStatement prep_check = con.prepareStatement(sql_check_id);
  201. // set parameter on query sql for check length
  202. prep_length.setObject(1, table);
  203. prep_length.setObject(2, column);
  204.  
  205. ResultSet res_length = prep_length.executeQuery();
  206. ResultSet res_check = prep_check.executeQuery();
  207.  
  208. if(res_length.next()){
  209. length_id = res_length.getInt("length");
  210. }
  211. if(res_check.next()){
  212. String before = res_check.getString(column);
  213. int before_id = Integer.parseInt(before.substring(2, length_id));
  214. String after_id = String.valueOf(before_id + 1);
  215. id = pattern+converter.pad_zero(after_id, length_id);
  216. }else if(!res_check.isBeforeFirst()){
  217. id = pattern+converter.pad_zero("1", length_id);
  218. }
  219.  
  220. } catch (Exception e) {
  221. }
  222. return id;
  223. }
  224. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement