daily pastebin goal
3%
SHARE
TWEET

Untitled

a guest Apr 27th, 2018 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**                                                                            
  2.  * @(#)CollectionOfBooks.java                                                                                                                                                                                                              
  3.  *        
  4.  * Handles most functions and methods of the library.
  5.  * of the user interface.  Does not rely on anything
  6.  * from the user interface classes.                                                                        
  7.  *                                                                            
  8.  * @author Rami Awad, Erik Stenström                                                    
  9.  * @date 2011/10/24                                                      
  10.  */
  11.  
  12. import java.io.FileInputStream;
  13. import java.io.FileOutputStream;
  14. import java.io.IOException;
  15. import java.io.ObjectInputStream;
  16. import java.io.ObjectOutputStream;
  17. import java.util.ArrayList;
  18. import java.util.Collections;
  19. import java.sql.*;
  20.  
  21. public class CollectionOfBooks {
  22.     public static Connection con = null;
  23.  
  24.  
  25.  
  26.     public static void connect() {
  27.         String user = "erik"; // username, e.g. "postgres"
  28.         String pwd = "12345"; // password to your database
  29.         String database = "lab_databas";
  30.         String server = "jdbc:postgresql://localhost:5432/" + database
  31.                 + "?UseClientEnc=UTF8";
  32.  
  33.         try {
  34.             Class.forName("org.postgresql.Driver").newInstance();
  35.             con = DriverManager.getConnection(server, user, pwd);
  36.             System.out.println("Connected!");
  37.             Statement stmt = null;
  38.         } catch (Exception e) {
  39.             javax.swing.JOptionPane.showMessageDialog(null,
  40.                     "Database error connect, " + e.toString());
  41.         }
  42.  
  43.     }
  44.  
  45.     public static void disconnect() {
  46.         try {
  47.             con.close();
  48.         } catch (SQLException e) {
  49.             javax.swing.JOptionPane.showMessageDialog(null,
  50.                     "Database error disconnect, " + e.toString());
  51.         }
  52.     }
  53.  
  54.     public static boolean addArtist(String Artist, String Album,
  55.             String Producer, String Genre, Integer Rating, Integer Year,
  56.             String Label) {
  57.         connect();
  58.         try {
  59.             // Queries for checking if artist and/or album exists
  60.             String checkartist = "SELECT count(*) FROM ARTIST where namn = ?;";
  61.             String checkalbum = "SELECT count(*) FROM Album where namn = ?;";
  62.             PreparedStatement checkArtist = con.prepareStatement(checkartist);
  63.             PreparedStatement checkAlbum = con.prepareStatement(checkalbum);
  64.             checkArtist.setString(1, Artist);
  65.             checkAlbum.setString(1, Album);
  66.             ResultSet rsArtist = checkArtist.executeQuery();
  67.             ResultSet rsAlbum = checkAlbum.executeQuery();
  68.             rsArtist.next();
  69.             rsAlbum.next();
  70.             // if album and artist exist, disconnect and return false
  71.             if (rsAlbum.getInt(1) != 0 && rsArtist.getInt(1) != 0) {
  72.                 disconnect();
  73.                 return false;
  74.             } else if (rsArtist.getInt(1) != 0) {
  75.                 // Query for fetching artist id
  76.                 String getartistid = "SELECT artist_id FROM ARTIST where namn = ?;";
  77.                 PreparedStatement getArtistId = con
  78.                         .prepareStatement(getartistid);
  79.                 getArtistId.setString(1, Artist);
  80.                 ResultSet rs = getArtistId.executeQuery();
  81.                 rs.next();
  82.                 int artistid = rs.getInt(1);
  83.                 // Query for adding album to already existing artist
  84.                 String addalbum = "INSERT INTO Skivbolag (namn) Values (?);"
  85.                         + "INSERT INTO Producent (namn) Values (?);"
  86.                         + "INSERT INTO ALBUM(Artist_id, Betyg, Genre, Utgivningsar, Namn, Skivbolag, Producent) VALUES (?,?,?,?,?,currval('Skivbolag_seq'),currval('Producent_seq'));";
  87.                 PreparedStatement addAlbum = con.prepareStatement(addalbum);
  88.                 addAlbum.setString(1, Label);
  89.                 addAlbum.setInt(2, artistid);
  90.                 addAlbum.setInt(3, Rating);
  91.                 addAlbum.setString(4, Genre);
  92.                 addAlbum.setInt(5, Year);
  93.                 addAlbum.setString(6, Album);
  94.             //  addalbum.SetString(7,Producer);
  95.                 int m = addAlbum.executeUpdate();
  96.                 disconnect();
  97.                 return true;
  98.             } else {
  99.                 // Query for adding artist and album at the same time.
  100.                 String sql = "INSERT INTO Artist(namn) VALUES (?); "
  101.                         + "INSERT INTO Skivbolag (namn) VALUES (?);"
  102.                         + "INSERT INTO Producent (namn) Values (?);"
  103.                         + "INSERT INTO ALBUM(Artist_id, Betyg, Genre, Utgivningsar, Namn, Skivbolag, Producent) VALUES (currval('Artist_id_seq'),?,?,?,?,currval('Skivbolag_seq'),currval(?));";
  104.  
  105.                 PreparedStatement addArtist = con.prepareStatement(sql);
  106.  
  107.                 addArtist.setString(1, Artist);
  108.                 addArtist.setString(2, Label);
  109.                 addArtist.setInt(3, Rating);
  110.                 addArtist.setString(4, Genre);
  111.                 addArtist.setInt(5, Year);
  112.                 addArtist.setString(6, Album);
  113.             //  addArtist.setInt(7,Producer);
  114.                 int n = addArtist.executeUpdate();
  115.                 disconnect();
  116.                 return true;
  117.             }
  118.         } catch (SQLException e) {
  119.             javax.swing.JOptionPane.showMessageDialog(null,
  120.                     "Database error on insert: " + e.toString());
  121.         }
  122.         return false;
  123.     }
  124.  
  125.     public static boolean addTrack(String Album, String Track, String Length) {
  126.         connect();
  127.         try {
  128.             // Queries for checking if album and/or track exists
  129.             String checkalbum = "SELECT count(*) FROM ALBUM where namn = ?;";
  130.             String checktrack = "SELECT count(*) FROM LAT where namn = ?;";
  131.             PreparedStatement checkAlbum = con.prepareStatement(checkalbum);
  132.             PreparedStatement checkTrack = con.prepareStatement(checktrack);
  133.             checkAlbum.setString(1, Album);
  134.             checkTrack.setString(1, Track);
  135.             ResultSet rsAlbum = checkAlbum.executeQuery();
  136.             ResultSet rsTrack = checkTrack.executeQuery();
  137.             rsAlbum.next();
  138.             rsTrack.next();
  139.             // if album AND track exist, disconnect and return false
  140.             if (rsAlbum.getInt(1) != 0 && rsTrack.getInt(1) != 0) {
  141.                 disconnect();
  142.                 return false;
  143.             } else if (rsAlbum.getInt(1) != 0) {// if album already exists
  144.                 // Query for fetching artist id
  145.                 String getalbumid = "SELECT album_id FROM ALBUM where namn = ?;";
  146.                 PreparedStatement getAlbumId = con.prepareStatement(getalbumid);
  147.                 getAlbumId.setString(1, Album);
  148.                 ResultSet rs = getAlbumId.executeQuery();
  149.                 rs.next();
  150.                 int Albumid = rs.getInt(1);
  151.                 // Query for adding track to already existing album
  152.                 String addtrack = "INSERT INTO LAT (Namn, langd, album_id) Values (?,?,?);";
  153.                 PreparedStatement addTrack = con.prepareStatement(addtrack);
  154.                 addTrack.setString(1, Track);
  155.                 addTrack.setString(2, Length);
  156.                 addTrack.setInt(3, Albumid);
  157.                 int m = addTrack.executeUpdate();
  158.                 disconnect();
  159.                 return true;
  160.             }
  161.  
  162.         } catch (SQLException e) {
  163.             javax.swing.JOptionPane.showMessageDialog(null,
  164.                     "Database error on insert: " + e.toString());
  165.         }
  166.         return false;
  167.     }
  168.    
  169.     public ResultSet searcByArtist(String Artist){
  170.         ResultSet rs = null;
  171.         try{
  172.         String getbyartist = "SELECT l.namn, ar.namn, l.langd, al.namn FROM lat l, artist ar, album al where ar.namn = ? and ar.artist_id = al.artist_id and l.album_id = al.album_id;";
  173.         PreparedStatement getByArtist = con.prepareStatement(getbyartist);
  174.         getByArtist.setString(1, Artist);
  175.         rs = getByArtist.executeQuery();
  176.         return rs;
  177.         } catch (SQLException e) {
  178.             javax.swing.JOptionPane.showMessageDialog(null,
  179.                     "Database error: " + e.toString());
  180.         }
  181.         return rs;
  182.     }
  183.    
  184.     public ResultSet searcByAlbum(String Album){
  185.         ResultSet rs = null;
  186.         try{
  187.         String getbyalbum = "SELECT l.namn, ar.namn, l.langd, al.namn FROM lat l, artist ar, album al where al.namn = ? and al.album_id = l.album_id and al.artist_id = ar.artist_id;";
  188.         PreparedStatement getByAlbum = con.prepareStatement(getbyalbum);
  189.         getByAlbum.setString(1, Album);
  190.         rs = getByAlbum.executeQuery();
  191.         return rs;
  192.         } catch (SQLException e) {
  193.             javax.swing.JOptionPane.showMessageDialog(null,
  194.                     "Database error: " + e.toString());
  195.         }
  196.         return rs;
  197.     }
  198.         public ResultSet searcByGenre(String Genre){
  199.             ResultSet rs = null;
  200.             try{
  201.             String getbygenre = "SELECT l.namn, ar.namn, l.langd, al.namn FROM lat l, artist ar, album al where al.namn = ? and al.album_id = l.album_id and al.artist_id = ar.artist_id;";
  202.             PreparedStatement getByGenre = con.prepareStatement(getbygenre);
  203.             getByGenre.setString(1, Genre);
  204.             rs = getByGenre.executeQuery();
  205.             return rs;
  206.             } catch (SQLException e) {
  207.                 javax.swing.JOptionPane.showMessageDialog(null,
  208.                         "Database error: " + e.toString());
  209.             }
  210.             return rs;
  211.        
  212.        
  213.     }
  214.        
  215.        
  216.         public ResultSet searcByLabel(String Label){
  217.             ResultSet rs = null;
  218.             try{
  219.             String getbylabel = "SELECT l.namn, ar.namn, l.langd, al.namn FROM lat l, artist ar, album al where al.namn = ? and al.album_id = l.album_id and al.artist_id = ar.artist_id;";
  220.             PreparedStatement getByLabel = con.prepareStatement(getbylabel);
  221.             getByLabel.setString(1, Label);
  222.             rs = getByLabel.executeQuery();
  223.             return rs;
  224.             } catch (SQLException e) {
  225.                 javax.swing.JOptionPane.showMessageDialog(null,
  226.                         "Database error: " + e.toString());
  227.             }
  228.             return rs;
  229.        
  230.        
  231.     }
  232.  
  233.     public static void executeQuery(Connection con, String query)
  234.             throws SQLException {
  235.  
  236.         Statement stmt = null;
  237.         try {
  238.             // Execute the SQL statement
  239.             stmt = con.createStatement();
  240.             ResultSet rs = stmt.executeQuery(query);
  241.  
  242.             // Get the attribute names
  243.             ResultSetMetaData metaData = rs.getMetaData();
  244.             int ccount = metaData.getColumnCount();
  245.             for (int c = 1; c <= ccount; c++) {
  246.                 System.out.print(metaData.getColumnName(c) + "\t");
  247.             }
  248.             System.out.println();
  249.  
  250.             // Get the attribute values
  251.             while (rs.next()) {
  252.                 for (int c = 1; c <= ccount; c++) {
  253.                     System.out.print(rs.getObject(c) + "\t");
  254.                 }
  255.                 System.out.println();
  256.             }
  257.  
  258.         } finally {
  259.             if (stmt != null) {
  260.                 stmt.close();
  261.             }
  262.         }
  263.     }
  264.  
  265. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top