Advertisement
Guest User

Mysql JDBC example

a guest
Sep 14th, 2016
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.80 KB | None | 0 0
  1. package com.group8.database;
  2.  
  3. import java.io.InputStream;
  4. import java.sql.*;
  5. import java.util.ArrayList;
  6. import java.util.logging.Level;
  7. import java.util.logging.Logger;
  8.  
  9. /**
  10.  * Created by Linus Eiderström Swahn.
  11.  *
  12.  * Class that contains all functionality for connecting to the database.
  13.  *
  14.  * Contains methods for selecting and inserting into the database.
  15.  */
  16. public class MysqlDriver {
  17.  
  18.     public void MysqlDriver() {}
  19.  
  20.     private static String url = "jdbc:mysql://leia.skip.chalmers.se:3306/team_01";
  21.     private static String user = "team_01";
  22.     private static String password = "super_secret_password";
  23.  
  24.     /**
  25.      * Created By Linus Eiderström Swahn
  26.      *
  27.      * Selects one item from the database and returns it as an arraylist of objects.
  28.      * @param query
  29.      * A string with the sql-query that selects from the database.
  30.      * @return
  31.      * An arraylist of objects that contains al collumns of one row in the database.
  32.      */
  33.     public static ArrayList<Object> select(String query) {
  34.  
  35.         ArrayList<Object> result = new ArrayList<>();
  36.  
  37.         Connection con = null;
  38.         Statement st = null;
  39.         ResultSet rs = null;
  40.  
  41.         try {
  42.             con = DriverManager.getConnection(url, user, password);
  43.             st = con.createStatement();
  44.             rs = st.executeQuery(query);
  45.             ResultSetMetaData metaData = rs.getMetaData();
  46.  
  47.             //If nothing was found.
  48.             if(!rs.next())
  49.             {
  50.                 try {
  51.                     if (rs != null) {
  52.                         rs.close();
  53.                     }
  54.                     if (st != null) {
  55.                         st.close();
  56.                     }
  57.                     if (con != null) {
  58.                         con.close();
  59.                     }
  60.  
  61.                 } catch (SQLException ex) {
  62.                     Logger lgr = Logger.getLogger(MysqlDriver.class.getName());
  63.                     lgr.log(Level.WARNING, ex.getMessage(), ex);
  64.                 }
  65.  
  66.                 return null;
  67.             }
  68.  
  69.             result = new ArrayList<>();
  70.  
  71.             // Loops through the columns.
  72.             for(int i = 1; i<=metaData.getColumnCount(); i++)
  73.             {
  74.                 // Special case to check if a column is an image.
  75.                 if(metaData.getColumnTypeName(i).equals("MEDIUMBLOB")){
  76.                     InputStream image =rs.getBinaryStream(i);
  77.                     result.add(image);
  78.  
  79.                 }else{
  80.                     result.add(rs.getObject(i));
  81.                 }
  82.  
  83.             }
  84.  
  85.  
  86.         } catch (SQLException ex) {
  87.             Logger lgr = Logger.getLogger(MysqlDriver.class.getName());
  88.             lgr.log(Level.SEVERE, ex.getMessage(), ex);
  89.  
  90.         } finally {
  91.             try {
  92.                 if (rs != null) {
  93.                     rs.close();
  94.                 }
  95.                 if (st != null) {
  96.                     st.close();
  97.                 }
  98.                 if (con != null) {
  99.                     con.close();
  100.                 }
  101.  
  102.             } catch (SQLException ex) {
  103.                 Logger lgr = Logger.getLogger(MysqlDriver.class.getName());
  104.                 lgr.log(Level.WARNING, ex.getMessage(), ex);
  105.             }
  106.         }
  107.  
  108.         return result;
  109.     }
  110.  
  111.     /**
  112.      * Created by Linus Eiderström Swahn
  113.      *
  114.      * Returns several rows from the database as a two-dimensional array of objects.
  115.      * @param query
  116.      * The query that selects one or more rows from the database.
  117.      * @return
  118.      * A two-dimensional arraylist of objects representing rows of data from the database.
  119.      */
  120.     public static ArrayList<ArrayList<Object>> selectMany(String query) {
  121.  
  122.         ArrayList<ArrayList <Object>> result = new ArrayList<>();
  123.  
  124.         Connection con = null;
  125.         Statement st = null;
  126.         ResultSet rs = null;
  127.  
  128.         try {
  129.             con = DriverManager.getConnection(url, user, password);
  130.             st = con.createStatement();
  131.             rs = st.executeQuery(query);
  132.  
  133.  
  134.             ResultSetMetaData metaData = rs.getMetaData();
  135.  
  136.             //Loops through each returned row.
  137.             while(rs.next())
  138.             {
  139.                 ArrayList<Object> row = new ArrayList<>();
  140.  
  141.                 // Initialize all indexes we will use in the arraylist.
  142.                 for(int i = 0; i<=metaData.getColumnCount()-1; i++) {
  143.                     row.add(null);
  144.                 }
  145.  
  146.                 // Check if the data is an image or not.
  147.                 for(int i = 1; i<=metaData.getColumnCount(); i++)
  148.                 {
  149.                     // Generic data setter
  150.                     if(metaData.getColumnTypeName(i).equals("MEDIUMBLOB")){
  151.                         InputStream image =rs.getBinaryStream(i);
  152.                         row.set(i-1,image);
  153.                     }else{
  154.  
  155.                         row.set(i-1,rs.getObject(i));
  156.                     }
  157.                 }
  158.                 result.add(row);
  159.             }
  160.         } catch (SQLException ex) {
  161.             Logger lgr = Logger.getLogger(MysqlDriver.class.getName());
  162.             lgr.log(Level.SEVERE, ex.getMessage(), ex);
  163.         } finally {
  164.             try {
  165.                 if (rs != null) {
  166.                     rs.close();
  167.                 }
  168.                 if (st != null) {
  169.                     st.close();
  170.                 }
  171.                 if (con != null) {
  172.                     con.close();
  173.                 }
  174.  
  175.             } catch (SQLException ex) {
  176.                 Logger lgr = Logger.getLogger(MysqlDriver.class.getName());
  177.                 lgr.log(Level.WARNING, ex.getMessage(), ex);
  178.             }
  179.         }
  180.  
  181.         return result;
  182.     }
  183.  
  184.     /**
  185.      * Created by Linus Eiderström Swahn
  186.      *
  187.      * Inserts data into the database based on a sql-query.
  188.      *
  189.      * @param query
  190.      * The String containing a sql-query for inserting into the database.
  191.      */
  192.     public static void insert(String query) {
  193.         Connection con = null;
  194.         Statement st = null;
  195.  
  196.         try {
  197.             con = DriverManager.getConnection(url, user, password);
  198.             st = con.createStatement();
  199.             st.executeUpdate(query);
  200.  
  201.         } catch (SQLException ex) {
  202.             Logger lgr = Logger.getLogger(MysqlDriver.class.getName());
  203.             lgr.log(Level.SEVERE, ex.getMessage(), ex);
  204.  
  205.         } finally {
  206.             try {
  207.                 if (st != null) {
  208.                     st.close();
  209.                 }
  210.                 if (con != null) {
  211.                     con.close();
  212.                 }
  213.  
  214.             } catch (SQLException ex) {
  215.                 Logger lgr = Logger.getLogger(MysqlDriver.class.getName());
  216.                 lgr.log(Level.WARNING, ex.getMessage(), ex);
  217.             }
  218.         }
  219.     }
  220.  
  221.     /**
  222.      * Created by Linus Ederström Swahn
  223.      *
  224.      * Updates data in the database based on a sql-query.
  225.      *
  226.      * @param query
  227.      * A string with the sql-query that updates the database.
  228.      */
  229.     public static void update(String query) {
  230.         Connection con = null;
  231.         Statement st = null;
  232.  
  233.         try {
  234.             con = DriverManager.getConnection(url, user, password);
  235.             st = con.createStatement();
  236.             st.executeUpdate(query);
  237.  
  238.         } catch (SQLException ex) {
  239.             Logger lgr = Logger.getLogger(MysqlDriver.class.getName());
  240.             lgr.log(Level.SEVERE, ex.getMessage(), ex);
  241.  
  242.         } finally {
  243.             try {
  244.                 if (st != null) {
  245.                     st.close();
  246.                 }
  247.                 if (con != null) {
  248.                     con.close();
  249.                 }
  250.  
  251.             } catch (SQLException ex) {
  252.                 Logger lgr = Logger.getLogger(MysqlDriver.class.getName());
  253.                 lgr.log(Level.WARNING, ex.getMessage(), ex);
  254.             }
  255.         }
  256.     }
  257. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement