Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 56.11 KB | None | 0 0
  1. package rmiserver;
  2.  
  3. import javax.sound.sampled.*;
  4. import java.sql.*;
  5. import java .io.*;
  6. import java.sql.DriverManager;
  7. import java.sql.SQLException;
  8. import java.util.ArrayList;
  9. import java.util.Scanner;
  10. import javax.sound.sampled.AudioInputStream;
  11.  
  12.  
  13. class insertDB{
  14.     Connection connection;
  15.  
  16.     public insertDB(){
  17.         /*
  18.         try{
  19.             DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  20.         }
  21.         catch(Exception e){
  22.             System.out.println("Could not load driver");
  23.         }
  24.         */
  25.  
  26.     }
  27.  
  28.     private void connectToDB() {
  29.         try{
  30.             DriverManager.getConnection("jdbc:postgresql:///[::1]:5432/DropMusic", "postgres", "bd");
  31.             System.out.println("connect to database");
  32.         }
  33.         catch(SQLException e) {
  34.             e.printStackTrace();
  35.             System.out.println("cannot connect to database");
  36.  
  37.         }
  38.     }
  39.  
  40.     public void execSQL(){
  41.         try{
  42.             Statement stmt= connection.createStatement();
  43.             BufferedReader input= new BufferedReader(new InputStreamReader(System.in));
  44.             System.out.println("Insira o nome da musica");
  45.             String songName = input.readLine();
  46.             System.out.println("Insira o nome da musica");
  47.             String songArtist = input.readLine();
  48.             System.out.println("Insira o nome da musica");
  49.             String songGender = input.readLine();
  50.             System.out.println("Insira o nome da musica");
  51.             String songAlbum = input.readLine();
  52.             System.out.println("Insira o nome da musica");
  53.             String songDuration = input.readLine();
  54.             String insert= "Insert into songs values (" + "'"+ songName + "','" + songArtist + "','" + songGender + "','" + songAlbum + "','" + songDuration + "')";
  55.             System.out.println(insert);
  56.             int inserted = stmt.executeUpdate(insert); //retorna 1 para sucesso, 0 para fail
  57.             if(inserted>0){
  58.                 System.out.println("Successfully inserted");
  59.             }
  60.         }
  61.         catch (Exception e){
  62.             System.out.print("Error executing SQL");
  63.  
  64.         }
  65.     }
  66.  
  67.     public static void main(String[] args){
  68.         insertDB conn = new insertDB();
  69.         conn.connectToDB();
  70.         conn.execSQL();
  71.     }
  72.  
  73.  
  74. }
  75.  
  76.  
  77. public class Connecting {
  78.     Connection connect;
  79.     Connection connect2;
  80.  
  81.     Connecting() {
  82.         try {
  83.             Class.forName("org.postgresql.Driver");
  84.             connect = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/DropMusic", "postgres", "bd");
  85.         } catch (Exception e) {
  86.             e.printStackTrace();
  87.         }
  88.     }
  89.  
  90.     public int executeSQL(String sql) {
  91.         //Connection connect= new Connection();
  92.  
  93.         try {
  94.             Statement st = connect.createStatement();
  95.             int res = st.executeUpdate(sql);
  96.             //connect.close();
  97.             return res;
  98.  
  99.         } catch (Exception e) {
  100.             e.printStackTrace();
  101.             return 0;
  102.         }
  103.     }
  104.  
  105.     public ResultSet executeSearch(String sql) {
  106.         try {
  107.             Statement stm = connect.createStatement();
  108.             ResultSet rs = stm.executeQuery(sql);
  109.             connect.close();
  110.             return rs;
  111.         } catch (Exception e) {
  112.             e.printStackTrace();
  113.             return null;
  114.         }
  115.     }
  116.  
  117.  
  118.  
  119.     public boolean albumExists(String album){
  120.         Connecting con = new Connecting();
  121.         String sql="Select * from albums where \"albumName\"= "+"'" + album +"'";
  122.         ResultSet rs = con.executeSearch(sql);
  123.         try{
  124.             while(rs.next()) {
  125.                 if (rs.getString("albumName").equals(album)) {
  126.                     return true;
  127.                 }
  128.             }
  129.             System.out.println("Album não existe, tem de o criar primeiro");
  130.             return false;
  131.         }
  132.         catch(Exception e){
  133.             e.printStackTrace();
  134.         }
  135.         return false;
  136.  
  137.     }
  138.  
  139.     public boolean artistExists(String artist){
  140.         Connecting con = new Connecting();
  141.         String sql="Select * from artists where \"artistName\"= "+"'" + artist +"'";
  142.         ResultSet rs = con.executeSearch(sql);
  143.         try{
  144.             while(rs.next()) {
  145.                 if (rs.getString("artistName").equals(artist)) {
  146.  
  147.                     return true;
  148.                 }
  149.             }
  150.             System.out.println("Artista não existe, tem de o criar primeiro");
  151.             return false;
  152.         }
  153.         catch(Exception e){
  154.             e.printStackTrace();
  155.         }
  156.         return false;
  157.     }
  158.  
  159.     public boolean songExists(String song){
  160.         Connecting con = new Connecting();
  161.         String sql="Select * from songs where \"songName\"= "+"'" + song +"'";
  162.         ResultSet rs = con.executeSearch(sql);
  163.         try{
  164.             while(rs.next()) {
  165.                 if (rs.getString("songName").equals(song)) {
  166.                     System.out.println("EXiste");
  167.                     return true;
  168.                 }
  169.             }
  170.             System.out.println("Música não existe, tem de a criar primeiro");
  171.             return false;
  172.         }
  173.         catch(Exception e){
  174.             e.printStackTrace();
  175.         }
  176.         return false;
  177.     }
  178.  
  179.     public boolean concertExists(String concert){
  180.         Connecting con = new Connecting();
  181.         String sql="Select * from concerts where \"concertName\"= "+"'" + concert +"'";
  182.         ResultSet rs = con.executeSearch(sql);
  183.         try{
  184.             while(rs.next()) {
  185.                 if (rs.getString("concertName").equals(concert)) {
  186.                     return true;
  187.                 }
  188.             }
  189.             System.out.println("Concerto não existe, tem de o criar primeiro");
  190.             return false;
  191.         }
  192.         catch(Exception e){
  193.             e.printStackTrace();
  194.         }
  195.         return false;
  196.     }
  197.  
  198.     public boolean playlistExists(String playlist){
  199.         Connecting con = new Connecting();
  200.         String sql="Select * from playlists where \"playlistName\"= "+"'" + playlist +"'";
  201.         ResultSet rs = con.executeSearch(sql);
  202.         try{
  203.             while(rs.next()) {
  204.                 if (rs.getString("playlistName").equals(playlist)) {
  205.                     return true;
  206.                 }
  207.             }
  208.             System.out.println("Playlist não existe, tem de a criar primeiro");
  209.             return false;
  210.         }
  211.         catch(Exception e){
  212.             e.printStackTrace();
  213.         }
  214.         return false;
  215.     }
  216.  
  217.     public boolean userExists(String username){
  218.         Connecting con = new Connecting();
  219.         String sql="Select * from users where \"username\"= "+"'" + username +"'";
  220.         ResultSet rs = con.executeSearch(sql);
  221.         try{
  222.             while(rs.next()) {
  223.                 if (rs.getString("username").equals(username)) {
  224.                     return true;
  225.                 }
  226.             }
  227.             System.out.println("Utilizador não existe, tem de o criar primeiro");
  228.             return false;
  229.         }
  230.         catch(Exception e){
  231.             e.printStackTrace();
  232.         }
  233.         return false;
  234.     }
  235.  
  236.  
  237.  
  238.  
  239.  
  240.     public boolean addArtist(String username, String artistName,String artistGender, String artistBirthdate, String artistMusicGender, String artistDescription, String artistJob){
  241.         String packet;
  242.         if (checkIfEditor(username)==false) {
  243.             //packet = username +"|answer|noteditor";
  244.             //return packet;
  245.             System.out.println(username + " nao e editor");
  246.             return false;
  247.         }
  248.         if(artistExists(artistName)==false) {
  249.             String insert = "Insert into artists values (" + "'" + artistName + "','" + artistGender + "','" + artistBirthdate + "','" + artistMusicGender + "','" + artistDescription + "','" + artistJob + "')";
  250.             executeSQL(insert);
  251.             //packet = username +"|answer|true";
  252.             //return packet;
  253.             System.out.println("Artista " + artistName + " criado com sucesso!");
  254.             return true;
  255.         }
  256.         else{
  257.             System.out.println("Artista " + artistName + " ja criado");
  258.             return false;
  259.  
  260.         }
  261.     }
  262.  
  263.     public boolean addAlbum(String username, String albumName, String albumArtist, String albumGender, String albumDate, String albumDescription, String albumPublisher, double albumScore) throws IOException{
  264.         String packet;
  265.         Connecting con= new Connecting();
  266.         if (con.checkIfEditor(username)==false) {
  267.             //packet = username +"|answer|noteditor";
  268.             //return packet;
  269.             System.out.println(username + " nao e editor");
  270.             return false;
  271.         }
  272.         /*
  273.         if (albumExists(albumName) == true) {
  274.             packet = username "|answer|albumalreadyexists";
  275.             return packet;        }
  276.         */
  277.         if(artistExists(albumArtist) == true){
  278.             String insert = "Insert into albums values (" + "'" + albumName + "','" + albumArtist + "','" + albumGender + "','" + albumDate + "','"  +  albumDescription+ "','" + albumPublisher+ "','" + albumScore + "')";
  279.             executeSQL(insert);
  280.             //packet = username +"|answer|true";
  281.             //return packet;
  282.             System.out.println("Album " + albumName + " criado com sucesso");
  283.             return true;
  284.         }
  285.         else{
  286.             //packet = username +"|answer|createartistfirst";
  287.             //return packet;
  288.             System.out.println(albumArtist + " inexistente, crie-o primeiro!");
  289.             return false;
  290.             /*
  291.             System.out.println("Artista inexistente correspondente ao album! Temos de criá-lo primeiro!");
  292.             BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
  293.             System.out.println("Insira o sexo do artista");
  294.             String artistGender = input.readLine();
  295.             System.out.println("Insira a data de nascimento do artista");
  296.             String artistBirthdate = input.readLine();
  297.             System.out.println("Insira o género de música do artista");
  298.             String artistMusicGender = input.readLine();
  299.             System.out.println("Insira a descrição do artista");
  300.             String artistDescription = input.readLine();
  301.             try {
  302.                 Class.forName("org.postgresql.Driver");
  303.                 connect2 = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/DropMusic", "postgres", "bd");
  304.             } catch (Exception e) {
  305.                 e.printStackTrace();
  306.             }
  307.             String insert = "Insert into artists values (" + "'" + albumArtist + "','" + artistGender + "','" + artistBirthdate + "','" + artistMusicGender + "','" + artistDescription + "')";
  308.             String insert2 = "Insert into albums values (" + "'" + albumName + "','" + albumArtist + "','" + albumGender + "','" + albumDate + "','"  +  albumDescription + "')";
  309.  
  310.             try {
  311.                 Statement st = connect2.createStatement();
  312.                 Statement st2 = connect2.createStatement();
  313.                 int res = st.executeUpdate(insert);
  314.                 int res2 = st2.executeUpdate(insert2);
  315.                 connect2.close();
  316.  
  317.  
  318.             } catch (Exception e) {
  319.                 e.printStackTrace();
  320.  
  321.             }
  322.             */
  323.         }
  324.  
  325.     }
  326.  
  327.     public boolean addSong(String username, String songName, String songArtist, String songGender, String songAlbum, String songDuration, String songPublisher, String songCompositor, String songWriter, String songOrder) throws IOException {
  328.         String packet;
  329.         if (checkIfEditor(username)==false) {
  330.             //packet = username +"|answer|noteditor";
  331.             //return packet;
  332.             System.out.println(username + " nao e editor");
  333.             return false;
  334.         }
  335.         if(albumExists(songAlbum)==false){
  336.             return false;
  337.         }
  338.         if(artistExists(songArtist) == true){
  339.             double x=0.0;
  340.             String insert = "Insert into songs values (" + "'" + songName + "','" + songArtist + "','" + songGender + "','" + songAlbum + "','" + songDuration+ "','" + songPublisher+ x +"','" + x+"','" + songCompositor+ "','" + songWriter+ "','" + songOrder + "')";
  341.             executeSQL(insert);
  342.             //packet = username +"|answer|true";
  343.             //return packet;
  344.             System.out.println("Musica " + songName + " criada com sucesso");
  345.             return true;
  346.         }
  347.         else{
  348.             System.out.println(songArtist + " inexistente, crie-o primeiro!");
  349.             return false;
  350.         }
  351.     }
  352.  
  353.     public void addConcert(String username, String concertName,String concertLocation, String concertDate){
  354.         String packet;
  355.         if (checkIfEditor(username)==false) {
  356.             //packet = username +"|answer|noteditor";
  357.             //return packet;
  358.             System.out.println(username + " nao e editor");
  359.  
  360.         }
  361.  
  362.         String insert = "Insert into concerts values (" + "'" + concertName + "','" + concertLocation + "','" + concertDate + "')";
  363.         executeSQL(insert);
  364.         //packet = username +"|answer|true";
  365.         //return packet;
  366.         System.out.println("Concerto " + concertName + " criado com sucesso!");
  367.     }
  368.  
  369.     public void addSongConcert(String username, String concert, String song, String order){
  370.         String packet;
  371.         if (checkIfEditor(username)==false) {
  372.             //packet = username +"|answer|noteditor";
  373.             //return packet;
  374.             System.out.println(username + " nao e editor");
  375.             return;
  376.         }
  377.         if(concertExists(concert)) {
  378.             if (songExists(song)) {
  379.                 String insert = "Insert into songs_concerts values (" + "'" + song + "','" + concert+ "','" + order + "')";
  380.                 executeSQL(insert);
  381.                 //packet = username +"|answer|true";
  382.                 //return packet;
  383.                 System.out.println("Musica " + song + " adicionada com sucesso ao concerto " + concert + "!");
  384.             } else {
  385.                 System.out.println("Nao existe nenhuma musica com o nome " + song);
  386.             }
  387.         }
  388.         else{
  389.             System.out.println("Concerto nao existe");
  390.         }
  391.  
  392.     }
  393.  
  394.     public void addPlaylist(String username, String playlistName){
  395.         String packet;
  396.         if (checkIfEditor(username)==false) {
  397.             //packet = username +"|answer|noteditor";
  398.             //return packet;
  399.             System.out.println(username + " nao e editor");
  400.  
  401.         }
  402.  
  403.         String insert = "Insert into playlists values (" + "'" + playlistName + "','" + username+ "')";
  404.         executeSQL(insert);
  405.         //packet = username +"|answer|true";
  406.         //return packet;
  407.         System.out.println("Playlist " + playlistName + " criada com sucesso!");
  408.     }
  409.  
  410.     public void addSongPlaylist(String username, String playlist, String song, String order){
  411.         String packet;
  412.         if (checkIfEditor(username)==false) {
  413.             //packet = username +"|answer|noteditor";
  414.             //return packet;
  415.             System.out.println(username + " nao e editor");
  416.             return;
  417.         }
  418.         if(playlistExists(playlist)) {
  419.             if (songExists(song)) {
  420.                 String insert = "Insert into playlist_song values (" + "'" + playlist + "','" + song+ "','" + order + "')";
  421.                 executeSQL(insert);
  422.                 //packet = username +"|answer|true";
  423.                 //return packet;
  424.                 System.out.println("Musica " + song + " adicionada com sucesso a playlist " + playlist + "!");
  425.             } else {
  426.                 System.out.println("Nao existe nenhuma musica com o nome " + song);
  427.             }
  428.         }
  429.         else{
  430.             System.out.println("Concerto nao existe");
  431.         }
  432.  
  433.     }
  434.  
  435.     public void addArtistBand(String username, String band, String artist){
  436.         String packet;
  437.         if (checkIfEditor(username)==false) {
  438.             //packet = username +"|answer|noteditor";
  439.             //return packet;
  440.             System.out.println(username + " nao e editor");
  441.             return;
  442.         }
  443.         if (artistExists(artist)) {
  444.             String insert = "Insert into artist_band values (" + "'" + artist + "','" + band + "')";
  445.             executeSQL(insert);
  446.             //packet = username +"|answer|true";
  447.             //return packet;
  448.             System.out.println("Artista " + artist + " adicionado com sucesso a banda " + band + "!");
  449.         } else {
  450.             System.out.println("Nao existe nenhum artist com o nome " + artist);
  451.         }
  452.     }
  453.  
  454.  
  455.  
  456.  
  457.     //Quando o utilizador faz uma critica, a pontuacao do album e automaticamente atualizada no albumScore da tabela albums
  458.  
  459.     public boolean commentAlbum(String username,String album, String comment, double score) throws IOException{
  460.         String packet;
  461.  
  462.         if (albumExists(album) == false) {
  463.             //packet = username +"|answer|createalbumfirst";
  464.             //return packet;
  465.             System.out.println("Album " +album+ " nao existe!");
  466.             return false;
  467.         }
  468.         try {
  469.             Class.forName("org.postgresql.Driver");
  470.             connect = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/DropMusic", "postgres", "bd");
  471.         } catch (Exception e) {
  472.             e.printStackTrace();
  473.         }
  474.         String insert = "Insert into albums_comments values (" + "'" + username + "','" + album + "','" + comment + "','" + score + "')";
  475.  
  476.         try {
  477.             Statement st = connect.createStatement();
  478.             int res = st.executeUpdate(insert);
  479.             getAlbumAverage(username,album);
  480.         } catch (Exception e) {
  481.             e.printStackTrace();
  482.  
  483.         }
  484.         return true;
  485.         //packet = username +"|answer|true";
  486.         //return packet;
  487.     }
  488.  
  489.     //Quando o utilizador faz uma critica, a pontuacao da musica e automaticamente atualizada no songScore da tabela songs
  490.     public void commentSong(String username,String song, String comment, double score) throws IOException{
  491.         String packet;
  492.  
  493.         if (songExists(song) == false) {
  494.             //packet = username +"|answer|createalbumfirst";
  495.             //return packet;
  496.             System.out.println("Musica " +song+ " nao existe!");
  497.         }
  498.         try {
  499.             Class.forName("org.postgresql.Driver");
  500.             connect = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/DropMusic", "postgres", "bd");
  501.         } catch (Exception e) {
  502.             e.printStackTrace();
  503.         }
  504.         String insert = "Insert into songs_comments values (" + "'" + username + "','" + song + "','" + comment + "','" + score + "')";
  505.  
  506.         try {
  507.             Statement st = connect.createStatement();
  508.             int res = st.executeUpdate(insert);
  509.             getSongAverage(username,song);
  510.         } catch (Exception e) {
  511.             e.printStackTrace();
  512.  
  513.         }
  514.         //packet = username +"|answer|true";
  515.         //return packet;
  516.     }
  517.  
  518.     public void viewCommentsAlbum(String username, String albumPesquisa) throws SQLException{
  519.         String packet;
  520.         if(albumExists(albumPesquisa)==false){
  521.             //packet = username +"|answer|createalbumfirst";
  522.             //return packet;
  523.             System.out.println("Album nao existe");
  524.         }
  525.         //Connecting con = new Connecting();
  526.         //String sql="Select count(*) from albums_comments where \"album\"= "+"'" + albumPesquisa +"'";
  527.         //ResultSet rs = con.executeSearch(sql);
  528.         String sql2="Select * from albums_comments where \"album\"= "+"'" + albumPesquisa +"'";
  529.         Connecting con2 = new Connecting();
  530.         ResultSet rs2 = con2.executeSearch(sql2);
  531.         ArrayList<String> comments = new ArrayList<String>();
  532.         int number=0;
  533.         /*
  534.         while(rs.next()) {
  535.                 number = rs.getInt(1);
  536.  
  537.                 }
  538.         */
  539.         while(rs2.next()){
  540.             comments.add("\nUsername: " + rs2.getString("username")+"\nComentario: " +rs2.getString("comment")+"\nScore: "+rs2.getString("score"));
  541.         }
  542.         //packet = username +"|" + number + "|answer|" + comments;
  543.         packet = "Comentarios do album " + albumPesquisa +" :\n" + comments;
  544.         System.out.println(packet);
  545.  
  546.     }
  547.  
  548.     public void viewCommentsSong(String username, String songPesquisa) throws SQLException{
  549.         String packet;
  550.         if(songExists(songPesquisa)==false){
  551.             //packet = username +"|answer|createsongfirst";
  552.             //return packet;
  553.             System.out.println("Musica nao existe");
  554.         }
  555.         //Connecting con = new Connecting();
  556.         //String sql="Select count(*) from albums_comments where \"album\"= "+"'" + albumPesquisa +"'";
  557.         //ResultSet rs = con.executeSearch(sql);
  558.         String sql2="Select * from songs_comments where \"song\"= "+"'" + songPesquisa +"'";
  559.         Connecting con2 = new Connecting();
  560.         ResultSet rs2 = con2.executeSearch(sql2);
  561.         ArrayList<String> comments = new ArrayList<String>();
  562.         int number=0;
  563.         /*
  564.         while(rs.next()) {
  565.                 number = rs.getInt(1);
  566.  
  567.                 }
  568.         */
  569.         while(rs2.next()){
  570.             comments.add("\nUsername: " + rs2.getString("username")+"\nComentario: " +rs2.getString("comment")+"\nScore: "+rs2.getString("score"));
  571.         }
  572.         //packet = username +"|" + number + "|answer|" + comments;
  573.         packet = "Comentarios da musica " + songPesquisa +" :\n" + comments;
  574.         System.out.println(packet);
  575.  
  576.     }
  577.  
  578.     public void getAlbumAverage(String username, String album)throws IOException, SQLException {
  579.         String packet;
  580.  
  581.         Connecting con = new Connecting();
  582.         String sql = "Select count(*) from albums_comments where \"album\"= " + "'" + album + "'";
  583.         ResultSet rs = con.executeSearch(sql);
  584.         double total = 0.0, val = 0.0;
  585.         while (rs.next()) {
  586.             total = (rs.getFloat(1));
  587.         }
  588.         Connecting con2 = new Connecting();
  589.         String sql2 = "Select sum(score) from albums_comments where \"album\"= " + "'" + album + "'";
  590.         ResultSet rs2 = con2.executeSearch(sql2);
  591.         while (rs2.next()) {
  592.             val = rs2.getFloat(1);
  593.         }
  594.         double x = (val / total);
  595.         double average = (double) Math.round(x * 100) / 100;
  596.         //System.out.println(average);
  597.         String update;
  598.         update = "Update albums set \"albumScore\"= " + "'" + average + "'where \"albumName\"= " + "'" + album + "'";
  599.         executeSQL(update);
  600.         //packet = username + "|answer|" + average;
  601.         //return packet;
  602.     }
  603.  
  604.     public void getSongAverage(String username, String song)throws IOException, SQLException {
  605.         String packet;
  606.  
  607.         Connecting con = new Connecting();
  608.         String sql = "Select count(*) from songs_comments where \"song\"= " + "'" + song + "'";
  609.         ResultSet rs = con.executeSearch(sql);
  610.         double total = 0.0, val = 0.0;
  611.         while (rs.next()) {
  612.             total = (rs.getFloat(1));
  613.         }
  614.         Connecting con2 = new Connecting();
  615.         String sql2 = "Select sum(score) from songs_comments where \"song\"= " + "'" + song + "'";
  616.         ResultSet rs2 = con2.executeSearch(sql2);
  617.         while (rs2.next()) {
  618.             val = rs2.getFloat(1);
  619.         }
  620.         double x = (val / total);
  621.         double average = (double) Math.round(x * 100) / 100;
  622.         System.out.println(average);
  623.         String update;
  624.         update = "Update songs set \"songScore\"= " + "'" + average + "'where \"songName\"= " + "'" + song + "'";
  625.         executeSQL(update);
  626.         //packet = username + "|answer|" + average;
  627.         //return packet;
  628.     }
  629.  
  630.  
  631.  
  632.     public boolean checkUsername(String username){
  633.         Connecting con = new Connecting();
  634.         String sql="Select * from users where \"username\"= "+"'" + username +"'";
  635.         ResultSet rs = con.executeSearch(sql);
  636.         try{
  637.             while(rs.next()) {
  638.                 if (rs.getString("username").equals(username)) {
  639.                     return true;
  640.                 }
  641.             }
  642.  
  643.             return false;
  644.         }
  645.         catch(Exception e){
  646.             e.printStackTrace();
  647.         }
  648.  
  649.         return false;
  650.  
  651.     }
  652.  
  653.     public String checkUsernameRMI(String username){
  654.         String packet = "";
  655.         if(checkUsername(username)){
  656.             packet = username +"|answer|true";
  657.         }
  658.         else {
  659.             packet = username +"|answer|false";
  660.         }
  661.         return packet;
  662.     }
  663.  
  664.     public boolean checkPassword(String username, String password){
  665.         Connecting con = new Connecting();
  666.         String sql="Select * from users where \"username\"= "+"'" + username +"'";
  667.         ResultSet rs = con.executeSearch(sql);
  668.         try{
  669.             while(rs.next()) {
  670.                 if (rs.getString("password").equals(password)) {
  671.                     return true;
  672.                 }
  673.             }
  674.  
  675.             return false;
  676.         }
  677.         catch(Exception e){
  678.             e.printStackTrace();
  679.         }
  680.         return false;
  681.     }
  682.  
  683.     public String checkPasswordRMI(String username, String password){
  684.         String packet = "";
  685.         if(checkPassword(username, password)){
  686.             packet = username +"|answer|true";
  687.         }
  688.         else {
  689.             packet = username +"|answer|false";
  690.         }
  691.         return packet;
  692.     }
  693.  
  694.     public boolean createUser(String username, String password, String onlineStatus) throws IOException, SQLException {
  695.         String packet="";
  696.         if(checkUsername(username)==true){
  697.             System.out.println("Esse username já está a ser utilizado");
  698.             //packet = username +"|answer|usernamealreadyused";
  699.             //return packet;
  700.             return false;
  701.         }
  702.         try {
  703.             Class.forName("org.postgresql.Driver");
  704.             connect2 = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/DropMusic", "postgres", "bd");
  705.         } catch (Exception e) {
  706.             e.printStackTrace();
  707.         }
  708.         Connecting con = new Connecting();
  709.         String sql = "Select count(*) from users";
  710.         ResultSet rs = con.executeSearch(sql);
  711.         int total=0;
  712.         while (rs.next()) {
  713.             total = (rs.getInt(1));
  714.         }
  715.         String editorStatus="";
  716.         if(total==0){
  717.             editorStatus="yes";
  718.         }
  719.         else{
  720.             editorStatus="no";
  721.         }
  722.         String insert = "Insert into users values (" + "'" + username + "','" + password + "','" + editorStatus + "','"+ onlineStatus + "')";
  723.  
  724.         try {
  725.             Statement st = connect2.createStatement();
  726.             int res = st.executeUpdate(insert);
  727.             connect2.close();
  728.  
  729.  
  730.         } catch (Exception e) {
  731.             e.printStackTrace();
  732.  
  733.         }
  734.         //packet = username +"|answer|true";
  735.         //return packet;
  736.         System.out.println("Utilizador " + username + " foi criado com sucesso!");
  737.         return true;
  738.     }
  739.  
  740.     public boolean login(String username, String password){
  741.         String packet;
  742.         if(checkPassword(username, password)==true) {
  743.             String update;
  744.             String on = "on";
  745.             update = "Update users set \"onlineStatus\"= " + "'" + on + "'where \"username\"= " + "'" + username + "'";
  746.             executeSQL(update);
  747.             //packet = username + "|answer|true";
  748.             System.out.println("Esta agora online!");
  749.             return true;
  750.         }else{
  751.             System.out.println("Password errada!");
  752.             //packet = username +"|answer|false";
  753.             return false;
  754.         }
  755.         //return packet;
  756.     }
  757.  
  758.     public void logout(String username){
  759.         String packet;
  760.         String update;
  761.         String off = "off";
  762.         update = "Update users set \"onlineStatus\"= " + "'" + off + "'where \"username\"= " + "'" + username + "'";
  763.         executeSQL(update);
  764.         //packet = username + "|answer|true";
  765.         //return packet;
  766.         System.out.println("Esta agora offline");
  767.     }
  768.  
  769.     public boolean checkIfEditor(String username){
  770.         Connecting con = new Connecting();
  771.         String sql="Select * from users where \"username\"= "+"'" + username +"'";
  772.         ResultSet rs = con.executeSearch(sql);
  773.         try{
  774.             while(rs.next()) {
  775.                 if (rs.getString("editorStatus").equals("yes")) {
  776.                     return true;
  777.                 }
  778.             }
  779.             System.out.println("Não é editor, não tem privilégios");
  780.             return false;
  781.         }
  782.         catch(Exception e){
  783.             e.printStackTrace();
  784.         }
  785.         return false;
  786.     }
  787.  
  788.     public boolean makeEditor(String username, String newEditorToBe) throws SQLException{
  789.         String packet = "";
  790.         if(checkIfEditor(username)) {
  791.             String sql = "Update users set \"editorStatus\"= 'yes' where \"username\"= " + "'" + newEditorToBe + "'";
  792.             executeSQL(sql);
  793.             //packet = username +"|answer|true";
  794.             System.out.println(newEditorToBe + " e agora editor!");
  795.             return true;
  796.         }
  797.         else{
  798.             //packet = username +"|answer|false";
  799.             System.out.println(username + " nao e editor!");
  800.             return false;
  801.         }
  802.     }
  803.  
  804.  
  805.  
  806.     public void searchBySongName(String username, String songname) throws SQLException{
  807.         ArrayList<String> songs = new ArrayList<String>();
  808.         String sql2="Select * from songs where \"songName\"= "+"'" + songname +"'";
  809.         Connecting con2 = new Connecting();
  810.         ResultSet rs2 = con2.executeSearch(sql2);
  811.  
  812.         while(rs2.next()){
  813.             songs.add("\nNome da musica: " + rs2.getString("songName")+ "\nNome do artista: " +rs2.getString("songArtist")+ "\nGenero da musica: " +rs2.getString("songGender")+ "\nNome do album: " +rs2.getString("songAlbum")+ "\nDuracao da musica: " +rs2.getString("songDuration")+ "\nEditora da musica: " +rs2.getString("songPublisher")+ "\nClassificacao da musica: " +rs2.getString("songScore")+ "\nCompositor da musica: " +rs2.getString("songCompositor")+ "\nLetrista da musica: " +rs2.getString("songWriter")+ "\nOrdem da musica: " +rs2.getString("songOrder")+"\n");
  814.  
  815.         }
  816.         String packet = "Musicas com o nome " + songname +" :\n" + songs;
  817.         System.out.println(packet);
  818.     }
  819.  
  820.     public void searchByGender(String username, String gender) throws SQLException{
  821.         ArrayList<String> songs = new ArrayList<String>();
  822.         String sql2="Select * from songs where \"songGender\"= "+"'" + gender +"'";
  823.         Connecting con2 = new Connecting();
  824.         ResultSet rs2 = con2.executeSearch(sql2);
  825.  
  826.         while(rs2.next()){
  827.             songs.add("\nNome da musica: " + rs2.getString("songName")+ "\nNome do artista: " +rs2.getString("songArtist")+ "\nGenero da musica: " +rs2.getString("songGender")+ "\nNome do album: " +rs2.getString("songAlbum")+ "\nDuracao da musica: " +rs2.getString("songDuration")+ "\nEditora da musica: " +rs2.getString("songPublisher")+ "\nClassificacao da musica: " +rs2.getString("songScore")+rs2.getString("songCompositor")+ "\nLetrista da musica: " +rs2.getString("songWriter")+ "\nOrdem da musica: " +rs2.getString("songOrder")+"\n");
  828.  
  829.         }
  830.         String packet = "Musicas do genero " + gender +" :\n" + songs;
  831.         System.out.println(packet);
  832.         ArrayList<String> albums = new ArrayList<String>();
  833.         String sql="Select * from albums where \"albumGender\"= "+"'" + gender +"'";
  834.         Connecting con = new Connecting();
  835.         ResultSet rs = con.executeSearch(sql);
  836.  
  837.         while(rs.next()){
  838.             albums.add("\nNome do album: " + rs.getString("albumName")+ "\nNome do artista: " +rs.getString("albumArtist")+ "\nGenero do album: " +rs.getString("albumGender")+ "\nData do album: " +rs.getString("albumDate")+ "\nDescricao do album: " +rs.getString("albumDescription")+ "\nEditora do album: " +rs.getString("albumPublisher")+ "\nClassificacao do album: " +rs.getString("albumScore")+"\n");
  839.  
  840.         }
  841.         String packet2 = "Albuns do genero " + gender +" :\n" + albums;
  842.  
  843.         System.out.println(packet2);
  844.     }
  845.  
  846.     public void searchByArtist(String username, String artist) throws SQLException{
  847.         ArrayList<String> songs = new ArrayList<String>();
  848.         String sql2="Select * from songs where \"songArtist\"= "+"'" + artist +"'";
  849.         Connecting con2 = new Connecting();
  850.         ResultSet rs2 = con2.executeSearch(sql2);
  851.         while(rs2.next()){
  852.             songs.add("\nNome da musica: " + rs2.getString("songName")+ "\nNome do artista: " +rs2.getString("songArtist")+ "\nGenero da musica: " +rs2.getString("songGender")+ "\nNome do album: " +rs2.getString("songAlbum")+ "\nDuracao da musica: " +rs2.getString("songDuration")+ "\nEditora da musica: " +rs2.getString("songPublisher")+ "\nClassificacao da musica: " +rs2.getString("songScore")+rs2.getString("songCompositor")+ "\nLetrista da musica: " +rs2.getString("songWriter")+ "\nOrdem da musica: " +rs2.getString("songOrder")+"\n");
  853.  
  854.         }
  855.         String packet = "Musicas do artista " + artist +" :\n" + songs;
  856.         System.out.println(packet);
  857.  
  858.         ArrayList<String> albums = new ArrayList<String>();
  859.         String sql="Select * from albums where \"albumArtist\"= "+"'" + artist +"'";
  860.         Connecting con = new Connecting();
  861.         ResultSet rs = con.executeSearch(sql);
  862.  
  863.         while(rs.next()){
  864.             albums.add("\nNome do album: " + rs.getString("albumName")+ "\nNome do artista: " +rs.getString("albumArtist")+ "\nGenero do album: " +rs.getString("albumGender")+ "\nData do album: " +rs.getString("albumDate")+ "\nDescricao do album: " +rs.getString("albumDescription")+ "\nEditora do album: " +rs.getString("albumPublisher")+ "\nClassificacao do album: " +rs.getString("albumScore")+"\n");
  865.  
  866.         }
  867.         String packet2 = "Albuns do artista " + artist +" :\n" + albums;
  868.         System.out.println(packet2);
  869.     }
  870.  
  871.     public void searchByCompositor(String username, String compositor) throws SQLException{
  872.         ArrayList<String> songs = new ArrayList<String>();
  873.         String sql2="Select * from songs where \"songCompositor\"= "+"'" + compositor +"'";
  874.         Connecting con2 = new Connecting();
  875.         ResultSet rs2 = con2.executeSearch(sql2);
  876.         while(rs2.next()){
  877.             songs.add("\nNome da musica: " + rs2.getString("songName")+ "\nNome do artista: " +rs2.getString("songArtist")+ "\nGenero da musica: " +rs2.getString("songGender")+ "\nNome do album: " +rs2.getString("songAlbum")+ "\nDuracao da musica: " +rs2.getString("songDuration")+ "\nEditora da musica: " +rs2.getString("songPublisher")+ "\nClassificacao da musica: " +rs2.getString("songScore")+rs2.getString("songCompositor")+ "\nLetrista da musica: " +rs2.getString("songWriter")+ "\nOrdem da musica: " +rs2.getString("songOrder")+"\n");
  878.  
  879.         }
  880.         String packet = "Musicas do compositor " + compositor +" :\n" + songs;
  881.         System.out.println(packet);
  882.     }
  883.  
  884.     public void searchByAlbum(String username, String album) throws SQLException{
  885.         ArrayList<String> songs = new ArrayList<String>();
  886.         String sql2="Select * from songs where \"songAlbum\"= "+"'" + album +"'"+"order by \"songOrder\" ";
  887.         Connecting con2 = new Connecting();
  888.         ResultSet rs2 = con2.executeSearch(sql2);
  889.  
  890.         while(rs2.next()){
  891.             songs.add("\nNome da musica: " + rs2.getString("songName")+ "\nNome do artista: " +rs2.getString("songArtist")+ "\nGenero da musica: " +rs2.getString("songGender")+ "\nNome do album: " +rs2.getString("songAlbum")+ "\nDuracao da musica: " +rs2.getString("songDuration")+ "\nEditora da musica: " +rs2.getString("songPublisher")+ "\nClassificacao da musica: " +rs2.getString("songScore")+ "\nCompositor da musica: " +rs2.getString("songCompositor")+ "\nLetrista da musica: " +rs2.getString("songWriter")+ "\nOrdem da musica: " +rs2.getString("songOrder")+"\n");
  892.  
  893.         }
  894.         String packet = "Album com o nome " + album +" :\n" + songs;
  895.         System.out.println(packet);
  896.     }
  897.  
  898.     public void searchByPlaylist(String username, String playlist) throws SQLException{
  899.         ArrayList<String> songs = new ArrayList<String>();
  900.         String sql2="Select * from playlist_song where \"playlist\"= "+"'" + playlist +"'"+"order by \"order\" ";
  901.         Connecting con2 = new Connecting();
  902.         ResultSet rs2 = con2.executeSearch(sql2);
  903.  
  904.         while(rs2.next()){
  905.             songs.add("\nNome da musica: " + rs2.getString("song")+ "\nOrdem da musica: " +rs2.getString("order"));
  906.  
  907.         }
  908.         String packet = "Playlist com o nome " + playlist +" :\n" + songs;
  909.         System.out.println(packet);
  910.     }
  911.  
  912.     public void searchByBand(String username, String band) throws SQLException{
  913.         ArrayList<String> artists = new ArrayList<String>();
  914.         String sql2="Select * from artist_band where \"band\"= "+"'" + band +"'";
  915.         Connecting con2 = new Connecting();
  916.         ResultSet rs2 = con2.executeSearch(sql2);
  917.  
  918.         while(rs2.next()){
  919.             artists.add("\nNome do artista: " + rs2.getString("artist"));
  920.  
  921.         }
  922.         String packet = "Artistas da banda " + band +" :\n" + artists;
  923.         System.out.println(packet);
  924.     }
  925.  
  926.     public void searchByPublisher(String username, String publisher) throws SQLException{
  927.         ArrayList<String> songs = new ArrayList<String>();
  928.         String sql2="Select * from songs where \"songPublisher\"= "+"'" + publisher +"'";
  929.         Connecting con2 = new Connecting();
  930.         ResultSet rs2 = con2.executeSearch(sql2);
  931.         while(rs2.next()){
  932.             songs.add("\nNome da musica: " + rs2.getString("songName")+ "\nNome do artista: " +rs2.getString("songArtist")+ "\nGenero da musica: " +rs2.getString("songGender")+ "\nNome do album: " +rs2.getString("songAlbum")+ "\nDuracao da musica: " +rs2.getString("songDuration")+ "\nEditora da musica: " +rs2.getString("songPublisher")+ "\nClassificacao da musica: " +rs2.getString("songScore")+rs2.getString("songCompositor")+ "\nLetrista da musica: " +rs2.getString("songWriter")+ "\nOrdem da musica: " +rs2.getString("songOrder")+"\n");
  933.  
  934.         }
  935.         String packet = "Musicas da editora " + publisher +" :\n" + songs;
  936.         System.out.println(packet);
  937.  
  938.         ArrayList<String> albums = new ArrayList<String>();
  939.         String sql="Select * from albums where \"albumPublisher\"= "+"'" + publisher +"'";
  940.         Connecting con = new Connecting();
  941.         ResultSet rs = con.executeSearch(sql);
  942.  
  943.         while(rs.next()){
  944.             albums.add("\nNome do album: " + rs.getString("albumName")+ "\nNome do artista: " +rs.getString("albumArtist")+ "\nGenero do album: " +rs.getString("albumGender")+ "\nData do album: " +rs.getString("albumDate")+ "\nDescricao do album: " +rs.getString("albumDescription")+ "\nEditora do album: " +rs.getString("albumPublisher")+ "\nClassificacao do album: " +rs.getString("albumScore")+"\n");
  945.  
  946.         }
  947.         String packet2 = "Albuns da editora " + publisher +" :\n" + albums;
  948.         System.out.println(packet2);
  949.     }
  950.  
  951.     public void searchByConcert(String username, String concert) throws SQLException{
  952.         ArrayList<String> concerts = new ArrayList<String>();
  953.         String sql="Select * from concerts where \"concertName\"= "+"'" + concert +"'";
  954.         Connecting con = new Connecting();
  955.         ResultSet rs = con.executeSearch(sql);
  956.  
  957.         while(rs.next()){
  958.             concerts.add("\nNome do concerto: " + rs.getString("concertName")+ "\nLocalizacao do concerto: " +rs.getString("concerLocation")+ "\nData do concerto: " +rs.getString("concertDate"));
  959.  
  960.         }
  961.         String packet2 = "Informacoes do concerto " + concert +" :\n" + concerts;
  962.         System.out.println(packet2);
  963.  
  964.         ArrayList<String> songs = new ArrayList<String>();
  965.         String sql2="Select * from songs_concerts where \"concert\"= "+"'" + concert +"'"+"order by \"order\" ";
  966.         Connecting con2 = new Connecting();
  967.         ResultSet rs2 = con2.executeSearch(sql2);
  968.  
  969.         while(rs2.next()){
  970.             songs.add("\nNome da musica: " + rs2.getString("song")+ "\nOrdem da musica: " +rs2.getString("order"));
  971.  
  972.         }
  973.         String packet = "Musicas tocadas no concerto" + concert +" :\n" + songs;
  974.         System.out.println(packet);
  975.     }
  976.  
  977.  
  978.     //Tabela musicfiles: type=uploaded -> utilizador fez uploaded
  979.     //                   type=shared -> utilizador recebeu a partilha de um musicfile
  980.     public void uploadFile(String username,String songName,String filepath){
  981.         String insert = "Insert into musicfiles values (" + "'" + username + "','" + songName + "','" + filepath + "','" + "upload" + "')";
  982.         executeSQL(insert);
  983.  
  984.     }
  985.  
  986.     public void shareFile(String userToShare, String filename) throws SQLException {
  987.         if(userExists(userToShare)) {
  988.             String newFile = "";
  989.             String newSong = "";
  990.             String sql = "Select * from musicfiles where \"filepath\"= " + "'" + filename + "'";
  991.             Connecting con = new Connecting();
  992.             ResultSet rs = con.executeSearch(sql);
  993.  
  994.             while (rs.next()) {
  995.                 newFile = rs.getString("filepath");
  996.                 newSong = rs.getString("song");
  997.             }
  998.  
  999.             String insert = "Insert into musicfiles values (" + "'" + userToShare + "','" + newSong + "','" + newFile + "','" + "shared" + "')";
  1000.             executeSQL(insert);
  1001.             System.out.println("Musica " + newSong + " foi partilhada com " + userToShare + " com sucesso!");
  1002.         }
  1003.         else{
  1004.             return;
  1005.         }
  1006.     }
  1007.  
  1008.     //Ficheiros que o utilizador pode sacar porque foram partilhados com ele
  1009.     public void filesToDownload(String username) throws SQLException {
  1010.         ArrayList<String> files = new ArrayList<String>();
  1011.         String x="shared";
  1012.         String sql2="Select * from musicfiles where \"type\"='shared' and \"username\"= "+"'" + username +"'";
  1013.         Connecting con2 = new Connecting();
  1014.         ResultSet rs2 = con2.executeSearch(sql2);
  1015.  
  1016.         while(rs2.next()){
  1017.             files.add("\nNome do ficheiro: " + rs2.getString("filepath"));
  1018.         }
  1019.         String packet = "Ficheiros que foram partilhados com o utilizador " +username + " :\n" + files;
  1020.         System.out.println(packet);
  1021.     }
  1022.  
  1023.  
  1024.     public void deleteAlbum(String username, String album){
  1025.         checkIfEditor(username);
  1026.         albumExists(album);
  1027.         String delete = "Delete from albums where \"albumName\"= "+"'" + album +"'";
  1028.         executeSQL(delete);
  1029.         System.out.println("Album e todas as músicas associadas a ele foram apagadas");
  1030.     }
  1031.  
  1032.     public void deleteSong(String username, String song){
  1033.         checkIfEditor(username);
  1034.         songExists(song);
  1035.         String delete = "Delete from songs where \"songName\"= "+"'" + song +"'";
  1036.         executeSQL(delete);
  1037.         System.out.println("A música foi apagada");
  1038.     }
  1039.  
  1040.     public void deleteArtist(String username, String artist){
  1041.         checkIfEditor(username);
  1042.         artistExists(artist);
  1043.         String delete = "Delete from artists where \"artistName\"= "+"'" + artist +"'";
  1044.         executeSQL(delete);
  1045.         System.out.println("Artista e todos os álbuns associados a ele foram apagadas");
  1046.     }
  1047.  
  1048.     public void changeArtistData(String username, String artist) throws IOException, SQLException {
  1049.         Scanner sc = new Scanner(System.in);
  1050.         checkIfEditor(username);
  1051.         while(artistExists(artist)) {
  1052.             String newName = "";
  1053.             String delete = "";
  1054.             boolean flag = true;
  1055.             while (flag) {
  1056.                 System.out.print("Alterar:\n1-Nome do artista;\n2-Sexo do artista;\n3-Data de nascimento do artista;\n4-Género de música do artista;\n5-Descrição do artista;\n6-Sair\n");
  1057.                 int opcao = sc.nextInt();
  1058.                 BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
  1059.                 switch (opcao) {
  1060.                     case 1:
  1061.                         System.out.println("Alterar o nome do artista para:");
  1062.                         newName = input.readLine();
  1063.                         delete = "Update artists set \"artistName\"= " + "'" + newName + "'where \"artistName\"= " + "'" + artist + "'";
  1064.                         executeSQL(delete);
  1065.                         break;
  1066.                     case 2:
  1067.                         System.out.println("Alterar o sexo do artista para:");
  1068.                         newName = input.readLine();
  1069.                         delete = "Update artists set \"artistGender\"= " + "'" + newName + "'where \"artistName\"= " + "'" + artist + "'";
  1070.                         executeSQL(delete);
  1071.                         break;
  1072.                     case 3:
  1073.                         System.out.println("Alterar a data de nascimento do artista para:");
  1074.                         newName = input.readLine();
  1075.                         delete = "Update artists set \"artistBirthdate\"= " + "'" + newName + "'where \"artistName\"= " + "'" + artist + "'";
  1076.                         executeSQL(delete);
  1077.                         break;
  1078.                     case 4:
  1079.                         System.out.println("Alterar o género de música do artista para:");
  1080.                         newName = input.readLine();
  1081.                         delete = "Update artists set \"artistMusicGender\"= " + "'" + newName + "'where \"artistName\"= " + "'" + artist + "'";
  1082.                         executeSQL(delete);
  1083.                         break;
  1084.                     case 5:
  1085.                         System.out.println("Alterar a descrição do artista para:");
  1086.                         newName = input.readLine();
  1087.                         delete = "Update artists set \"artistDescription\"= " + "'" + newName + "'where \"artistName\"= " + "'" + artist + "'";
  1088.                         executeSQL(delete);
  1089.                         break;
  1090.                     case 6:
  1091.                         flag = false;
  1092.                 }
  1093.             }
  1094.         }
  1095.  
  1096.     }
  1097.  
  1098.     public void changeAlbumData(String username, String album) throws IOException, SQLException {
  1099.         Scanner sc = new Scanner(System.in);
  1100.         checkIfEditor(username);
  1101.         while(albumExists(album)) {
  1102.             String newName = "";
  1103.             String delete = "";
  1104.             boolean flag = true;
  1105.             while (flag) {
  1106.                 System.out.print("Alterar:\n1-Nome do álbum;\n2-Género do álbum;\n3-Data do álbum;\n4-Descrição do álbum;\n5-Sair;\n");
  1107.                 int opcao = sc.nextInt();
  1108.                 BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
  1109.                 switch (opcao) {
  1110.                     case 1:
  1111.                         System.out.println("Alterar o nome do álbum para:");
  1112.                         newName = input.readLine();
  1113.                         delete = "Update albums set \"albumName\"= " + "'" + newName + "'where \"songName\"= " + "'" + album + "'";
  1114.                         executeSQL(delete);
  1115.                     case 2:
  1116.                         System.out.println("Alterar o género do álbum para:");
  1117.                         newName = input.readLine();
  1118.                         delete = "Update albums set \"albumGender\"= " + "'" + newName + "'where \"albumName\"= " + "'" + album + "'";
  1119.                         executeSQL(delete);
  1120.  
  1121.                     case 3:
  1122.                         System.out.println("Alterar a data do álbum para:");
  1123.                         newName = input.readLine();
  1124.                         delete = "Update albums set \"albumDate\"= " + "'" + newName + "'where \"albumName\"= " + "'" + album + "'";
  1125.                         executeSQL(delete);
  1126.  
  1127.                     case 4:
  1128.                         System.out.println("Alterar a descrição do álbum para:");
  1129.                         newName = input.readLine();
  1130.                         delete = "Update albums set \"albumDescription\"= " + "'" + newName + "'where \"albumName\"= " + "'" + album + "'";
  1131.                         executeSQL(delete);
  1132.                     case 5:
  1133.                         flag = false;
  1134.                 }
  1135.             }
  1136.         }
  1137.     }
  1138.  
  1139.     public void changeSongData(String username, String song) throws IOException, SQLException {
  1140.         Scanner sc = new Scanner(System.in);
  1141.         checkIfEditor(username);
  1142.         String newName = "";
  1143.         String newSongName = "";
  1144.         String delete = "";
  1145.         boolean flag = true;
  1146.         while(songExists(song)) {
  1147.  
  1148.             while (flag) {
  1149.                 System.out.print("Alterar:\n1-Nome da música;\n2-Género da música;\n3-Duração da música;\n4-Sair\n");
  1150.                 int opcao = sc.nextInt();
  1151.                 BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
  1152.                 switch (opcao) {
  1153.                     case 1:
  1154.                         System.out.println("Alterar o nome da música para:");
  1155.                         newSongName = input.readLine();
  1156.                         break;
  1157.  
  1158.                     case 2:
  1159.                         System.out.println("Alterar o género da música para:");
  1160.                         newName = input.readLine();
  1161.                         delete = "Update songs set \"songGender\"= " + "'" + newName + "'where \"songName\"= " + "'" + song + "'";
  1162.                         executeSQL(delete);
  1163.                         break;
  1164.                     case 3:
  1165.                         System.out.println("Alterar a duração da música para:");
  1166.                         newName = input.readLine();
  1167.                         delete = "Update songs set \"songDuration\"= " + "'" + newName + "'where \"songName\"= " + "'" + song + "'";
  1168.                         executeSQL(delete);
  1169.                         break;
  1170.                     case 4:
  1171.                         delete = "Update songs set \"songName\"= " + "'" + newSongName + "'where \"songName\"= " + "'" + song + "'";
  1172.                         executeSQL(delete);
  1173.                         flag = false;
  1174.                 }
  1175.             }
  1176.         }
  1177.     }
  1178.  
  1179.     public void changeArtistDescription(String username, String artist, String newDescription){
  1180.         checkIfEditor(username);
  1181.         artistExists(artist);
  1182.         String update;
  1183.         String update2;
  1184.         update = "Update artists set \"artistDescription\"= " + "'" + newDescription + "'where \"artistName\"= " + "'" + artist + "'";
  1185.         executeSQL(update);
  1186.         //update2 = "Insert into changed_description values (" + "'" + username + "','" + "artist" + "','" + artist + "')";
  1187.         //executeSQL(update2);
  1188.  
  1189.     }
  1190.  
  1191.     public void changeAlbumDescription(String username, String album, String newDescription){
  1192.         checkIfEditor(username);
  1193.         albumExists(album);
  1194.         String update;
  1195.         String update2;
  1196.         update = "Update albums set \"albumDescription\"= " + "'" + newDescription + "'where \"albumName\"= " + "'" + album + "'";
  1197.         executeSQL(update);
  1198.         //update2 = "Insert into changed_description values (" + "'" + username + "','" + "album" + "','" + album + "')";
  1199.         //executeSQL(update2);
  1200.  
  1201.     }
  1202.  
  1203.  
  1204.  
  1205.  
  1206.     /*
  1207.     public String clientsToBeNotified(String username, String album) throws SQLException{
  1208.         Connecting con = new Connecting();
  1209.         String sql = "Select * from editor_commented where \"album\"= "+"'" + album +"'";
  1210.         ResultSet rs = con.executeSearch(sql);
  1211.         ArrayList<String> users = new ArrayList<String>();
  1212.         while (rs.next()) {
  1213.             users.add(rs.getString("editorUsername"));
  1214.         }
  1215.         Connecting con2 = new Connecting();
  1216.         String sql2="Select count(*) from editor_commented where \"album\"= "+"'" + album +"'";
  1217.         ResultSet rs2 = con2.executeSearch(sql2);
  1218.         int number=0;
  1219.         while(rs2.next()) {
  1220.             number = rs2.getInt(1);
  1221.         }
  1222.         String packet = username + "|" + number + "|" + users;
  1223.         return packet;
  1224.     }
  1225.  
  1226.  
  1227.  
  1228.  
  1229.     public void editorsChangedDescription(String username, String album){
  1230.  
  1231.     }
  1232.     public void notifications(String username){
  1233.         Connecting con = new Connecting();
  1234.         String sql="Select count(*) from users_notfications where \"username\"= "+"'" + username +"'";
  1235.         ResultSet rs = con.executeSearch(sql);
  1236.         int number=0;
  1237.         while(rs.next()) {
  1238.             number = rs.getInt(1);
  1239.         }
  1240.         Connecting con2 = new Connecting();
  1241.         String sql2="Select * from users_notifications where \"username\"= "+"'" + username +"'";
  1242.         ResultSet rs2 = con2.executeSearch(sql2);
  1243.         ArrayList<String> notifications = new ArrayList<String>();
  1244.         while(rs2.next()) {
  1245.             notifications.add((rs2.getString("notification")));
  1246.         }
  1247.         String packet = username +"|" + number + "|answer|notifications" + notifications;
  1248.     }
  1249.  
  1250.     public String notificationsToDeliever(String username) throws SQLException{
  1251.         Connecting con = new Connecting();
  1252.         String sql="Select count(*) from users_notfications where \"username\"= "+"'" + username +"'";
  1253.         ResultSet rs = con.executeSearch(sql);
  1254.         int number=0;
  1255.         while(rs.next()) {
  1256.             number = rs.getInt(1);
  1257.         }
  1258.         Connecting con2 = new Connecting();
  1259.         String sql2="Select * from users_notifications where \"username\"= "+"'" + username +"'";
  1260.         ResultSet rs2 = con2.executeSearch(sql2);
  1261.         ArrayList<String> notifications = new ArrayList<String>();
  1262.         while(rs2.next()) {
  1263.             notifications.add((rs2.getString("notification")));
  1264.         }
  1265.         String packet = username +"|" + number + "|answer|notifications" + notifications;
  1266.  
  1267.         return packet;
  1268.     }
  1269.     */
  1270.  
  1271.     /*
  1272.     public void addaudioFile(String directory) throws IOException, SQLException, UnsupportedAudioFileException {
  1273.         File file=new File("C:\\Users\\jfmrb\\Desktop\\A");
  1274.         AudioInputStream ais=AudioSystem.getAudioInputStream(file);
  1275.         byte[] data=new byte[ais.available()];
  1276.         ais.read(data);
  1277.     }
  1278.  
  1279.     public byte[] convertToByte(String path) throws IOException {
  1280.  
  1281.         FileInputStream fis = new FileInputStream(path);
  1282.         ByteArrayOutputStream bos = new ByteArrayOutputStream();
  1283.         byte[] b = new byte[1024];
  1284.  
  1285.         for (int readNum; (readNum = fis.read(b)) != -1;) {
  1286.             bos.write(b, 0, readNum);
  1287.         }
  1288.  
  1289.         byte[] bytes = bos.toByteArray();
  1290.  
  1291.         return bytes;
  1292.     }
  1293.  
  1294.  
  1295.     private void convertBytesToFile(byte[] bytearray) {
  1296.         try {
  1297.  
  1298.             File outputFile = File.createTempFile("file", "mp3", getCacheDir());
  1299.             outputFile.deleteOnExit();
  1300.             FileOutputStream fileoutputstream = new FileOutputStream(tempMp3);
  1301.             fileoutputstream.write(bytearray);
  1302.             fileoutputstream.close();
  1303.  
  1304.         } catch (IOException ex) {
  1305.             ex.printStackTrace();
  1306.         }
  1307.     }
  1308.  
  1309.     */
  1310.     public static void main(String[] args) throws Exception {
  1311.  
  1312.         Connecting con = new Connecting();
  1313.  
  1314.         //con.addSong("xx","xx", "xx", "xx", "album horrivel");
  1315.         //con.createUser("juliana", "caodeagua", "no");
  1316.         //con.addAlbum("juliana", "xx", "rhcp", "rock", "2008", "muito bom");
  1317.         con.filesToDownload("maria");
  1318.         //con.makeEditor("juliana", "joao");
  1319.         //con.commentAlbum("joao", "xixio", "vavava", 2.5);
  1320.         //con.viewCommentsAlbum("joao","xixio" );
  1321.         //con.searchBySongGender("joao", "rock");
  1322.         //con.uploadFile("joao","macarena","C/Desktop/macarena.mp3");
  1323.         //con.shareFile("maria","C/Desktop/macarena.mp3");
  1324.         //con.searchBySongName("joao", "xau");
  1325.         //con.searchByArtist("joao","ze");
  1326.         //con.searchByGender("joao", "rock");
  1327.         //con.searchByAlbum("joao","xx");
  1328.         //con.songExists("xau");
  1329.         //con.deleteAlbum("melhoralbum");
  1330.         //con.changeSongData("juliana", "olaola");
  1331.         //con.getAlbumAverage("joao","xixio");
  1332.         //con.changeArtistDescription("joao", "paiva", "ola");
  1333.  
  1334.  
  1335.         /*
  1336.         String sql="Select * from albums";
  1337.         ResultSet rs = con.executeSearch(sql);
  1338.         con.albumExists("ola");
  1339.  
  1340.         try {
  1341.             while (rs.next()) {
  1342.                 String nomedamusica = rs.getString("albumName");
  1343.                 //String nomedoalbum = rs.getString("songAlbum");
  1344.                 System.out.println(nomedamusica);
  1345.             }
  1346.         }
  1347.         catch (Exception e){
  1348.             e.printStackTrace();
  1349.  
  1350.         }
  1351.     */
  1352.  
  1353.  
  1354.     }
  1355. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement