Advertisement
Guest User

Untitled

a guest
May 24th, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.77 KB | None | 0 0
  1. package Chat;
  2.  
  3. import java.sql.*;
  4.  
  5. import Settings.*;
  6. import org.apache.log4j.Logger;
  7.  
  8. public class GestioneDB {
  9.    
  10.     final static Logger logger = Logger.getLogger(GestioneDB.class);
  11.    
  12.     Connection conn = null;
  13.     Statement stmt = null;
  14.     ResultSet rs = null;
  15.     PreparedStatement preparedStmt = null;
  16.    
  17.     private String sql;
  18.    
  19.     private final String nomeDriver = "com.mysql.jdbc.Driver";
  20.     private String serverURL = "";
  21.     private String user = "";
  22.     private String password = "";
  23.    
  24.     Settings Settings = new Settings();
  25.    
  26.     public GestioneDB(){
  27.        
  28.         serverURL = "jdbc:mysql://" + Settings.getIp_mysql() + ":" + Settings.getPort_mysql() + "/" + Settings.getDbName();
  29.        
  30.         user = Settings.getUser_mysql();
  31.        
  32.         password = Settings.getPwd_mysql();
  33.        
  34.         try {
  35.            
  36.             Class.forName(nomeDriver);
  37.            
  38.         } catch (ClassNotFoundException ex) {
  39.            
  40.             logger.fatal("Chat.GestioneDB.0: " + ex.getMessage());
  41.            
  42.         }
  43.        
  44.     }
  45.    
  46.     public String getMessage(String classe) throws SQLException{
  47.        
  48.         String chars_split_value = "~°~";
  49.         String chars_split_message = "=_=";
  50.        
  51.         String messages = "";
  52.         String message = "";
  53.        
  54.         try{
  55.              
  56.             conn = DriverManager.getConnection(serverURL, this.user, this.password);
  57.  
  58.             stmt = conn.createStatement();
  59.  
  60.             sql = "SELECT chat.mail, name, surname, message, data_ora FROM chat INNER JOIN accounts ON accounts.mail = chat.mail INNER JOIN classes ON chat.id_class = classes.id WHERE classes.class = '" + classe + "' ORDER BY data_ora";
  61.            
  62.             rs = stmt.executeQuery(sql);
  63.            
  64.             while(rs.next()){
  65.  
  66.                 String mail = rs.getString("mail");
  67.                 String name = rs.getString("name");
  68.                 String surname = rs.getString("surname");
  69.                 String data_ora = rs.getTimestamp("data_ora").toString();
  70.                 String mess = rs.getString("message");
  71.  
  72.                 message = mail + chars_split_value + name + chars_split_value + surname + chars_split_value + data_ora + chars_split_value + mess;
  73.                
  74.                 messages += message + chars_split_message;
  75.                
  76.             }
  77.            
  78.             if(messages != ""){
  79.                
  80.                 messages = messages.substring(0, messages.length() - 3);
  81.                
  82.             }else{
  83.                
  84.                 messages = "no-message";
  85.                
  86.             }
  87.            
  88.         } catch (SQLException ex) {
  89.  
  90.             logger.error("Chat.GestioneDB.1: " + ex.getMessage());
  91.  
  92.         } finally {
  93.  
  94.             if(conn != null){
  95.  
  96.                 stmt.close();
  97.                 conn.close();
  98.  
  99.             }
  100.            
  101.                
  102.         }
  103.        
  104.         return messages;
  105.    
  106.     }
  107.    
  108.     public String getMessage(String classe, String last_date) throws SQLException{
  109.        
  110.         String chars_split_value = "~°~";
  111.         String chars_split_message = "=_=";
  112.        
  113.         String messages = "";
  114.         String message = "";
  115.        
  116.         try{
  117.              
  118.             conn = DriverManager.getConnection(serverURL, this.user, this.password);
  119.  
  120.             stmt = conn.createStatement();
  121.  
  122.             sql = "SELECT chat.mail, name, surname, message, data_ora FROM chat INNER JOIN accounts ON accounts.mail = chat.mail INNER JOIN classes ON chat.id_class = classes.id WHERE classes.class = '" + classe + "' AND data_ora > '" + last_date + "' ORDER BY data_ora";
  123.            
  124.             rs = stmt.executeQuery(sql);
  125.            
  126.             while(rs.next()){
  127.  
  128.                 String mail = rs.getString("mail");
  129.                 String name = rs.getString("name");
  130.                 String surname = rs.getString("surname");
  131.                 String data_ora = rs.getTimestamp("data_ora").toString();
  132.                 String mess = rs.getString("message");
  133.  
  134.                 message = mail + chars_split_value + name + chars_split_value + surname + chars_split_value + data_ora + chars_split_value + mess;
  135.                
  136.                 messages += message + chars_split_message;
  137.                
  138.             }
  139.            
  140.             if(messages != ""){
  141.                
  142.                 messages = messages.substring(0, messages.length() - 3);
  143.                
  144.             }else{
  145.                
  146.                 messages = "no-message";
  147.                
  148.             }
  149.            
  150.         } catch (SQLException ex) {
  151.  
  152.             logger.error("Chat.GestioneDB.1: " + ex.getMessage());
  153.  
  154.         } finally {
  155.  
  156.             if(conn != null){
  157.  
  158.                 stmt.close();
  159.                 conn.close();
  160.  
  161.             }
  162.            
  163.                
  164.         }
  165.        
  166.         return messages;
  167.        
  168.     }
  169.    
  170.     public void sendMessage(String mail, String message, String classe) throws SQLException{
  171.        
  172.         try{
  173.            
  174.             conn = DriverManager.getConnection(serverURL, this.user, this.password);
  175.  
  176.             stmt = conn.createStatement();
  177.            
  178.             sql = "SELECT id FROM classes WHERE class ='" + classe + "'";
  179.            
  180.             rs = stmt.executeQuery(sql);
  181.            
  182.             rs.next();
  183.  
  184.             int id_class = rs.getInt("id");
  185.                
  186.            
  187.             sql = "INSERT INTO chat(mail, message, id_class, data_ora) VALUES (?, ?, ?, NOW())";
  188.            
  189.             preparedStmt = conn.prepareStatement(sql);
  190.  
  191.             preparedStmt.setString(1, mail);
  192.             preparedStmt.setString(2, message);
  193.             preparedStmt.setInt(3, id_class);
  194.  
  195.             preparedStmt.execute();
  196.  
  197.         } catch (SQLException ex) {
  198.            
  199.             logger.error("Chat.GestioneDB.3: " + ex.getMessage());
  200.            
  201.         } finally {
  202.  
  203.             if(conn != null){
  204.  
  205.                 stmt.close();
  206.                 preparedStmt.close();
  207.                 conn.close();
  208.  
  209.             }
  210.  
  211.         }
  212.        
  213.     }
  214.    
  215.     public boolean check_query(String sql){
  216.        
  217.         boolean ok = false;
  218.        
  219.         String c_t_e = "& < > ' / \\ ; , - _ ^ = ) ( % $ ! | # [ ] { } * ° ç § " + '"';
  220.        
  221.         String[] chars_to_escape = c_t_e.split(" ");
  222.        
  223.         if( ( !sql.equals("") ) ){
  224.        
  225.             ok = true;
  226.            
  227.         }
  228.        
  229.         for(String c : chars_to_escape){
  230.            
  231.             if(sql.contains((c))){
  232.                
  233.                 ok = false;
  234.                
  235.                 break;
  236.                
  237.             }
  238.            
  239.         }
  240.        
  241.         return ok;
  242.        
  243.     }
  244.    
  245. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement