/* This class was developed to eliminate the need to type SQL statements, because even a small error in typeing can cause a error. it was written to mySQL. you can ADD,update(edit),delete and even files can be added such as images ###VERY IMPORTANT #######This class needs 'AutoDBConnect' class to work properly Author -Dinushka95@yahoo.com 3/3/2017 */ package MainSystem; import static MainSystem.AutoDB_Connect.DB_PreparedStatement; import static MainSystem.AutoDB_Connect.DB_connection; import Sales.SalesDesignInquiry; import java.awt.Image; import java.awt.Toolkit; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.sql.Blob; import java.sql.ResultSet; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.ImageIcon; /** * * @author Dinushka */ //###VERY IMPORTANT #######This class needs 'AutoDBConnect' class to work properly public class AutoSQLQuery extends AutoDB_Connect{ private static AutoDB_Connect db_con; String DB_Name; public AutoSQLQuery(String DatabaseName) { db_con= new AutoDB_Connect(); db_con.connect(); DB_Name=DatabaseName; } // used to return value from a search query // returns all values public ResultSet executeAutoViewAll(String TableName) { return db_con.executeQuery("SELECT * FROM "+DB_Name+"."+TableName+";"); } // used to return value from a search query // returns only selected values public ResultSet executeAutoViewSelected(String SQL_String[],String TableName) { int length=SQL_String.length; String ArraySelect=""; int count=0; while(count<length){ if(ArraySelect.equals("")) {ArraySelect= ArraySelect+"`"+SQL_String[count]+"`";} else {ArraySelect= ArraySelect+",`"+SQL_String[count]+"`";} count++; } ArraySelect="select "+ArraySelect+" FROM `"+DB_Name+"`.`"+TableName+"`"; return db_con.executeQuery(ArraySelect); } // used to return value from a search query with a key // returns all values public ResultSet executeAutoSearchAll(String TableName,String KeyName,String Key) { String ArraySelect=""; ArraySelect="SELECT * FROM "+DB_Name+"."+TableName+" where "+KeyName+" = '"+Key+"'"; return db_con.executeQuery(ArraySelect); } // used to return value from a search query with a key // returns all values public ResultSet executeAutoSearchSelected(String SQL_String[],String TableName,String KeyName,String Key) { int length=SQL_String.length; String ArraySelect=""; int count=0; while(count<length){ if(ArraySelect.equals("")) {ArraySelect= ArraySelect+"`"+SQL_String[count]+"`";} else {ArraySelect= ArraySelect+",`"+SQL_String[count]+"`";} count++; } ArraySelect="select "+ArraySelect+" FROM `"+DB_Name+"`.`"+TableName+"`where "+KeyName+" = '"+Key+"'"; return db_con.executeQuery(ArraySelect); } //auto search data ranges public ResultSet executeAutoSearchDateRange(String TableName,String KeyName,String DateFrom,String DateTo) { String ArraySelect=""; ArraySelect="SELECT * FROM "+DB_Name+"."+TableName+" WHERE "+KeyName+" >= '"+DateFrom+"' AND "+KeyName+" <= '"+DateTo+"'" ; return db_con.executeQuery(ArraySelect); } //auto search data ranges public ResultSet executeAutoSearchDate(String TableName,String KeyName,String Date) { String ArraySelect=""; ArraySelect="SELECT * FROM "+DB_Name+"."+TableName+" WHERE "+KeyName+" = '"+Date+"'" ; return db_con.executeQuery(ArraySelect); } // used to ADD values public boolean executeAutoADD(String SQL_String[],String TableName) { int length=SQL_String.length; String ArraySelect=""; String ArraySelect1[]= new String[length]; String ArraySelect2[]=new String[length]; String ArraySelect11=""; String ArraySelect22=""; int count=0; while(count<length){ String tem=SQL_String[count]; int x=tem.indexOf("="); ArraySelect1[count]=tem.substring(0,x); ArraySelect2[count]=tem.substring(x+1); // System.out.println(ArraySelect1); // System.out.println(tem.substring(x+1)); count++; } count=0; while(count<length){ if(ArraySelect11.equals("")) {ArraySelect11= ArraySelect11+"`"+ArraySelect1[count]+"`";} else {ArraySelect11= ArraySelect11+",`"+ArraySelect1[count]+"`";} count++; } count=0; while(count<length){ if(ArraySelect22.equals("")) {ArraySelect22= ArraySelect22+"'"+ArraySelect2[count]+"'";} else {ArraySelect22= ArraySelect22+",'"+ArraySelect2[count]+"'";} count++; } //System.out.println(ArraySelect); ArraySelect="INSERT INTO `"+DB_Name+"`.`"+TableName+"`("+ArraySelect11+") VALUES ("+ArraySelect22+")"; return db_con.execute(ArraySelect); } // this method is used to edit values public boolean executeAutoEdit(String SQL_String[],String TableName,String KeyName,String Key) { int length=SQL_String.length; String ArraySelect=""; String ArraySelect1[]= new String[length]; String ArraySelect2[]=new String[length]; String ArraySelect11=""; int count=0; while(count<length){ String tem=SQL_String[count]; int x=tem.indexOf("="); ArraySelect1[count]=tem.substring(0,x); ArraySelect2[count]=tem.substring(x+1); count++; } count=0; while(count<length){ if(ArraySelect11.equals("")) {ArraySelect11= ArraySelect11+"`"+ArraySelect1[count]+"` ='"+ArraySelect2[count]+"'";} else {ArraySelect11= ArraySelect11+",`"+ArraySelect1[count]+"` ='"+ArraySelect2[count]+"'";} count++; } //System.out.println(ArraySelect); ArraySelect="UPDATE `"+DB_Name+"`.`"+TableName+"` SET "+ArraySelect11+" WHERE "+KeyName+" = '"+Key+"'"; return db_con.execute(ArraySelect); } // used to delete values from the table public boolean executeAutoDelete(String TableName,String KeyName,String Key) { String ArraySelect="DELETE FROM `"+DB_Name+"`.`"+TableName+"` WHERE "+KeyName+" = '"+Key+"'"; return db_con.execute(ArraySelect); } // used to add Images into the DB (.jpe) public boolean executeAutoAddImage(String FileNameId,File ImageFile) { FileInputStream filedata = null; try { filedata = new FileInputStream(ImageFile); } catch (FileNotFoundException ex) { Logger.getLogger(AutoSQLQuery.class.getName()).log(Level.SEVERE, null, ex); } try { DB_PreparedStatement =DB_connection.prepareStatement("insert into image_Table(img_title, img_data) values(?,?)"); DB_PreparedStatement.setString(1,FileNameId); DB_PreparedStatement.setBinaryStream(2, (InputStream) filedata, (int)(ImageFile.length())); DB_PreparedStatement.executeUpdate(); } catch (SQLException ex) { Logger.getLogger(SalesDesignInquiry.class.getName()).log(Level.SEVERE, null, ex); return false; } return true; } //used to retrive images from the DB public ImageIcon executeAutoGetImage(String FileNameId) { ImageIcon icon = null; AutoDB_Connect.DB_ResultSet = db_con.executeQuery("SELECT `image_Table`.`img_data`\n" +"FROM `"+DB_Name+"`.`image_Table` where `image_Table`.`img_title` ='"+FileNameId+"';"); try { AutoDB_Connect.DB_ResultSet.next(); Blob imageBlob=AutoDB_Connect.DB_ResultSet.getBlob("img_data"); InputStream binaryStream = imageBlob.getBinaryStream(1, imageBlob.length()); Image myImage; try (ByteArrayOutputStream output = new ByteArrayOutputStream()) { int a1 = binaryStream.read(); while (a1 >= 0){ output.write((char) a1); a1 = binaryStream.read(); } myImage = Toolkit.getDefaultToolkit().createImage(output.toByteArray()); } icon = new ImageIcon(myImage); } catch (SQLException | IOException ex) { Logger.getLogger(SalesDesignInquiry.class.getName()).log(Level.SEVERE, null, ex); } return icon; } }