Advertisement
Guest User

Aquele SQL

a guest
Nov 23rd, 2018
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.63 KB | None | 0 0
  1. import com.sun.corba.se.spi.orbutil.fsm.Guard;
  2.  
  3. import javax.swing.plaf.metal.MetalToolBarUI;
  4. import java.sql.*;
  5.  
  6. class Metodos {
  7.  
  8.     void executa_login(String user, String pass, Connection connection) throws SQLException {
  9.  
  10.         String SQL = "select username, password from utilizador where username = ?";
  11.         PreparedStatement pstmt = connection.prepareStatement(SQL);
  12.         pstmt.setString(1, user);
  13.         ResultSet rs = pstmt.executeQuery();
  14.  
  15.         if (rs.next()) {
  16.             System.out.println("Esse mano ja existe na base de dados");
  17.  
  18.             if (pass.equals(rs.getString(2))) {
  19.                 System.out.println("Password correta, welcome to DropMusic");
  20.             } else {
  21.                 System.out.println("Password errada, try again!");
  22.             }
  23.         } else {
  24.             System.out.println("Tens que te registar mano");
  25.         }
  26.  
  27.         rs.close();
  28.         pstmt.close();
  29.     }
  30.  
  31.     void executa_registo(String user, String pass, Connection connection) throws SQLException {
  32.  
  33.         String SQL = "select username, password from utilizador where username = ?";
  34.         PreparedStatement pstmt = connection.prepareStatement(SQL);
  35.         pstmt.setString(1, user);
  36.         ResultSet rs = pstmt.executeQuery();
  37.  
  38.         if (rs.next()) {
  39.             System.out.println("Esse mano ja se encontra registado");
  40.         } else {
  41.             //Verificar se é o primeiro elemento a ser introduzido, para o nomear como editor ou admin, logo pergunto
  42.             String SQLCONTA = "SELECT COUNT (*) FROM utilizador"; //Para verificar se a tabela está vazia ou não
  43.             PreparedStatement ps = connection.prepareStatement(SQLCONTA);
  44.             ResultSet r = ps.executeQuery();
  45.  
  46.             if (r.next()){
  47.                 if (Integer.parseInt(r.getString(1)) == 0){
  48.                     String SQLRegAdmin = "insert into utilizador values (username, password, ?)";
  49.                     PreparedStatement p = connection.prepareStatement(SQLRegAdmin);
  50.                     p.setString(1, "admin");
  51.                     ResultSet rst = p.executeQuery();
  52.                     System.out.println("Utilizador registado como admin, welcome to DropMusic");
  53.                 }
  54.                 else{
  55.                     String SQLRegNormal = "insert into utilizador values (username, password, ?)";
  56.                     PreparedStatement p = connection.prepareStatement(SQLRegNormal);
  57.                     p.setString(1, "normal");
  58.                     ResultSet rst = p.executeQuery();
  59.                     System.out.println("Utilizador registado como normal, welcome to DropMusic");
  60.                 }
  61.             }
  62.  
  63.             //Verificar se e necessario inicializar a null o ResultSet
  64.         }
  65.  
  66.  
  67.     }
  68.  
  69.     void executa_search_music(String search_type, String word, Connection connection) throws SQLException {
  70.  
  71.         if (search_type.equals("all")) {
  72.             String ALLSQL = "SELECT music_name FROM public.musica WHERE id_musica =" +
  73.                     "(SELECT id_musica FROM public.musicas_de_album WHERE id_album = " +
  74.                     "(SELECT id_album FROM public.album WHERE album_name = ?))\n" +
  75.                     "UNION\n" +
  76.  
  77.                     "SELECT music_name FROM public.musica WHERE music_name = ?\n" +
  78.                     "UNION\n" +
  79.  
  80.                     "SELECT music_name FROM public.musica WHERE genre = ?\n" +
  81.                     "UNION\n" +
  82.  
  83.                     "SELECT music_name FROM public.musica WHERE id_musica = " +
  84.                     "(SELECT id_musica FROM public.musicas_de_artista WHERE id_artista = " +
  85.                     "(SELECT id_artista FROM public.artista WHERE artist_name = ?))";
  86.  
  87.             PreparedStatement pstmt = connection.prepareStatement(ALLSQL);
  88.             pstmt.setString(1, word);
  89.             pstmt.setString(2, word);
  90.             pstmt.setString(3, word);
  91.             pstmt.setString(4, word);
  92.             ResultSet rs = pstmt.executeQuery();
  93.  
  94.             //TRATAR DA INFORMAÇÃO RECEBIDA NO RESULT SET
  95.             while (rs.next()){
  96.                 System.out.println("Nome da musica: " + rs.getString(1));
  97.             }
  98.  
  99.  
  100.         } else if (search_type.equals("music")) {
  101.             String MUSICSQL = "SELECT music_name FROM public.musica WHERE music_name = ?";
  102.             PreparedStatement pstmt = connection.prepareStatement(MUSICSQL);
  103.             pstmt.setString(1, word);
  104.             ResultSet rs = pstmt.executeQuery();
  105.  
  106.             //TRATAR DA INFORMAÇÃO RECEBIDA NO RESULT SET
  107.             while (rs.next()){
  108.                 System.out.println("Nome da musica: " + rs.getString(1));
  109.             }
  110.  
  111.         } else if (search_type.equals("artist")) {
  112.             String ARTISTSQL = "SELECT music_name FROM public.musica WHERE id_musica = " +
  113.                     "(SELECT id_musica FROM public.musicas_de_artista WHERE id_artista = " +
  114.                     "(SELECT id_artista FROM public.artista WHERE artist_name = ?))";
  115.             PreparedStatement pstmt = connection.prepareStatement(ARTISTSQL);
  116.             pstmt.setString(1, word);
  117.             ResultSet rs = pstmt.executeQuery();
  118.  
  119.             //TRATAR DA INFORMAÇÃO RECEBIDA NO RESULT SET
  120.             while (rs.next()){
  121.                 System.out.println("Nome da musica: " + rs.getString(1));
  122.             }
  123.  
  124.         } else if (search_type.equals("album")) {
  125.             String ALBUMSQL = "SELECT music_name FROM public.musica WHERE id_musica = " +
  126.                     "(SELECT id_musica FROM public.musicas_de_album WHERE id_album = " +
  127.                     "(SELECT id_album FROM public.album WHERE album_name = ?))";
  128.             PreparedStatement pstmt = connection.prepareStatement(ALBUMSQL);
  129.             pstmt.setString(1, word);
  130.             ResultSet rs = pstmt.executeQuery();
  131.  
  132.             //TRATAR DA INFORMAÇÃO RECEBIDA NO RESULT SET
  133.             while (rs.next()){
  134.                 System.out.println("Nome da musica: " + rs.getString(1));
  135.             }
  136.  
  137.         } else if (search_type.equals("genre")) {
  138.             String GENRESQL = "SELECT music_name FROM public.musica WHERE genre = ?";
  139.             PreparedStatement pstmt = connection.prepareStatement(GENRESQL);
  140.             pstmt.setString(1, word);
  141.             ResultSet rs = pstmt.executeQuery();
  142.  
  143.             //TRATAR DA INFORMAÇÃO RECEBIDA NO RESULT SET
  144.             while (rs.next()){
  145.                 System.out.println("Nome da musica: " + rs.getString(1));
  146.             }
  147.  
  148.         }
  149.  
  150.  
  151.     }
  152.  
  153.     void executa_search_info(String search_type, String word, Connection connection) throws SQLException{
  154.         //Mostra detalhes sobre o album, artista e musica
  155.  
  156.         //Musica
  157.         if (search_type.equals("music")) {
  158.             String InfoMusicSQL =   "SELECT music_name, artist_name, album_name, genre, duration FROM musica WHERE music_name = ?";
  159.             PreparedStatement p = connection.prepareStatement(InfoMusicSQL);
  160.             p.setString(1, word);
  161.             ResultSet rst = p.executeQuery();
  162.  
  163.             //TESTAR ESTA PESQUISA DAS REVIEWS DE ACORDO COM O NOVO SCRIPT GERADO
  164.             String MusicReviewList =    "SELECT username, pontuacao, text FROM critica WHERE id_musica = " +
  165.                                             "(SELECT id_musica FROM musica WHERE music_name = ?)";
  166.             PreparedStatement ps = connection.prepareStatement(MusicReviewList);
  167.             ps.setString(1, word);
  168.             ResultSet rs = ps.executeQuery();
  169.  
  170.             while (rst.next()) {
  171.                 System.out.println("Nome da musica: " + rst.getString(1));
  172.                 System.out.println("Nome do artista: " + rst.getString(2));
  173.                 System.out.println("Nome do album: " + rst.getString(3));
  174.                 System.out.println("Genero msuical: " + rst.getString(4));
  175.                 System.out.println("Duracao da musica: " + rst.getString(5));
  176.             }
  177.  
  178.             System.out.println("Lista de criticas da musica: ");
  179.             while (rs.next()){
  180.                 System.out.println("Username: " + rs.getString(1) + "Pontuacao: " + rs.getString(2) +
  181.                         "Text: " + rs.getString(3));
  182.             }
  183.  
  184.             rst.close();
  185.             rs.close();
  186.             ps.close();
  187.             p.close();
  188.         }
  189.  
  190.         //Artista
  191.         else if (search_type.equals("artist")){
  192.             //Info do artista
  193.             String InfoArtistSQL = "SELECT artist_name, birth_date, biography, genre FROM artista WHERE artist_name = ?";
  194.             PreparedStatement ps = connection.prepareStatement(InfoArtistSQL);
  195.             ps.setString(1, word);
  196.             ResultSet rs = ps.executeQuery();
  197.  
  198.             while (rs.next()){
  199.                 System.out.println("Nome do artista: " + rs.getString(1));
  200.                 System.out.println("Data de aniversario: " + rs.getString(2));
  201.                 System.out.println("Biografia: " + rs.getString(3));
  202.                 System.out.println("Genero musical:  " + rs.getString(4));
  203.             }
  204.  
  205.             //Lista de musicas do artista
  206.             String ArtistMusicList = "SELECT music_name, artist_name, album_name, genre, duration FROM musica WHERE id_musica = " +
  207.                                         "(SELECT id_musica FROM musicas_de_artista WHERE id_artista = " +
  208.                                             "(SELECT id_artista FROM artista  WHERE musica.artist_name = ?))";
  209.             PreparedStatement p = connection.prepareStatement(ArtistMusicList);
  210.             p.setString(1, word);
  211.             ResultSet r = p.executeQuery();
  212.  
  213.             System.out.println("Lista de Musicas: ");
  214.             while (r.next()){
  215.                 System.out.println("Nome da musica: " + r.getString(1));
  216.                 System.out.println("Nome do artista: " + r.getString(2));
  217.                 System.out.println("Nome do album: " + r.getString(3));
  218.                 System.out.println("Genero musical: " + r.getString(4));
  219.                 System.out.println("Duracao da musica: " + r.getString(5));
  220.             }
  221.  
  222.             //Lista de criticas da musica
  223.             String ArtistAlbumList = "SELECT album_name, artist_name, description, release_date, genre, rating FROM album WHERE album_name = 'joao' AND rating = " +
  224.                                         "(SELECT AVG(SUM(pontuacao)) FROM critica  WHERE id_album = " +
  225.                                             "(SELECT id_album FROM album WHERE album_name = 'joao'))";
  226.  
  227.  
  228.         }
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.     }
  236.  
  237.     //void executa_escreve_review ()
  238.  
  239.  
  240. }
  241.  
  242.  
  243. public class Main {
  244.     public static void main(String[] args) {
  245.         Connection connection = null;
  246.         //Statement stmt = null;
  247.         ResultSet rs = null;
  248.         try {
  249.             Class.forName("org.postgresql.Driver"); // the postgresql driver string
  250.             String url = "jdbc:postgresql://localhost:5432/dropmusic"; // the postgresql url
  251.             connection = DriverManager.getConnection(url, "postgres", "postgresadmin1"); // get the postgresql database connection
  252.  
  253.             //stmt = connection.createStatement();
  254.             //rs = stmt.executeQuery("select username, password from utilizador where username = 'joao'");
  255.             // Tanto posso escrever public.utilizador como utilizador
  256.             //while (rs.next())
  257.  
  258.             Metodos m = new Metodos();
  259.             m.executa_login("joao", "drogas", connection); //Esta a funcionar
  260.             //m.executa_registo(); //Esta a funcionar, falta testar
  261.             //m.executa_search_music("all", "kaleo", connection); //Esta a funcionar, falta testar
  262.  
  263.         } catch (SQLException e) {
  264.             e.printStackTrace();
  265.             System.exit(2);
  266.         } catch (ClassNotFoundException e) {
  267.             e.printStackTrace();
  268.         }
  269.     }
  270. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement