Advertisement
Guest User

Untitled

a guest
Nov 26th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 87.66 KB | None | 0 0
  1.  
  2. import static java.lang.System.exit;
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.sql.Statement;import java.util.Scanner;
  8. import java.util.logging.Level;
  9. import java.util.logging.Logger;
  10. ;
  11.  
  12. /**
  13. *
  14. * @author jpplp
  15. */
  16. public class DbBD {
  17.  
  18.  
  19. /**
  20. * @param args the command line arguments
  21. */
  22. static final String user = "postgres";
  23. static final String senha = "postgres";
  24. static final String url = "jdbc:postgresql://localhost:5432/postgres";
  25. static Statement s=null;
  26. static Connection c= null;
  27. static ResultSet rs=null;
  28.  
  29.  
  30. public static void main(String[] args) throws SQLException {
  31. conexao();
  32. menu();
  33. encerraConexao();
  34.  
  35.  
  36. }
  37.  
  38.  
  39. private static void conexao(){
  40. try{
  41. Class.forName("org.postgresql.Driver");
  42. c = DriverManager.getConnection(url, user, senha);
  43. s = c.createStatement();
  44. }catch(Exception ex){
  45. System.out.println(ex);
  46. }
  47. }
  48.  
  49. private static void encerraConexao(){
  50. try{
  51. s.close();
  52. c.close();
  53. }catch(Exception ex){
  54. System.out.println(ex);
  55. }
  56. }
  57.  
  58. static private ResultSet executeQuery(String query) throws SQLException {
  59. rs = s.executeQuery(query);
  60. return rs;
  61. }
  62.  
  63. static public void menuInicial() {
  64. System.out.println("BEM VINDO AO DROP MUSIC\n\n");
  65. System.out.println(" 1. Registo");
  66. System.out.println(" 2. Login");
  67. System.out.println(" 0. Exit");
  68.  
  69. }
  70.  
  71.  
  72. static public void menu() throws SQLException{
  73. String opcao = "1";
  74. Scanner input = new Scanner(System.in);
  75. String ok;
  76. while(!"0".equals(opcao)) {
  77. menuInicial();
  78. opcao=input.nextLine();
  79. switch(opcao) {
  80. case "1":
  81. try {
  82. registaUser();
  83. } catch (SQLException ex) {
  84. Logger.getLogger(DbBD.class.getName()).log(Level.SEVERE, null, ex);
  85. }
  86. System.out.println("Enter pra menu principal");
  87. ok =input.nextLine();
  88. break;
  89. case "2":
  90. String user = login();
  91. if(saberTipo(user).equals("n")){
  92. menuU(user);
  93. }else
  94. menuE(user);
  95. break;
  96. case "0":
  97. exit(0);
  98. }
  99. }
  100. }
  101.  
  102.  
  103. private static void registaUser() throws SQLException{
  104. int check = 1;
  105. String user=null,password=null;
  106. Scanner sc = new Scanner(System.in);
  107. System.out.println("Registo\n\n");
  108. do{
  109. System.out.print("USER: ");
  110. user=sc.nextLine();
  111. ResultSet query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM pessoa WHERE username='"+user+"';");
  112. rs.next();
  113. check=rs.getInt("contagem");
  114. if(check==1){
  115. System.out.println("O user esta em utilizacao, tente novamente");
  116. String ok= sc.nextLine();
  117. }
  118.  
  119. }while(check==1);
  120.  
  121. do{
  122. System.out.print("Password: ");
  123. password=sc.nextLine();
  124. }while(password.equals(""));
  125. try {
  126. ResultSet query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM pessoa;");
  127. rs.next();
  128. check=rs.getInt("contagem");
  129. if(check==0){
  130. s.executeQuery("INSERT INTO pessoa(username,password,type) values('"+user+"','"+password+"','e')");
  131. }else
  132. s.executeQuery("INSERT INTO pessoa(username,password,type) values('"+user+"','"+password+"','n')");
  133. } catch (Exception ex) {
  134. System.out.println();
  135. }
  136. }
  137.  
  138. private static String login() throws SQLException{
  139. int check = 0,i=0;
  140. String user=null,password=null;
  141. Scanner sc = new Scanner(System.in);
  142. System.out.println("Login\n\n");
  143.  
  144. while(check!=1){
  145. i++;
  146. if(i==4){
  147. System.out.println("Esgotou as suas tentativas\nClique Enter");
  148. String m=sc.nextLine();
  149. menu();
  150. }
  151. System.out.print("USER: ");
  152. user=sc.nextLine();
  153. System.out.print("Password: ");
  154. password=sc.nextLine();
  155. ResultSet query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM pessoa WHERE username='"+user+"' and password='"+password+"';");
  156. rs.next();
  157. check=rs.getInt("contagem");
  158. if(check!=1)
  159. System.out.println("\nUm dos campos não esta correto\nTente novamente\n");
  160. }
  161. return user;
  162. }
  163.  
  164. //saber o tipo do editor
  165. private static String saberTipo(String user) throws SQLException{
  166. ResultSet query = executeQuery("SELECT type"+"\"tipo\""+" FROM pessoa WHERE username='"+user+"';");
  167. rs.next();
  168. String tipo=rs.getString("tipo");
  169. return tipo;
  170. }
  171.  
  172. //menu do utilizador, estatuto=normal
  173. static public void menuUtilizador(){
  174. System.out.println("| MENU DE UTILIZADOR |\n");
  175. System.out.println(" 1. Pesquisa");
  176. System.out.println(" 2. Playlists");
  177. System.out.println(" 3. Download");
  178. System.out.println(" 0. Exit.");
  179. System.out.println(" Opcao: ");
  180. }
  181.  
  182. //menu de um utilizador, estatuto=editor
  183. private static void menuEditor() {
  184. System.out.println("| MENU DE EDITOR |\n");
  185. System.out.println(" 1. Pesquisa");
  186. System.out.println(" 2. Playlists");
  187. System.out.println(" 3. Download");
  188. System.out.println("INSERÇÃO:");
  189. System.out.println(" 4. Inserir Artista");
  190. System.out.println(" 5. Inserir Album");
  191. System.out.println(" 6. Inserir Musica");
  192. System.out.println(" Editor:");
  193. System.out.println(" 7. Tornar user editor");
  194. System.out.println(" 0. Exit.");
  195. System.out.print("\n Opcao: ");
  196. }
  197.  
  198. public static void menuU(String user) throws SQLException{
  199. String opcao = "1";
  200. Scanner input = new Scanner(System.in);
  201. String ok;
  202. while(!"0".equals(opcao)) {
  203. menuUtilizador();
  204. opcao=input.nextLine();
  205. switch(opcao) {
  206. case "1":
  207. try {
  208. pesquisa(user);
  209. } catch (SQLException ex) {
  210. Logger.getLogger(DbBD.class.getName()).log(Level.SEVERE, null, ex);
  211. }
  212. menuU(user);
  213. break;
  214. case "2":
  215. playlist(user);
  216. break;
  217. case "3":
  218. download(user);
  219. break;
  220. case "0":
  221. menu();
  222. break;
  223. }
  224. }
  225. }
  226.  
  227. public static void menuE(String user) throws SQLException{
  228. String opcao = "1";
  229. Scanner input = new Scanner(System.in);
  230. String ok;
  231. Scanner ss = new Scanner(System.in);
  232. while(!"0".equals(opcao)) {
  233. menuEditor();
  234. opcao=input.nextLine();
  235. switch(opcao) {
  236. case "1":
  237. try {
  238. pesquisa(user);
  239. } catch (SQLException ex) {
  240. Logger.getLogger(DbBD.class.getName()).log(Level.SEVERE, null, ex);
  241. }
  242. menuE(user);
  243. break;
  244. case "2":
  245. playlist(user);
  246. break;
  247. case "3":
  248. download(user);
  249. break;
  250. case "4":
  251. inserirArtista();
  252. ok= ss.nextLine();
  253. break;
  254. case "5":
  255. inserirAlbum();
  256. ok= ss.nextLine();
  257. break;
  258. case "6":
  259. inserirMusica();
  260. ok= ss.nextLine();
  261. break;
  262. case "7":
  263. //tornarEditor();
  264. break;
  265. case "0":
  266. menu();
  267. break;
  268. }
  269. }
  270. }
  271.  
  272. public static void pesquisa(String user) throws SQLException{
  273. Scanner ss= new Scanner(System.in);
  274. System.out.print("Pesquise: ");
  275. String palavra= ss.nextLine();
  276. ResultSet query = executeQuery("SELECT count(*)"+"\"id\""+" FROM musica where nome LIKE '%"+palavra+"%';");
  277. rs.next();
  278. int nmusicas = rs.getInt("id");
  279. if(nmusicas!=0){
  280. query = executeQuery("SELECT m.nome"+"\"musicas\""+", a.nome"+"\"artista\""+" FROM musica m, artista a where m.artista_id=a.id and m.nome LIKE '%"+palavra+"%';");
  281. System.out.println("Musicas");
  282. for(int i=0; i<nmusicas;i++){
  283. rs.next();
  284. String musicas = rs.getString("musicas");
  285. String artista = rs.getString("artista");
  286. System.out.println("Nome: "+musicas+" Artista: "+artista);
  287.  
  288. }
  289. }
  290. query = executeQuery("SELECT count(*)"+"\"id\""+" FROM album where nome LIKE '%"+palavra+"%';");
  291. rs.next();
  292. int nAlbuns = rs.getInt("id");
  293. if(nAlbuns!=0){
  294. query = executeQuery("SELECT al.nome"+"\"albuns\""+", a.nome"+"\"artista\""+" FROM album al, artista a where al.artista_id=a.id and al.nome LIKE '%"+palavra+"%';");
  295. System.out.println("Albuns");
  296. for(int i=0; i<nAlbuns;i++){
  297. rs.next();
  298. String albuns = rs.getString("albuns");
  299. String artista = rs.getString("artista");
  300. System.out.println("Nome: "+albuns+" Artista: "+artista);
  301.  
  302. }
  303. }
  304. query = executeQuery("SELECT count(*)"+"\"id\""+" FROM artista where nome LIKE '%"+palavra+"%';");
  305. rs.next();
  306. int nartistas = rs.getInt("id");
  307. if(nartistas!=0){
  308. query = executeQuery("SELECT nome"+"\"artista\""+" FROM artista a where nome LIKE '%"+palavra+"%';");
  309. System.out.println("Artistas");
  310. for(int i=0; i<nartistas;i++){
  311. rs.next();
  312. String artista = rs.getString("artista");
  313. System.out.println("Nome: "+artista);
  314.  
  315. }
  316. }
  317. if((nmusicas==0) && (nAlbuns==0) && (nartistas == 0)){
  318. System.out.println("A sua pesquisa nao tem nenhum resultado\nEnter pra voltar ao menu");
  319. String ok = ss.nextLine();
  320. return;
  321. }
  322. Scanner sc = new Scanner(System.in);
  323. int teste=0;
  324. while(teste!=1){
  325. System.out.println("A sua escolha vai ser um: ");
  326. if(nmusicas!=0){
  327. System.out.println("--> Musica");
  328. }
  329. if(nAlbuns!=0){
  330. System.out.println("--> Album");
  331. }
  332. if(nartistas!=0){
  333. System.out.println("--> Artista");
  334. }
  335. System.out.println("Opcao: ");
  336. String opcao= ss.nextLine();
  337. switch(opcao){
  338. case "Musica":
  339. System.out.println("Musica ");
  340. pesquisaMusica(palavra,user);
  341. teste=1;
  342. break;
  343. case "Album":
  344. System.out.println("Album ");
  345. pesquisaAlbum(palavra,user);
  346. teste=1;
  347. break;
  348. case "Artista":
  349. System.out.println("Artista");
  350. pesquisaArtista(palavra,user);
  351. teste=1;
  352. break;
  353. default:
  354. System.out.println("A sua opcao nao e valida");
  355. String ok=sc.nextLine();
  356. break;
  357. }
  358. }
  359. }
  360.  
  361. private static void pesquisaMusica(String palavra,String user) throws SQLException{
  362. Scanner ss= new Scanner(System.in);
  363. ResultSet query = executeQuery("SELECT count(*)"+"\"id\""+" FROM musica where nome LIKE '%"+palavra+"%';");
  364. rs.next();
  365. int nmusicas = rs.getInt("id");
  366. if(nmusicas!=0){
  367. query = executeQuery("SELECT m.nome"+"\"musicas\""+", a.nome"+"\"artista\""+" FROM musica m, artista a where m.artista_id=a.id and m.nome LIKE '%"+palavra+"%';");
  368. System.out.println("\n\nMusicas");
  369. for(int i=0; i<nmusicas;i++){
  370. rs.next();
  371. String musicas = rs.getString("musicas");
  372. String artista = rs.getString("artista");
  373. System.out.println("Nome: "+musicas+" Artista: "+artista);
  374. }
  375. }
  376. int teste=0;
  377. String nome=null;
  378. String artista=null;
  379. while(teste!=1){
  380. System.out.println("Sua escolha");
  381. System.out.println("Nome: ");
  382. nome= ss.nextLine();
  383. System.out.println("Artista: ");
  384. artista = ss.nextLine();
  385. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM artista a,musica m WHERE a.id=m.artista_id and m.nome='"+nome+"' and a.nome='"+artista+"';");
  386. rs.next();
  387. int musicas=rs.getInt("contagem");
  388. if(musicas==0){
  389. System.out.println("Sua escolha nao foi possivel");
  390. String ok= ss.nextLine();
  391. }else
  392. teste=1;
  393. }
  394. String tipo=saberTipo(user);
  395. if(tipo.equals("e")){
  396. opcaoMusicaE(nome,artista);
  397. }else
  398. opcaoMusicaN(nome,artista);
  399. }
  400.  
  401. private static void opcaoMusicaE(String nome,String artista) throws SQLException{
  402. int teste=0;
  403. Scanner ss= new Scanner(System.in);
  404. Scanner sc = new Scanner(System.in);
  405. while(teste!=1){
  406. System.out.println("Que deseja fazer?\n1-Detalhes da musica\n2-Alterar detalhes da musica\n3-Remover musica\nOpcao: ");
  407. int opcao= ss.nextInt();
  408. switch(opcao){
  409. case 1:
  410. detalheMusica(nome,artista);
  411. String ok=sc.nextLine();
  412. teste=1;
  413. break;
  414. case 2:
  415. alterarMusica(nome,artista);
  416. ok=sc.nextLine();
  417. teste=1;
  418. break;
  419. case 3:
  420. removerMusica(nome,artista);
  421. ok=sc.nextLine();
  422. teste=1;
  423. break;
  424. default:
  425. System.out.println("A sua opcao nao e valida");
  426. ok=sc.nextLine();
  427. break;
  428. }
  429. }
  430. }
  431.  
  432. private static void opcaoMusicaN(String nome,String artista) throws SQLException{
  433. int teste=0;
  434. Scanner ss= new Scanner(System.in);
  435. Scanner sc = new Scanner(System.in);
  436. while(teste!=1){
  437. System.out.println("Que deseja fazer?\n1-Detalhes da musica\nOpcao: ");
  438. int opcao= ss.nextInt();
  439. switch(opcao){
  440. case 1:
  441. detalheMusica(nome,artista);
  442. String ok=sc.nextLine();
  443. teste=1;
  444. break;
  445. default:
  446. System.out.println("A sua opcao nao e valida");
  447. ok=sc.nextLine();
  448. break;
  449. }
  450. }
  451. }
  452.  
  453. private static void pesquisaAlbum(String palavra,String user) throws SQLException{
  454. Scanner ss= new Scanner(System.in);
  455. ResultSet query = executeQuery("SELECT count(*)"+"\"id\""+" FROM album where nome LIKE '%"+palavra+"%';");
  456. rs.next();
  457. int nmusicas = rs.getInt("id");
  458. if(nmusicas!=0){
  459. query = executeQuery("SELECT m.nome"+"\"musicas\""+", a.nome"+"\"artista\""+" FROM album m, artista a where m.artista_id=a.id and m.nome LIKE '%"+palavra+"%';");
  460. System.out.println("\n\nAlbuns");
  461. for(int i=0; i<nmusicas;i++){
  462. rs.next();
  463. String musicas = rs.getString("musicas");
  464. String artista = rs.getString("artista");
  465. System.out.println("Nome: "+musicas+" Artista: "+artista);
  466. }
  467. }
  468. int teste=0;
  469. String nome=null;
  470. String artista=null;
  471. while(teste!=1){
  472. System.out.println("Sua escolha");
  473. System.out.println("Nome: ");
  474. nome= ss.nextLine();
  475. System.out.println("Artista: ");
  476. artista = ss.nextLine();
  477. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM artista a,album m WHERE a.id=m.artista_id and m.nome='"+nome+"' and a.nome='"+artista+"';");
  478. rs.next();
  479. int musicas=rs.getInt("contagem");
  480. if(musicas==0){
  481. System.out.println("Sua escolha nao foi possivel");
  482. String ok= ss.nextLine();
  483. }else
  484. teste=1;
  485. }
  486. String tipo=saberTipo(user);
  487. if(tipo.equals("e")){
  488. opcaoAlbumE(nome,artista,user);
  489. }else
  490. opcaoAlbumN(nome,artista,user);
  491. }
  492.  
  493.  
  494. private static void opcaoAlbumE(String nome,String artista,String user) throws SQLException{
  495. int teste=0;
  496. Scanner ss= new Scanner(System.in);
  497. Scanner sc = new Scanner(System.in);
  498. while(teste!=1){
  499. System.out.println("Que deseja fazer?\n1-Detalhes do album\n2-Alterar detalhes do album\n3-Remover album\n4-Adicionar critica a album\nOpcao: ");
  500. int opcao= ss.nextInt();
  501. switch(opcao){
  502. case 1:
  503. detalheAlbum(nome,artista);
  504. String ok=sc.nextLine();
  505. teste=1;
  506. break;
  507. case 2:
  508. alterarAlbum(nome,artista);
  509. ok=sc.nextLine();
  510. teste=1;
  511. break;
  512. case 3:
  513. removerAlbum(nome,artista);
  514. ok=sc.nextLine();
  515. teste=1;
  516. break;
  517. case 4:
  518. criticaAlbum(nome,artista,user);
  519. ok= sc.nextLine();
  520. teste=1;
  521. break;
  522. default:
  523. System.out.println("A sua opcao nao e valida");
  524. ok=sc.nextLine();
  525. break;
  526. }
  527. }
  528. }
  529.  
  530. private static void opcaoAlbumN(String nome,String artista,String user) throws SQLException{
  531. int teste=0;
  532. Scanner ss= new Scanner(System.in);
  533. Scanner sc = new Scanner(System.in);
  534. while(teste!=1){
  535. System.out.println("Que deseja fazer?\n1-Detalhes do album\n2-Adicionar critica a album\nOpcao: ");
  536. int opcao= ss.nextInt();
  537. switch(opcao){
  538. case 1:
  539. detalheAlbum(nome,artista);
  540. String ok=sc.nextLine();
  541. teste=1;
  542. break;
  543. case 2:
  544. criticaAlbum(nome,artista,user);
  545. ok= sc.nextLine();
  546. teste=1;
  547. break;
  548. default:
  549. System.out.println("A sua opcao nao e valida");
  550. ok=sc.nextLine();
  551. break;
  552. }
  553. }
  554. }
  555.  
  556. private static void criticaAlbum(String nome,String artista,String user) throws SQLException{
  557. ResultSet query = executeQuery("SELECT id"+"\"id\""+"FROM artista WHERE nome='"+artista+"';");
  558. rs.next();
  559. int artista_id = rs.getInt("id");
  560. query = executeQuery("SELECT id"+"\"id\""+"FROM album WHERE nome='"+nome+"';");
  561. rs.next();
  562. int album_id = rs.getInt("id");
  563. int teste=0;
  564. String comentario = null;
  565. int pontuacao=0;
  566. Scanner ss= new Scanner(System.in);
  567. while(teste!=1){
  568. System.out.print("Comentario: ");
  569. comentario=ss.nextLine();
  570. if(comentario.equals("")){
  571. System.out.println("O comentario nao pode ser null");
  572. }else teste=1;
  573. }
  574. teste=0;
  575. while(teste!=1){
  576. System.out.print("Pontuacao (0-5): ");
  577. pontuacao=ss.nextInt();
  578. if(pontuacao < 0 || pontuacao>5){
  579. System.out.println("A pontuacao nao e valida");
  580. }else teste=1;
  581. }
  582. try{
  583. s.executeQuery("INSERT INTO critica(comentario,pontuacao,album_id,pessoa_username) values('"+comentario+"',"+pontuacao+","+album_id+",'"+user+"');");
  584. return ;
  585. } catch (Exception ex) {
  586. System.out.println();
  587. }
  588. return;
  589.  
  590.  
  591.  
  592.  
  593. }
  594.  
  595. private static void pesquisaArtista(String palavra,String user) throws SQLException{
  596. Scanner ss= new Scanner(System.in);
  597. ResultSet query = executeQuery("SELECT count(*)"+"\"id\""+" FROM artista where nome LIKE '%"+palavra+"%';");
  598. rs.next();
  599. int nartistas = rs.getInt("id");
  600. if(nartistas!=0){
  601. query = executeQuery("SELECT nome"+"\"artista\""+" FROM artista a where nome LIKE '%"+palavra+"%';");
  602. System.out.println("\n\nArtistas");
  603. for(int i=0; i<nartistas;i++){
  604. rs.next();
  605. String artista = rs.getString("artista");
  606. System.out.println("Nome: "+artista);
  607.  
  608. }
  609. }
  610. int teste=0;
  611. String artista=null;
  612. while(teste!=1){
  613. System.out.println("Sua escolha");
  614. System.out.println("Nome: ");
  615. artista = ss.nextLine();
  616. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM artista WHERE nome='"+artista+"';");
  617. rs.next();
  618. int musicas=rs.getInt("contagem");
  619. if(musicas==0){
  620. System.out.println("Sua opcao nao e valida");
  621. String ok= ss.nextLine();
  622. }else
  623. teste=1;
  624. }
  625. String tipo=saberTipo(user);
  626. if(tipo.equals("e")){
  627. opcaoArtistaE(artista);
  628. }else
  629. opcaoArtistaN(artista);
  630. }
  631.  
  632. private static void opcaoArtistaE(String nome) throws SQLException{
  633. int teste=0;
  634. Scanner ss= new Scanner(System.in);
  635. Scanner sc = new Scanner(System.in);
  636. while(teste!=1){
  637. System.out.println("Que deseja fazer?\n1-Detalhes do artista\n2-Alterar detalhes do artista\n3-Remover artista\nOpcao: ");
  638. int opcao= ss.nextInt();
  639. switch(opcao){
  640. case 1:
  641. detalheArtista(nome);
  642. String ok=sc.nextLine();
  643. teste=1;
  644. break;
  645. case 2:
  646. alterarArtista(nome);
  647. ok=sc.nextLine();
  648. teste=1;
  649. break;
  650. case 3:
  651. removerArtista(nome);
  652. ok=sc.nextLine();
  653. teste=1;
  654. break;
  655. default:
  656. System.out.println("A sua opcao nao e valida");
  657. ok=sc.nextLine();
  658. break;
  659. }
  660. }
  661. }
  662.  
  663. private static void opcaoArtistaN(String nome) throws SQLException{
  664. int teste=0;
  665. Scanner ss= new Scanner(System.in);
  666. Scanner sc = new Scanner(System.in);
  667. while(teste!=1){
  668. System.out.println("Que deseja fazer?\n1-Detalhes do artista\nOpcao: ");
  669. int opcao= ss.nextInt();
  670. switch(opcao){
  671. case 1:
  672. detalheArtista(nome);
  673. String ok=sc.nextLine();
  674. teste=1;
  675. break;
  676. default:
  677. System.out.println("A sua opcao nao e valida");
  678. ok=sc.nextLine();
  679. break;
  680. }
  681. }
  682. }
  683.  
  684.  
  685. private static String inserirArtista() throws SQLException{
  686. int check = 0;
  687. //id,nome, historia, type
  688. String nome=null;
  689. String type = null;
  690. String historia=null;
  691. Scanner sc = new Scanner(System.in);
  692. System.out.println("Inserir Artista\n\n");
  693. while(check!=1){
  694. System.out.print("Nome: ");
  695. nome=sc.nextLine();
  696. if(!nome.equals("")){
  697. check=1;
  698. }else
  699. System.out.println("O nome do artista não pode ser null");
  700.  
  701. }
  702. check=0;
  703. while(check!=1){
  704. System.out.print("Historia: ");
  705. historia=sc.nextLine();
  706. if(!historia.equals("")){
  707. check=1;
  708. }else
  709. System.out.println("A historia do artista nao pode ser null");
  710. }
  711. check=0;
  712. while(check!=1){
  713. System.out.print("Type: ");
  714. type=sc.nextLine();
  715. if(type.equals("Banda") || type.equals("Solo")){
  716. check=1;
  717. }else
  718. System.out.println("O Artista so pode ser uma Banda ou um Solo");
  719. }
  720. check=0;
  721. ResultSet query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM artista WHERE nome='"+nome+"';");
  722. rs.next();
  723. check=rs.getInt("contagem");
  724. if(check==1){
  725. System.out.println("Esse artista já existe");
  726. String ok= sc.nextLine();
  727. return null;
  728. }
  729. int dia=0,mes=0,ano=0;
  730. check=0;
  731. System.out.println("Data do inicio da banda:");
  732. while(check!=1){
  733. System.out.print("Ano: ");
  734. ano=sc.nextInt();
  735. if(ano<=2018 && ano>0){
  736. check=1;
  737. }else
  738. System.out.println("O ano que colocou não é possivel");
  739. }
  740. check=0;
  741. while(check!=1){
  742. System.out.print("Mes: ");
  743. mes=sc.nextInt();
  744. if(mes<=12 && mes>0){
  745. check=1;
  746. }else
  747. System.out.println("O mes que colocou não é possivel");
  748. }
  749. check=0;
  750. while(check!=1){
  751. System.out.print("Dia: ");
  752. dia=sc.nextInt();
  753. if(dia<=31 && dia>0){
  754. check=1;
  755. }else
  756. System.out.println("O dia que colocou não é possivel");
  757. }
  758. Scanner ss = new Scanner(System.in);
  759. int teste=0;
  760. int fdia=0,fmes=0,fano=0;
  761. String resposta=null;
  762. while(teste!=1){
  763. System.out.println("A banda ja acabou? (Sim/Nao)");
  764. resposta = ss.nextLine();
  765. if(resposta.equals("Sim")){
  766. check=0;
  767. System.out.println("Data do fim da banda:");
  768. while(check!=1){
  769. System.out.print("Ano: ");
  770. fano=sc.nextInt();
  771. if(fano<=2018 && fano >= ano){
  772. check=1;
  773. }else
  774. System.out.println("O ano que colocou não é possivel");
  775. }
  776. check=0;
  777. while(check!=1){
  778. System.out.print("Mes: ");
  779. fmes=sc.nextInt();
  780. if(fmes<=12 && fmes>0){
  781. check=1;
  782. }else
  783. System.out.println("O mes que colocou não é possivel");
  784. }
  785. check=0;
  786. while(check!=1){
  787. System.out.print("Dia: ");
  788. fdia=sc.nextInt();
  789. if(fdia<=31 && fdia>0){
  790. teste=1;
  791. check=1;
  792. }else
  793. System.out.println("O dia que colocou não é possivel");
  794. }
  795. }else if(!resposta.equals("Nao")){
  796. System.out.println("A sua resposta nao foi aceite, tente novamente");
  797. String ok=ss.nextLine();
  798. }else
  799. teste=1;
  800.  
  801. }
  802. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM artista;");
  803. rs.next();
  804. check=rs.getInt("contagem");
  805. try{
  806. if(check==0){
  807. int id=1;
  808. s.executeQuery("INSERT INTO artista(id,nome,historia,type) values("+id+",'"+nome+"','"+historia+"','"+type+"');");
  809.  
  810. }else{
  811. query = executeQuery("SELECT max(id)"+"\"id\""+" FROM artista;");
  812. rs.next();
  813. int id=rs.getInt("id");
  814. id=id+1;
  815. s.executeQuery("INSERT INTO artista(id,nome,historia,type) values("+id+",'"+nome+"','"+historia+"','"+type+"');");
  816. }
  817. } catch (Exception ex) {
  818. System.out.println();
  819. }
  820.  
  821. query = executeQuery("SELECT max(id)"+"\"contagem\""+" FROM artista;");
  822. rs.next();
  823. try{
  824. int id=rs.getInt("contagem");
  825. if(resposta.equals("Sim"))
  826. s.executeQuery("INSERT INTO databanda(inicio,fim,artista_id) values('"+ano+"-"+mes+"-"+dia+"','"+fano+"-"+fmes+"-"+fdia+"',"+id+");");
  827. else{
  828. s.executeQuery("INSERT INTO databanda(inicio,artista_id) values('"+ano+"-"+mes+"-"+dia+"',"+id+");");
  829. }
  830. } catch (Exception ex) {
  831. System.out.println();
  832. }
  833. return nome;
  834. }
  835.  
  836. private static String inserirAlbum() throws SQLException{
  837. int check = 0;
  838. //id,nome,lancamento(date),genero, editora, artista_id
  839. String nome=null;
  840. String genero = null;
  841. String editora=null;
  842. String artista=null;
  843. int ano = 0, mes = 0, dia = 0,artista_id = 0;
  844. Scanner sc = new Scanner(System.in);
  845. System.out.println("Inserir Album\n\n");
  846. while(check!=1){
  847. System.out.print("Nome: ");
  848. nome=sc.nextLine();
  849. if(!nome.equals("")){
  850. check=1;
  851. }else
  852. System.out.println("O nome do album não pode ser null");
  853.  
  854. }
  855. check=0;
  856. while(check!=1){
  857. System.out.print("Genero: ");
  858. genero=sc.nextLine();
  859. if(!genero.equals("")){
  860. check=1;
  861. }else
  862. System.out.println("O genero do album não pode ser null");
  863.  
  864. }
  865. check=0;
  866. int teste=0;
  867. while(teste!=1){
  868. System.out.print("Editora: ");
  869. editora=sc.nextLine();
  870. if(editora.equals("")){
  871. System.out.println("O nome da editora nao pode ser null");
  872. }else{
  873. ResultSet query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM editora WHERE nome='"+editora+"';");
  874. rs.next();
  875. int contagem=rs.getInt("contagem");
  876. if(contagem==0){
  877. System.out.println("Essa editora nao existe");
  878. teste=inserirEditora(editora);
  879. }else{
  880. teste=1;
  881. }
  882. }
  883. }
  884. check=0;
  885. while(check!=1){
  886. System.out.print("Artista: ");
  887. artista=sc.nextLine();
  888. if(artista.equals("")){
  889. System.out.println("O nome do artista nao pode ser null");
  890. }else{
  891. ResultSet query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM artista WHERE nome='"+artista+"';");
  892. rs.next();
  893. int contagem=rs.getInt("contagem");
  894. if(contagem==0){
  895. System.out.println("Esse artista nao existe");
  896. String ok= sc.nextLine();
  897. }else{
  898. query = executeQuery("SELECT id"+"\"id\""+" FROM artista WHERE nome='"+artista+"';");
  899. rs.next();
  900. artista_id=rs.getInt("id");
  901. check=1;
  902. }
  903. }
  904. }
  905. check=0;
  906. while(check!=1){
  907. System.out.print("Ano: ");
  908. ano=sc.nextInt();
  909. if(ano<=2018 && ano>0){
  910. check=1;
  911. }else
  912. System.out.println("O ano que colocou não é possivel");
  913. }
  914. check=0;
  915. while(check!=1){
  916. System.out.print("Mes: ");
  917. mes=sc.nextInt();
  918. if(mes<=12 && mes>0){
  919. check=1;
  920. }else
  921. System.out.println("O mes que colocou não é possivel");
  922. }
  923. check=0;
  924. while(check!=1){
  925. System.out.print("Dia: ");
  926. dia=sc.nextInt();
  927. if(dia<=31 && dia>0){
  928. check=1;
  929. }else
  930. System.out.println("O dia que colocou não é possivel");
  931. }
  932. check=0;
  933. ResultSet query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM artista a,album b WHERE a.id=b.artista_id and b.nome='"+nome+"' and a.nome='"+artista+"';");
  934. rs.next();
  935. check=rs.getInt("contagem");
  936. if(check==1){
  937. System.out.println("Esse artista ja tem esse album");
  938. String ok= sc.nextLine();
  939. return null;
  940. }
  941. try{
  942. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM album;");
  943. rs.next();
  944. check=rs.getInt("contagem");
  945. if(check==0){
  946. int id=1;
  947. //id,nome,lancamento(date),genero, editora, artista_id '2008-11-11'
  948. s.executeQuery("INSERT INTO album(id,nome,lancamento,genero,editora,artista_id) values("+id+",'"+nome+"','"+ano+"-"+mes+"-"+dia+"','"+genero+"','"+editora+"',"+artista_id+");");
  949. return nome;
  950. }else{
  951. query = executeQuery("SELECT max(id)"+"\"id\""+" FROM album;");
  952. rs.next();
  953. int id=rs.getInt("id");
  954. id=id+1;
  955. s.executeQuery("INSERT INTO album(id,nome,lancamento,genero,editora,artista_id) values("+id+",'"+nome+"','"+ano+"-"+mes+"-"+dia+"','"+genero+"','"+editora+"',"+artista_id+");");
  956. return nome;
  957. }
  958. } catch (Exception ex) {
  959. System.out.println();
  960. }
  961. return nome;
  962. }
  963.  
  964.  
  965. private static String inserirMusica() throws SQLException{
  966. int check = 0;
  967. //id,nome,genero,tempo, ficheiro, letra, editora,album_id,artista_id
  968. String ok=null;
  969. String nome=null;
  970. String genero = null;
  971. String editora=null;
  972. String artista=null;
  973. String ficheiro = null;
  974. String letra=null;
  975. int duracao = 0,artista_id = 0;
  976. Scanner sc = new Scanner(System.in);
  977. System.out.println("Inserir Musica\n\n");
  978. while(check!=1){
  979. System.out.print("Nome: ");
  980. nome=sc.nextLine();
  981. if(!nome.equals("")){
  982. check=1;
  983. }else
  984. System.out.println("O nome da musica não pode ser null");
  985.  
  986. }
  987. check=0;
  988. while(check!=1){
  989. System.out.print("Genero: ");
  990. genero=sc.nextLine();
  991. if(!genero.equals("")){
  992. check=1;
  993. }else
  994. System.out.println("O genero da musica não pode ser null");
  995.  
  996. }
  997. check=0;
  998. while(check!=1){
  999. System.out.print("Letra: ");
  1000. letra=sc.nextLine();
  1001. if(!letra.equals("")){
  1002. check=1;
  1003. }else
  1004. System.out.println("A letra da musica não pode ser null");
  1005.  
  1006. }
  1007. check=0;
  1008. while(check!=1){
  1009. System.out.print("Tipo de Ficheiro: ");
  1010. ficheiro=sc.nextLine();
  1011. if(!ficheiro.equals("")){
  1012. check=1;
  1013. }else
  1014. System.out.println("O tipo de ficheiro da musica não pode ser null");
  1015.  
  1016. }
  1017. check=0;
  1018. while(check!=1){
  1019. System.out.print("Editora: ");
  1020. editora=sc.nextLine();
  1021. if(editora.equals("")){
  1022. System.out.println("O nome da editora nao pode ser null");
  1023. }else{
  1024. ResultSet query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM editora WHERE nome='"+editora+"';");
  1025. rs.next();
  1026. int contagem=rs.getInt("contagem");
  1027. if(contagem==0){
  1028. System.out.println("Essa editora nao existe");
  1029. check=inserirEditora(editora);
  1030. }else{
  1031. check=1;
  1032. }
  1033. }
  1034. }
  1035. check=0;
  1036. while(check!=1){
  1037. System.out.print("Artista: ");
  1038. artista=sc.nextLine();
  1039. if(artista.equals("")){
  1040. System.out.println("O nome do artista nao pode ser null");
  1041. }else{
  1042. ResultSet query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM artista WHERE nome='"+artista+"';");
  1043. rs.next();
  1044. int contagem=rs.getInt("contagem");
  1045. if(contagem==0){
  1046. System.out.println("Esse artista nao existe");
  1047. ok= sc.nextLine();
  1048. }else{
  1049. query = executeQuery("SELECT id"+"\"id\""+" FROM artista WHERE nome='"+artista+"';");
  1050. rs.next();
  1051. artista_id=rs.getInt("id");
  1052. check=1;
  1053. }
  1054. }
  1055. }
  1056. check=0;
  1057. while(check!=1){
  1058. System.out.print("Duraçao(minutos): ");
  1059. duracao=sc.nextInt();
  1060. if(duracao!=0 && duracao>0){
  1061. check=1;
  1062. }else
  1063. System.out.println("O ano que colocou não é possivel");
  1064. }
  1065. check=0;
  1066. ResultSet query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM artista a,musica m WHERE a.id=m.artista_id and m.nome='"+nome+"' and a.nome='"+artista+"';");
  1067. rs.next();
  1068. check=rs.getInt("contagem");
  1069. if(check==1){
  1070. System.out.println("Esse artista ja tem essa musica");
  1071. ok= sc.nextLine();
  1072. return null;
  1073. }
  1074. int album_id=colocaAlbum(nome,genero,editora,artista_id);
  1075. try{
  1076. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM musica;");
  1077. rs.next();
  1078. check=rs.getInt("contagem");
  1079. if(check==0){
  1080. int id=1;
  1081. s.executeQuery("INSERT INTO musica(id,nome,genero,tempo,ficheiro,letra,editora_nome,album_id,artista_id) values("+id+",'"+nome+"','"+genero+"',"+duracao+",'"+ficheiro+"','"+letra+"','"+editora+"',"+album_id+","+artista_id+");");
  1082. return nome;
  1083. }else{
  1084. query = executeQuery("SELECT max(id)"+"\"id\""+" FROM album;");
  1085. rs.next();
  1086. int id=rs.getInt("id");
  1087. id=id+1;
  1088. s.executeQuery("INSERT INTO musica(id,nome,genero,tempo,ficheiro,letra,editora_nome,album_id,artista_id) values("+id+",'"+nome+"','"+genero+"',"+duracao+",'"+ficheiro+"','"+letra+"','"+editora+"',"+album_id+","+artista_id+");");
  1089. return nome;
  1090. }
  1091. } catch (Exception ex) {
  1092. System.out.println();
  1093. }
  1094. return nome;
  1095. }
  1096.  
  1097. static public int inserirEditora(String editora) throws SQLException{
  1098. int teste=0;
  1099. int check = 0;
  1100. Scanner input = new Scanner(System.in);
  1101. while(teste!=1){
  1102. System.out.println("Quer adicionar esta editora a base de dados? (Sim/Nao)");
  1103. String ok= input.nextLine();
  1104. if(ok.equals("Sim")){
  1105. try{
  1106. teste=1;
  1107. check=1;
  1108. s.executeQuery("INSERT INTO editora(nome) values('"+editora+"');");
  1109.  
  1110.  
  1111. }catch (Exception ex) {
  1112. System.out.println();
  1113. }
  1114. }else if(!ok.equals("Nao")){
  1115. System.out.println("Essa opcao nao e valida");
  1116. }else{
  1117. check=0;
  1118. teste=1;
  1119. }
  1120. }
  1121. return check;
  1122. }
  1123.  
  1124. static public int colocaAlbum(String nome,String genero,String editora, int artista_id){
  1125. int id=0;
  1126. try{
  1127. int dia=1,mes=1,ano=2018;
  1128. ResultSet query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM album;");
  1129. rs.next();
  1130. int check=rs.getInt("contagem");
  1131. if(check==0){
  1132. id=1;
  1133. //id,nome,lancamento(date),genero, editora, artista_id '2008-11-11'
  1134. s.executeQuery("INSERT INTO album(id,nome,lancamento,genero,editora,artista_id) values("+id+",'"+nome+"','"+ano+"-"+mes+"-"+dia+"','"+genero+"','"+editora+"',"+artista_id+");");
  1135. return id;
  1136. }
  1137. query = executeQuery("SELECT max(id)"+"\"id\""+" FROM album;");
  1138. rs.next();
  1139. id=rs.getInt("id");
  1140. id=id+1;
  1141. s.executeQuery("INSERT INTO album(id,nome,lancamento,genero,editora,artista_id) values("+id+",'"+nome+"','"+ano+"-"+mes+"-"+dia+"','"+genero+"','"+editora+"',"+artista_id+");");
  1142.  
  1143. } catch (Exception ex) {
  1144. System.out.println();
  1145. }
  1146. return id;
  1147. }
  1148.  
  1149. private static void removerArtista(String nome) throws SQLException {
  1150. System.out.println("Remover Artista\n\n");
  1151. ResultSet query = executeQuery("SELECT id"+"\"id\""+" FROM artista WHERE nome='"+nome+"';");
  1152. rs.next();
  1153. int artista_id=rs.getInt("id");
  1154. try{
  1155. s.executeQuery("DELETE from musica where artista_id="+artista_id+";");
  1156. } catch (Exception ex) {
  1157. System.out.println();
  1158. }try{
  1159. s.executeQuery("DELETE from album where artista_id="+artista_id+";");
  1160. } catch (Exception ex) {
  1161. System.out.println();
  1162. }try{
  1163. s.executeQuery("DELETE from concerto where artista_id="+artista_id+";");
  1164. } catch (Exception ex) {
  1165. System.out.println();
  1166. }try{
  1167. s.executeQuery("DELETE from databanda where artista_id="+artista_id+";");
  1168. } catch (Exception ex) {
  1169. System.out.println();
  1170. }
  1171. try{
  1172. s.executeQuery("DELETE from artista where nome='"+nome+"';");
  1173. } catch (Exception ex) {
  1174. System.out.println();
  1175. }
  1176.  
  1177. }
  1178.  
  1179. //Remover um album de um artista
  1180. private static void removerAlbum(String nome, String artista) throws SQLException {
  1181. System.out.println("Remover Album\n\n");
  1182. ResultSet query = executeQuery("SELECT id"+"\"id\""+" FROM artista WHERE nome='"+artista+"';");
  1183. rs.next();
  1184. int artista_id=rs.getInt("id");
  1185. query = executeQuery("SELECT id"+"\"id\""+" FROM album WHERE nome='"+nome+"' and artista_id="+artista_id+";");
  1186. rs.next();
  1187. int album_id=rs.getInt("id");
  1188. try{
  1189. s.executeQuery("DELETE from musica where album_id="+album_id+";");
  1190. } catch (Exception ex) {
  1191. System.out.println();
  1192. }try{
  1193. s.executeQuery("DELETE from album where nome='"+nome+"' and artista_id="+artista_id+";");
  1194. } catch (Exception ex) {
  1195. System.out.println();
  1196. }
  1197. }
  1198.  
  1199. private static void removerMusica(String nome, String artista) throws SQLException {
  1200. System.out.println("Remover Musica\n\n");
  1201. ResultSet query = executeQuery("SELECT id"+"\"id\""+" FROM artista WHERE nome='"+artista+"';");
  1202. rs.next();
  1203. int artista_id=rs.getInt("id");
  1204. try{
  1205. s.executeQuery("DELETE from musica where nome='"+nome+"' and artista_id="+artista_id+";");
  1206. } catch (Exception ex) {
  1207. System.out.println();
  1208. }try{
  1209. s.executeQuery("DELETE from album where nome='"+nome+"' and artista_id="+artista_id+";");
  1210. } catch (Exception ex) {
  1211. System.out.println();
  1212. }
  1213. }
  1214.  
  1215. private static void alterarArtista(String nome) throws SQLException{
  1216. Scanner sc = new Scanner(System.in);
  1217. Scanner ss= new Scanner(System.in);
  1218. int check=0;
  1219. String type=null;
  1220. String local=null;
  1221. ResultSet query = executeQuery("SELECT id"+"\"id\""+" FROM artista WHERE nome='"+nome+"';");
  1222. rs.next();
  1223. int artista_id=rs.getInt("id");
  1224. while(check!=1){
  1225. System.out.println("O que prentede alterar?\n1-Historia\n2-Type\n3-Adicionar Concerto");
  1226. System.out.print("Opcao: ");
  1227. int opcao= sc.nextInt();
  1228. switch(opcao){
  1229. case 1:
  1230. System.out.println("Nova historia:");
  1231. String historia = ss.nextLine();
  1232. try{
  1233. s.executeQuery("UPDATE artista set historia='"+historia+"' where id="+artista_id+";");
  1234. } catch (Exception ex) {
  1235. System.out.println();
  1236. }
  1237. check=1;
  1238. break;
  1239. case 2:
  1240. int teste=0;
  1241. while(teste!=1){
  1242. System.out.println("Novo type:");
  1243. type = ss.nextLine();
  1244. if(type.equals("Banda") || type.equals("Solo")){
  1245. teste=1;
  1246. }else
  1247. System.out.println("O Artista so pode ser uma Banda ou um Solo");
  1248. }
  1249. try{
  1250. s.executeQuery("UPDATE artista set type='"+type+"' where id="+artista_id+";");
  1251. } catch (Exception ex) {
  1252. System.out.println();
  1253. }
  1254. check=1;
  1255. break;
  1256. case 3:
  1257. System.out.println("Concerto");
  1258. teste=0;
  1259. while(teste!=1){
  1260. System.out.print("Local: ");
  1261. local=ss.nextLine();
  1262. if(local.equals("")){
  1263. System.out.println("O local nao pode ser null");
  1264. }else teste=1;
  1265. }
  1266. query = executeQuery("SELECT max(id)"+"\"id\""+" FROM concerto;");
  1267. rs.next();
  1268. int id=rs.getInt("id");
  1269.  
  1270. try{
  1271. if(id==0){
  1272. id=1;
  1273. s.executeQuery("INSERT INTO concerto(id,local_concerto,artista_id) values("+id+",'"+local+"',"+artista_id+");");
  1274. }else{
  1275. id=id+1;
  1276. s.executeQuery("INSERT INTO concerto(id,local_concerto,artista_id) values("+id+",'"+local+"',"+artista_id+");");
  1277. }
  1278. } catch (Exception ex) {
  1279. System.out.println();
  1280. }
  1281. check=1;
  1282. break;
  1283. default :
  1284. System.out.println("Essa opcao nao e valida");
  1285. String ok= ss.nextLine();
  1286. break;
  1287. }
  1288. }
  1289. }
  1290.  
  1291. private static void alterarMusica(String nome,String artista) throws SQLException{
  1292. Scanner sc = new Scanner(System.in);
  1293. Scanner ss= new Scanner(System.in);
  1294. int check=0;
  1295. String letra=null;
  1296. String ficheiro=null;
  1297. String editora = null;
  1298. String genero= null;
  1299. ResultSet query = executeQuery("SELECT id"+"\"id\""+" FROM artista WHERE nome='"+artista+"';");
  1300. rs.next();
  1301. int teste=0;
  1302. int artista_id=rs.getInt("id");
  1303. while(check!=1){
  1304. System.out.println("O que prentede alterar?\n1-Letra\n2-Duracao\n3-Ficheiro\n4-Editora\n5-Genero");
  1305. System.out.print("Opcao: ");
  1306. int opcao= sc.nextInt();
  1307. switch(opcao){
  1308. case 1:
  1309. teste=0;
  1310. while(teste!=1){
  1311. System.out.print("Nova Letra: ");
  1312. letra=ss.nextLine();
  1313. if(letra.equals("")){
  1314. System.out.println("A letra nao pode ser null");
  1315. }else teste=1;
  1316. }
  1317. try{
  1318. s.executeQuery("UPDATE musica set letra='"+letra+"' where nome='"+nome+"'and artista_id="+artista_id+";");
  1319. } catch (Exception ex) {
  1320. System.out.println();
  1321. }
  1322. check=1;
  1323. break;
  1324. case 2:
  1325. int duracao=0;
  1326. teste=0;
  1327. while(teste!=1){
  1328. System.out.println("Nova Duracao:");
  1329. duracao = sc.nextInt();
  1330. if(duracao!=0 && duracao >0) teste=1;
  1331. else{
  1332. System.out.println("Esse valor nao e possivel");
  1333. String ok=ss.nextLine();
  1334. }
  1335. }
  1336. try{
  1337. s.executeQuery("UPDATE musica set tempo='"+duracao+"' where nome='"+nome+"' and artista_id="+artista_id+";");
  1338. } catch (Exception ex) {
  1339. System.out.println();
  1340. }
  1341. check=1;
  1342. break;
  1343. case 3:
  1344. teste=0;
  1345. while(teste!=1){
  1346. System.out.print("Novo ficheiro: ");
  1347. ficheiro=ss.nextLine();
  1348. if(ficheiro.equals("")){
  1349. System.out.println("O ficheiro nao pode ser null");
  1350. }else teste=1;
  1351. }
  1352. try{
  1353. s.executeQuery("UPDATE musica set ficheiro='"+ficheiro+"' where nome='"+nome+"' and artista_id="+artista_id+";");
  1354. } catch (Exception ex) {
  1355. System.out.println();
  1356. }
  1357. check=1;
  1358. break;
  1359. case 4:
  1360. teste=0;
  1361. while(teste!=1){
  1362. System.out.print("Nova Editora: ");
  1363. editora=ss.nextLine();
  1364. if(editora.equals("")){
  1365. System.out.println("O nome da editora nao pode ser null");
  1366. }else{
  1367. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM editora WHERE nome='"+editora+"';");
  1368. rs.next();
  1369. int contagem=rs.getInt("contagem");
  1370. if(contagem==0){
  1371. System.out.println("Essa editora nao existe");
  1372. teste=inserirEditora(editora);
  1373. }else{
  1374. teste=1;
  1375. }
  1376. }
  1377. }
  1378. try{
  1379. s.executeQuery("UPDATE musica set editora_nome='"+editora+"' where nome='"+nome+"' and artista_id="+artista_id+";");
  1380. } catch (Exception ex) {
  1381. System.out.println();
  1382. }
  1383. check=1;
  1384. break;
  1385. case 5:
  1386. teste=0;
  1387. while(teste!=1){
  1388. System.out.print("Novo genero: ");
  1389. genero=ss.nextLine();
  1390. if(genero.equals("")){
  1391. System.out.println("O genero nao pode ser null");
  1392. }else teste=1;
  1393. }
  1394. try{
  1395. s.executeQuery("UPDATE musica set genero='"+genero+"' where nome='"+nome+"' and artista_id="+artista_id+";");
  1396. } catch (Exception ex) {
  1397. System.out.println();
  1398. }
  1399. check=1;
  1400. break;
  1401. default :
  1402. System.out.println("Essa opcao nao e valida");
  1403. String ok= ss.nextLine();
  1404. break;
  1405. }
  1406. }
  1407. }
  1408.  
  1409. private static void alterarAlbum(String nome,String artista) throws SQLException{
  1410. Scanner sc = new Scanner(System.in);
  1411. Scanner ss= new Scanner(System.in);
  1412. int check=0;
  1413. String genero=null;
  1414. String editora = null;
  1415. String escolha=null;
  1416. int dia=0,mes=0,ano = 0;
  1417. ResultSet query = executeQuery("SELECT id"+"\"id\""+" FROM artista WHERE nome='"+artista+"';");
  1418. rs.next();
  1419. int teste=0;
  1420. int artista_id=rs.getInt("id");
  1421. query = executeQuery("SELECT id"+"\"id\""+" FROM album WHERE nome='"+nome+"';");
  1422. rs.next();
  1423. int album_id=rs.getInt("id");
  1424. while(check!=1){
  1425. System.out.println("O que prentede alterar?\n1-Editora\n2-Genero\n3-Lancamento\n4-Inserir Musica\n5-Remover Musica");
  1426. System.out.print("Opcao: ");
  1427. int opcao= sc.nextInt();
  1428. switch(opcao){
  1429. case 1:
  1430. teste=0;
  1431. while(teste!=1){
  1432. System.out.print("Nova editora: ");
  1433. editora=ss.nextLine();
  1434. if(editora.equals("")){
  1435. System.out.println("O nome da editora nao pode ser null");
  1436. }else{
  1437. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM editora WHERE nome='"+editora+"';");
  1438. rs.next();
  1439. int contagem=rs.getInt("contagem");
  1440. if(contagem==0){
  1441. System.out.println("Essa editora nao existe");
  1442. teste=inserirEditora(editora);
  1443. }else{
  1444. teste=1;
  1445. }
  1446. }
  1447. }
  1448. try{
  1449. s.executeQuery("UPDATE album set editora='"+editora+"' where nome='"+nome+"' and artista_id="+artista_id+";");
  1450. } catch (Exception ex) {
  1451. System.out.println();
  1452. }
  1453. check=1;
  1454. break;
  1455. case 2:
  1456. teste=0;
  1457. while(teste!=1){
  1458. System.out.print("Novo genero: ");
  1459. genero=ss.nextLine();
  1460. if(genero.equals("")){
  1461. System.out.println("O genero nao pode ser null");
  1462. }else teste=1;
  1463. }
  1464. try{
  1465. s.executeQuery("UPDATE album set genero='"+genero+"' where nome='"+nome+"' and artista_id="+artista_id+";");
  1466. } catch (Exception ex) {
  1467. System.out.println();
  1468. }
  1469. check=1;
  1470. break;
  1471. case 3:
  1472. teste=0;
  1473. while(teste!=1){
  1474. System.out.print("Ano: ");
  1475. ano=sc.nextInt();
  1476. if(ano<=2018 && ano>0){
  1477. teste=1;
  1478. }else
  1479. System.out.println("O ano que colocou não é possivel");
  1480. }
  1481. teste=0;
  1482. while(teste!=1){
  1483. System.out.print("Mes: ");
  1484. mes=sc.nextInt();
  1485. if(mes<=12 && mes>0){
  1486. teste=1;
  1487. }else
  1488. System.out.println("O mes que colocou não é possivel");
  1489. }
  1490. teste=0;
  1491. while(teste!=1){
  1492. System.out.print("Dia: ");
  1493. dia=sc.nextInt();
  1494. if(dia<=31 && dia>0){
  1495. teste=1;
  1496. }else
  1497. System.out.println("O dia que colocou não é possivel");
  1498. }
  1499. try{
  1500. s.executeQuery("UPDATE album set lancamento='"+ano+"-"+mes+"-"+dia+"' where nome='"+nome+"' and artista_id="+artista_id+";");
  1501.  
  1502. } catch (Exception ex) {
  1503. System.out.println();
  1504. }
  1505. check=1;
  1506. break;
  1507. case 4:
  1508. query = executeQuery("SELECT count (DISTINCT nome)"+"\"contagem\""+" FROM musica WHERE artista_id="+artista_id+";");
  1509. rs.next();
  1510. int musicas=rs.getInt("contagem");
  1511. teste=0;
  1512. if(musicas==0){
  1513. System.out.println("Este Artista nao tem musicas");
  1514. String ok=ss.nextLine();
  1515. check=1;
  1516. break;
  1517. }
  1518. query = executeQuery("SELECT DISTINCT (nome)"+"\"musica\""+" FROM musica WHERE artista_id="+artista_id+";");
  1519. System.out.println("Musicas do Artista:");
  1520. while(teste!=1){
  1521. for(int i=0;i<musicas;i++){
  1522. rs.next();
  1523. String musica = rs.getString("musica");
  1524. System.out.println("---> "+musica);
  1525. }
  1526. System.out.println("Qual a musica que quer adicionar ao album?");
  1527. escolha=ss.nextLine();
  1528. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM musica WHERE nome='"+escolha+"' and artista_id="+artista_id+";");
  1529. rs.next();
  1530. musicas=rs.getInt("contagem");
  1531. if(musicas==0){
  1532. System.out.println("A sua escolha nao foi aceite tente novamente");
  1533. String ok= ss.nextLine();
  1534. }else{
  1535. teste=1;
  1536. }
  1537. }
  1538. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM musica WHERE nome='"+escolha+"' and album_id="+album_id+" and artista_id="+artista_id+";");
  1539. rs.next();
  1540. int repeticao=rs.getInt("contagem");
  1541. if(repeticao!=0){
  1542. System.out.println("Essa musica ja existe no album");
  1543. check=1;
  1544. break;
  1545. }
  1546. query = executeQuery("SELECT genero"+"\"genero\",letra"+"\"letra\",tempo"+"\"tempo\",ficheiro"+"\"ficheiro\",editora_nome"+"\"editora\" FROM musica WHERE nome='"+escolha+"' and artista_id="+artista_id+";");
  1547. rs.next();
  1548. genero=rs.getString("genero");
  1549. String letra= rs.getString("letra");
  1550. int duracao = rs.getInt("tempo");
  1551. String ficheiro = rs.getString("ficheiro");
  1552. editora= rs.getString("editora");
  1553. query = executeQuery("SELECT max(id)"+"\"id\""+" FROM musica;");
  1554. rs.next();
  1555. int id=rs.getInt("id");
  1556. id=id+1;
  1557. try{
  1558. s.executeQuery("INSERT INTO musica(id,nome,genero,tempo,ficheiro,letra,editora_nome,album_id,artista_id) values("+id+",'"+escolha+"','"+genero+"',"+duracao+",'"+ficheiro+"','"+letra+"','"+editora+"',"+album_id+","+artista_id+");");
  1559. } catch (Exception ex) {
  1560. System.out.println();
  1561. }
  1562. check=1;
  1563. break;
  1564. case 5:
  1565. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM musica WHERE album_id="+album_id+" and artista_id="+artista_id+";");
  1566. rs.next();
  1567. musicas=rs.getInt("contagem");
  1568. teste=0;
  1569. if(musicas==0){
  1570. System.out.println("Este Album nao tem musicas");
  1571. check=1;
  1572. break;
  1573. }
  1574. query = executeQuery("SELECT nome"+"\"musica\""+" FROM musica WHERE album_id="+album_id+" and artista_id="+artista_id+";");
  1575. System.out.println("Musicas do Album:");
  1576. while(teste!=1){
  1577. for(int i=0;i<musicas;i++){
  1578. rs.next();
  1579. String musica = rs.getString("musica");
  1580. System.out.println("---> "+musica);
  1581. }
  1582. System.out.println("Qual a musica que quer remover do album?");
  1583. escolha=ss.nextLine();
  1584. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM musica WHERE nome='"+escolha+"' and album_id="+album_id+" and artista_id="+artista_id+";");
  1585. rs.next();
  1586. musicas=rs.getInt("contagem");
  1587. if(musicas==0){
  1588. System.out.println("A sua escolha nao foi aceite tente novamente");
  1589. String ok= ss.nextLine();
  1590. }else{
  1591. teste=1;
  1592. }
  1593. }
  1594. try{
  1595. s.executeQuery("DELETE from musica where nome='"+escolha+"' and album_id="+album_id+" and artista_id="+artista_id+";");
  1596. } catch (Exception ex) {
  1597. System.out.println(ex);
  1598. }
  1599.  
  1600. check=1;
  1601. break;
  1602. default :
  1603. System.out.println("Essa opcao nao e valida");
  1604. String ok= ss.nextLine();
  1605. break;
  1606. }
  1607. }
  1608. }
  1609.  
  1610. private static void detalheArtista(String nome) throws SQLException{
  1611. Scanner sc= new Scanner(System.in);
  1612. ResultSet query = executeQuery("SELECT id"+"\"id\""+",nome"+"\"nome\""+",historia"+"\"historia\",type"+"\"tipo\" FROM artista WHERE nome='"+nome+"';");
  1613. rs.next();
  1614. int artista_id = rs.getInt("id");
  1615. String historia= rs.getString("historia");
  1616. String tipo = rs.getString("tipo");
  1617. System.out.println("Artista : "+nome);
  1618. System.out.println("Historia: "+historia);
  1619. System.out.println("Tipo : "+tipo);
  1620. query = executeQuery("SELECT count (DISTINCT nome)"+"\"contagem\""+" FROM musica WHERE artista_id="+artista_id+";");
  1621. rs.next();
  1622. int musicas=rs.getInt("contagem");
  1623. int teste=0;
  1624. while(teste!=1){
  1625. if(musicas==0){
  1626. System.out.println("Este Artista nao tem musicas");
  1627. teste=1;
  1628. }else{
  1629. query = executeQuery("SELECT DISTINCT"+"\"nome\""+" FROM musica WHERE artista_id="+artista_id+";");
  1630.  
  1631. System.out.println("Musicas: ");
  1632. for(int i=0; i<musicas; i++){
  1633. rs.next();
  1634. String musica= rs.getString("nome");
  1635. System.out.println("--> "+musica);
  1636. }
  1637. teste=1;
  1638. }
  1639. }
  1640. query = executeQuery("SELECT count (DISTINCT nome)"+"\"contagem\""+" FROM album WHERE artista_id="+artista_id+";");
  1641. rs.next();
  1642. int albuns=rs.getInt("contagem");
  1643. teste=0;
  1644. while(teste!=1){
  1645. if(albuns==0){
  1646. System.out.println("Este Artista nao tem albuns");
  1647. teste=1;
  1648. }else{
  1649. query = executeQuery("SELECT DISTINCT"+"\"nome\""+" FROM album WHERE artista_id="+artista_id+";");
  1650. System.out.println("Albuns: ");
  1651. for(int i=0; i<albuns; i++){
  1652. rs.next();
  1653. String musica=rs.getString("nome");
  1654. System.out.println("--> "+musica);
  1655. }
  1656. teste=1;
  1657. }
  1658. }
  1659. query = executeQuery("SELECT count(*)"+"\"contagem\""+" FROM concerto WHERE artista_id="+artista_id+";");
  1660. rs.next();
  1661. int concertos=rs.getInt("contagem");
  1662. teste=0;
  1663. teste=0;
  1664. while(teste!=1){
  1665. if(concertos==0){
  1666. System.out.println("Este Artista nao tem concertos");
  1667. String ok=sc.nextLine();
  1668. teste=1;
  1669. }else{
  1670. query = executeQuery("SELECT local_concerto"+"\"nome\""+" FROM concerto WHERE artista_id="+artista_id+";");
  1671. System.out.println("Concertos: ");
  1672. for(int i=0; i<concertos; i++){
  1673. rs.next();
  1674. String musica=rs.getString("nome");
  1675. System.out.println("--> "+musica);
  1676. }
  1677. teste=1;
  1678. }
  1679. }
  1680.  
  1681. }
  1682.  
  1683. private static void detalheMusica(String nome,String artista) throws SQLException{
  1684.  
  1685. ResultSet query = executeQuery("SELECT id"+"\"id\""+"FROM artista WHERE nome='"+artista+"';");
  1686. rs.next();
  1687. int artista_id = rs.getInt("id");
  1688. query = executeQuery("SELECT id"+"\"id\""+",nome"+"\"nome\""+",genero"+"\"genero\",letra"+"\"letra\",tempo"+"\"tempo\",ficheiro"+"\"ficheiro\",editora_nome"+"\"editora\" FROM musica WHERE nome='"+nome+"' and artista_id="+artista_id+";");
  1689. rs.next();
  1690. String genero=rs.getString("genero");
  1691. String letra= rs.getString("letra");
  1692. int duracao = rs.getInt("tempo");
  1693. String ficheiro = rs.getString("ficheiro");
  1694. String editora= rs.getString("editora");
  1695. System.out.println("Musica: "+nome);
  1696. System.out.println("Artista : "+artista);
  1697. System.out.println("Genero: "+genero);
  1698. System.out.println("Duracao: "+duracao);
  1699. System.out.println("Editora: "+editora);
  1700. }
  1701.  
  1702. private static void detalheAlbum(String nome,String artista) throws SQLException{
  1703. ResultSet query = executeQuery("SELECT id"+"\"id\""+"FROM artista WHERE nome='"+artista+"';");
  1704. rs.next();
  1705. int artista_id = rs.getInt("id");
  1706. query = executeQuery("SELECT id"+"\"id\""+",nome"+"\"nome\""+",genero"+"\"genero\",editora"+"\"editora\",lancamento"+"\"lancamento\" FROM album WHERE nome='"+nome+"' and artista_id="+artista_id+";");
  1707. rs.next();
  1708. String genero=rs.getString("genero");
  1709. String lancamento= rs.getString("lancamento");
  1710. String editora= rs.getString("editora");
  1711. System.out.println("Album: "+nome);
  1712. System.out.println("Artista: "+artista);
  1713. System.out.println("Genero: "+genero);
  1714. System.out.println("Lancamento: "+lancamento);
  1715. System.out.println("Editora: "+editora);
  1716. query = executeQuery("SELECT id"+"\"id\""+" FROM album WHERE nome='"+nome+"';");
  1717. rs.next();
  1718. int album_id=rs.getInt("id");
  1719. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM musica WHERE album_id="+album_id+" and artista_id="+artista_id+";");
  1720. rs.next();
  1721. int musicas=rs.getInt("contagem");
  1722. query = executeQuery("SELECT nome"+"\"musica\""+" FROM musica WHERE album_id="+album_id+" and artista_id="+artista_id+";");
  1723. System.out.println("Musicas do Album:");
  1724. for(int i=0;i<musicas;i++){
  1725. rs.next();
  1726. String musica = rs.getString("musica");
  1727. System.out.println("---> "+musica);
  1728. }
  1729. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM critica WHERE album_id="+album_id+";");
  1730. rs.next();
  1731. int comentarios=rs.getInt("contagem");
  1732. query = executeQuery("SELECT pessoa_username"+"\"user\""+",comentario"+"\"comentario\""+",pontuacao"+"\"pontuacao\""+" FROM critica WHERE album_id="+album_id+";");
  1733. System.out.println("Criticas ao Album:");
  1734. for(int i=0;i<comentarios;i++){
  1735. rs.next();
  1736. String user = rs.getString("user");
  1737. String comentario = rs.getString("comentario");
  1738. int pontuacao = rs.getInt("pontuacao");
  1739. System.out.println("---> "+user+": "+comentario+" Pontuacao: "+pontuacao);
  1740. }
  1741. }
  1742.  
  1743. private static void download(String user) throws SQLException{
  1744. System.out.println("Download");
  1745. System.out.println(" 1- Fazer download");
  1746. System.out.println(" 2- Ver partilha de download");
  1747. System.out.println(" 0- Sair");
  1748. System.out.print("Opcao: ");
  1749. Scanner sc= new Scanner(System.in);
  1750. String opcao = sc.nextLine();
  1751. int teste=0;
  1752. while(teste!=1){
  1753. switch(opcao){
  1754. case "1":
  1755. fazerD(user);
  1756. teste=1;
  1757. break;
  1758. case "2":
  1759. partilhaD(user);
  1760. teste=1;
  1761. break;
  1762. case "0":
  1763. teste=1;
  1764. break;
  1765. default:
  1766. System.out.println("A opcao nao e valida");
  1767. break;
  1768.  
  1769. }
  1770. }
  1771. }
  1772.  
  1773. private static void fazerD(String user) throws SQLException{
  1774. Scanner sc = new Scanner(System.in);
  1775. int check=0;
  1776. String artista=null;
  1777. int artista_id=0;
  1778. ResultSet query = executeQuery("SELECT count(*)"+"\"contagem\""+" FROM artista;");
  1779. rs.next();
  1780. int artistas=rs.getInt("contagem");
  1781. if(artistas==0){
  1782. System.out.println("Nao existem artistas");
  1783. String ok =sc.nextLine();
  1784. return;
  1785. }
  1786. while(check!=1){
  1787. System.out.print("Artista: ");
  1788. artista=sc.nextLine();
  1789. if(artista.equals("")){
  1790. System.out.println("O nome do artista nao pode ser null");
  1791. }else{
  1792. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM artista WHERE nome='"+artista+"';");
  1793. rs.next();
  1794. int contagem=rs.getInt("contagem");
  1795. if(contagem==0){
  1796. System.out.println("Esse artista nao existe");
  1797. String ok= sc.nextLine();
  1798. }else{
  1799. query = executeQuery("SELECT id"+"\"id\""+" FROM artista WHERE nome='"+artista+"';");
  1800. rs.next();
  1801. artista_id=rs.getInt("id");
  1802. check=1;
  1803. }
  1804. }
  1805. }
  1806. query = executeQuery("SELECT count (DISTINCT nome)"+"\"contagem\""+" FROM musica WHERE artista_id="+artista_id+";");
  1807. rs.next();
  1808. int musicas=rs.getInt("contagem");
  1809. int teste=0;
  1810. Scanner ss= new Scanner(System.in);
  1811. if(musicas==0){
  1812. System.out.println("Este Artista nao tem musicas");
  1813. String ok=ss.nextLine();
  1814. return;
  1815. }
  1816. String escolha=null;
  1817. query = executeQuery("SELECT DISTINCT (nome)"+"\"musica\""+" FROM musica WHERE artista_id="+artista_id+";");
  1818. System.out.println("Musicas do Artista:");
  1819. while(teste!=1){
  1820. for(int i=0;i<musicas;i++){
  1821. rs.next();
  1822. String musica = rs.getString("musica");
  1823. System.out.println("---> "+musica);
  1824. }
  1825. System.out.println("Qual a musica que quer fazer o download?");
  1826. escolha=ss.nextLine();
  1827. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM musica WHERE nome='"+escolha+"' and artista_id="+artista_id+";");
  1828. rs.next();
  1829. musicas=rs.getInt("contagem");
  1830. if(musicas==0){
  1831. System.out.println("A sua escolha nao foi aceite tente novamente");
  1832. String ok= ss.nextLine();
  1833. }else{
  1834. teste=1;
  1835. }
  1836. }
  1837. query = executeQuery("SELECT id"+"\"id\""+" FROM musica WHERE nome='"+escolha+"';");
  1838. rs.next();
  1839. int musica_id=rs.getInt("id");
  1840. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM download;");
  1841. rs.next();
  1842. check=rs.getInt("contagem");
  1843. int id=0;
  1844. try{
  1845. if(check==0){
  1846. id=1;
  1847. s.executeQuery("INSERT INTO download(id,pessoa_username) values("+id+",'"+user+"');");
  1848. }else{
  1849. query = executeQuery("SELECT max(id)"+"\"id\""+" FROM artista;");
  1850. rs.next();
  1851. id=rs.getInt("id");
  1852. id=id+1;
  1853. s.executeQuery("INSERT INTO download(id,pessoa_username) values("+id+",'"+user+"');");
  1854. }
  1855. } catch (Exception ex) {
  1856. System.out.println();
  1857. }
  1858. try{
  1859. s.executeQuery("INSERT INTO musica_download(musica_id,download_id) values("+musica_id+","+id+");");
  1860. } catch (Exception ex) {
  1861. System.out.println();
  1862. }
  1863. }
  1864.  
  1865. private static void partilhaD(String user) throws SQLException{
  1866. ResultSet query = executeQuery("SELECT count(*)"+"\"contagem\""+" FROM musica_download ;");
  1867. rs.next();
  1868. int ndownload=rs.getInt("contagem");
  1869. System.out.println(ndownload);
  1870. int teste=0;
  1871. Scanner ss= new Scanner(System.in);
  1872. if(ndownload==0){
  1873. System.out.println("Nao existem downloads");
  1874. String ok=ss.nextLine();
  1875. return;
  1876. }
  1877. query = executeQuery("SELECT d.pessoa_username"+"\"user\""+",m.nome"+"\"musica\""+" FROM musica m,download d, musica_download md WHERE md.musica_id=m.id and d.id=md.download_id;");
  1878. System.out.println("Downloads:");
  1879. for(int i=0;i<ndownload;i++){
  1880. rs.next();
  1881. String usern = rs.getString("user");
  1882. String musica = rs.getString("musica");
  1883. System.out.println("---> "+usern+" Musica: "+musica);
  1884. }
  1885.  
  1886. teste=0;
  1887. while(teste!=1){
  1888. System.out.println("Quer obter algum destes downloads? (Sim/Nao)");
  1889. System.out.print("Opcao: ");
  1890. String resposta = ss.nextLine();
  1891. if(resposta.equals("Nao")){
  1892. return;
  1893. }else if(!resposta.equals("Sim")){
  1894. System.out.println("A sua resposta nao foi valida tente novamente");
  1895. String ok = ss.nextLine();
  1896. }else teste=1;
  1897. }
  1898. query = executeQuery("SELECT d.pessoa_username"+"\"user\""+",m.nome"+"\"musica\""+" FROM musica m,download d, musica_download md WHERE md.musica_id=m.id and d.id=md.download_id;");
  1899. System.out.println("Downloads:");
  1900. for(int i=0;i<ndownload;i++){
  1901. rs.next();
  1902. String usern = rs.getString("user");
  1903. String musica = rs.getString("musica");
  1904. System.out.println("---> "+usern+" Musica: "+musica);
  1905. }
  1906. teste=0;
  1907. String musica=null;
  1908. while(teste!=1){
  1909. System.out.println("Qual?");
  1910. System.out.print("User: ");
  1911. String usern= ss.nextLine();
  1912. System.out.print("Musica: ");
  1913. musica = ss.nextLine();
  1914. query = executeQuery("SELECT count(*)"+"\"contagem\""+" FROM musica m,musica_download md, download d WHERE md.musica_id=m.id and md.download_id=d.id and d.pessoa_username='"+usern+"' and m.nome='"+musica+"';");
  1915. rs.next();
  1916. int contagem= rs.getInt("contagem");
  1917. if(contagem==0){
  1918. System.out.println("A sua opcao nao e valida");
  1919. String ok=ss.nextLine();
  1920. }else teste=1;
  1921. }
  1922. query = executeQuery("SELECT id"+"\"id\""+" FROM musica WHERE nome='"+musica+"';");
  1923. rs.next();
  1924. int musica_id=rs.getInt("id");
  1925. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM download;");
  1926. rs.next();
  1927. int check=rs.getInt("contagem");
  1928. int id=0;
  1929. try{
  1930. if(check==0){
  1931. id=1;
  1932. s.executeQuery("INSERT INTO download(id,pessoa_username) values("+id+",'"+user+"');");
  1933. }else{
  1934. query = executeQuery("SELECT max(id)"+"\"id\""+" FROM download;");
  1935. rs.next();
  1936. id=rs.getInt("id");
  1937. id=id+1;
  1938. System.out.println(id);
  1939. s.executeQuery("INSERT INTO download(id,pessoa_username) values("+id+",'"+user+"');");
  1940. }
  1941. } catch (Exception ex) {
  1942. System.out.println(ex);
  1943. }
  1944. try{
  1945. s.executeQuery("INSERT INTO musica_download(musica_id,download_id) values("+musica_id+","+id+");");
  1946. } catch (Exception ex) {
  1947. System.out.println(ex);
  1948. }
  1949.  
  1950. }
  1951.  
  1952. public static void playlist(String user) throws SQLException{
  1953. Scanner sc= new Scanner(System.in);
  1954. System.out.println("Playlist");
  1955. int check=0;
  1956. while(check!=1){
  1957. System.out.println("1-Criar playlist\n2-Ver playlist\n3-Ver playlists publicas\n4-Adicionar musica a playlisy\n0-Sair");
  1958. System.out.print("Opcao: ");
  1959. String opcao = sc.nextLine();
  1960. switch(opcao){
  1961. case "1":
  1962. criarP(user);
  1963. return;
  1964. case "2":
  1965. verP(user);
  1966. return;
  1967. case "3":
  1968. verPP();
  1969. return;
  1970. case "4":
  1971. adicionarP(user);
  1972. return;
  1973. case "0":
  1974. check=1;
  1975. break;
  1976. default:
  1977. System.out.println("A sua opcao nao e valida");
  1978. String ok = sc.nextLine();
  1979. }
  1980. }
  1981. }
  1982.  
  1983. public static void criarP(String user) throws SQLException{
  1984. int check=0;
  1985. ResultSet query = executeQuery("SELECT count(pessoa)"+"\"nome\""+" FROM playlist where pessoa='"+user+"';");
  1986. rs.next();
  1987. int nome= rs.getInt("nome");
  1988. Scanner sc= new Scanner(System.in);
  1989. if(nome==1){
  1990. System.out.println("Voce ja tem uma playlist");
  1991. String ok=sc.nextLine();
  1992. return;
  1993. }
  1994. query = executeQuery("SELECT count(*)"+"\"contagem\""+" FROM artista;");
  1995. rs.next();
  1996. int artistas=rs.getInt("contagem");
  1997. if(artistas==0){
  1998. System.out.println("Nao existem artistas");
  1999. String ok =sc.nextLine();
  2000. return;
  2001. }
  2002. String resposta=null;
  2003. while(check!=1){
  2004. System.out.println("A sua playlist e privada? (Sim/Nao)");
  2005. resposta= sc.nextLine();
  2006. if(resposta.equals("Nao")){
  2007. check=1;
  2008. }else if(!resposta.equals("Sim")){
  2009. System.out.println("A sua respota nao foi aceite");
  2010. String ok=sc.nextLine();
  2011. }else check=1;
  2012. }
  2013. int teste=0;
  2014. String musica=null;
  2015. String artista=null;
  2016. while(teste!=1){
  2017. System.out.println("Qual musica que quer adicionar a sua playlist?");
  2018. System.out.print("Nome: ");
  2019. musica= sc.nextLine();
  2020. System.out.print("Artista: ");
  2021. artista = sc.nextLine();
  2022. query = executeQuery("SELECT id"+"\"id\""+"FROM artista WHERE nome='"+artista+"';");
  2023. rs.next();
  2024. int artista_id = rs.getInt("id");
  2025. query = executeQuery("SELECT count(*)"+"\"contagem\""+" FROM musica m WHERE m.nome='"+musica+"' and m.artista_id="+artista_id+";");
  2026. rs.next();
  2027. int contagem= rs.getInt("contagem");
  2028. if(contagem==0){
  2029. System.out.println("A sua opcao nao e valida");
  2030. String ok=sc.nextLine();
  2031. }else teste=1;
  2032. }
  2033. query = executeQuery("SELECT count(1)"+"\"contagem\""+" FROM playlist;");
  2034. rs.next();
  2035. check=rs.getInt("contagem");
  2036. int id=0;
  2037. try{
  2038. if(check==0){
  2039. id=1;
  2040. s.executeQuery("INSERT INTO playlist(pessoa,musica,id,privado) values('"+user+"','"+musica+"',"+id+",'"+resposta+"');");
  2041. }else{
  2042. query = executeQuery("SELECT max(id)"+"\"id\""+" FROM playlist;");
  2043. rs.next();
  2044. id=rs.getInt("id");
  2045. id=id+1;
  2046. s.executeQuery("INSERT INTO playlist(pessoa,musica,id,privado) values('"+user+"','"+musica+"',"+id+",'"+resposta+"');");
  2047. }
  2048. } catch (Exception ex) {
  2049. System.out.println(ex);
  2050. }
  2051. try{
  2052. s.executeQuery("INSERT INTO pessoa_playlist(pessoa_username,playlist_id) values('"+user+"',"+id+");");
  2053. } catch (Exception ex) {
  2054. System.out.println(ex);
  2055. }
  2056. query = executeQuery("SELECT id"+"\"id\""+"FROM musica WHERE nome='"+musica+"';");
  2057. rs.next();
  2058. int musica_id = rs.getInt("id");
  2059. try{
  2060. s.executeQuery("INSERT INTO musica_playlist(musica_id,playlist_id) values("+musica_id+","+id+");");
  2061. } catch (Exception ex) {
  2062. System.out.println();
  2063. }
  2064. }
  2065.  
  2066. private static void verP(String user) throws SQLException{
  2067. ResultSet query = executeQuery("SELECT count(pessoa)"+"\"nome\""+" FROM playlist where pessoa='"+user+"';");
  2068. rs.next();
  2069. int nome= rs.getInt("nome");
  2070. Scanner sc= new Scanner(System.in);
  2071. if(nome==0){
  2072. System.out.println("Voce nao tem uma playlist");
  2073. String ok= sc.nextLine();
  2074. return;
  2075. }else if(nome!=0){
  2076. query = executeQuery("SELECT id"+"\"id\""+" FROM playlist where pessoa='"+user+"';");
  2077. rs.next();
  2078. int playlist_id = rs.getInt("id");
  2079. query = executeQuery("SELECT count(playlist_id)"+"\"quantas\""+" FROM musica_playlist where playlist_id="+playlist_id+";");
  2080. rs.next();
  2081. int nmusicas= rs.getInt("quantas");
  2082. query = executeQuery("SELECT m.nome"+"\"nome\""+",a.nome"+"\"artista\""+" FROM musica_playlist mp, musica m, artista a where mp.musica_id=m.id and a.id=m.artista_id and mp.playlist_id="+playlist_id+";");
  2083. for(int i=0; i<nmusicas;i++){
  2084. rs.next();
  2085. String musica=rs.getString("nome");
  2086. String artista=rs.getString("artista");
  2087. System.out.println("Musica: "+musica+" Artista: "+artista);
  2088. }
  2089. }
  2090. String ok=sc.nextLine();
  2091. }
  2092.  
  2093. public static void verPP() throws SQLException{
  2094. ResultSet query = executeQuery("SELECT count(pessoa)"+"\"nome\""+" FROM playlist where privado='Nao';");
  2095. rs.next();
  2096. int nome= rs.getInt("nome");
  2097. Scanner sc= new Scanner(System.in);
  2098. if(nome==0){
  2099. System.out.println("Nao existem playlist publicas");
  2100. String ok=sc.nextLine();
  2101. }else if(nome!=0){
  2102. query = executeQuery("SELECT Distinct p.pessoa"+"\"nome\""+" FROM playlist p, musica_playlist mp, musica m where p.id=mp.playlist_id and mp.musica_id=m.id and privado='Nao';");
  2103. for(int i=0;i<nome;i++){
  2104. rs.next();
  2105. String user= rs.getString("nome");
  2106. System.out.println("User: "+user);
  2107. }
  2108. }
  2109. int teste=0;
  2110. String resposta=null;
  2111. while(teste!=1){
  2112. System.out.println("Qual playlist quer ver?");
  2113. resposta = sc.nextLine();
  2114. query = executeQuery("SELECT count(p.pessoa)"+"\"nome\""+" FROM playlist p, musica_playlist mp, musica m where p.id=mp.playlist_id and mp.musica_id=m.id and privado='Nao' and p.pessoa='"+resposta+"';");
  2115. rs.next();
  2116. int count= rs.getInt("nome");
  2117. if(count==0){
  2118. System.out.println("A sua escolha nao foi aceite");
  2119. String ok= sc.nextLine();
  2120. }else teste=1;
  2121. }
  2122. query = executeQuery("SELECT id"+"\"id\""+" FROM playlist where pessoa='"+resposta+"';");
  2123. rs.next();
  2124. int playlist_id = rs.getInt("id");
  2125. query = executeQuery("SELECT count(playlist_id)"+"\"quantas\""+" FROM musica_playlist where playlist_id="+playlist_id+";");
  2126. rs.next();
  2127. int nmusicas= rs.getInt("quantas");
  2128. query = executeQuery("SELECT m.nome"+"\"nome\""+",a.nome"+"\"artista\""+" FROM musica_playlist mp, musica m, artista a where mp.musica_id=m.id and a.id=m.artista_id and mp.playlist_id="+playlist_id+";");
  2129. System.out.println("Playlist "+resposta);
  2130. for(int i=0; i<nmusicas;i++){
  2131. rs.next();
  2132. String musica= rs.getString("nome");
  2133. String artista = rs.getString("artista");
  2134. System.out.println("Musica: "+musica+" Artista: "+artista);
  2135. }
  2136. String ok=sc.nextLine();
  2137. }
  2138.  
  2139. public static void adicionarP(String user) throws SQLException{
  2140. ResultSet query = executeQuery("SELECT count(pessoa)"+"\"nome\""+" FROM playlist where pessoa='"+user+"';");
  2141. rs.next();
  2142. int nome= rs.getInt("nome");
  2143. Scanner sc= new Scanner(System.in);
  2144. if(nome==0){
  2145. System.out.println("Voce nao tem uma playlist");
  2146. String ok=sc.nextLine();
  2147. return;
  2148. }
  2149. query = executeQuery("SELECT id"+"\"id\""+" FROM playlist where pessoa='"+user+"';");
  2150. rs.next();
  2151. int playlist_id= rs.getInt("id");
  2152.  
  2153. int teste=0;
  2154. String musica=null;
  2155. String artista=null;
  2156. int musica_id=0;
  2157. while(teste!=1){
  2158. System.out.println("Qual musica que quer adicionar a sua playlist?");
  2159. System.out.print("Nome: ");
  2160. musica= sc.nextLine();
  2161. System.out.print("Artista: ");
  2162. artista = sc.nextLine();
  2163. query = executeQuery("SELECT count(*)"+"\"id\""+"FROM artista WHERE nome='"+artista+"';");
  2164. rs.next();
  2165. int nartista= rs.getInt("id");
  2166. if(nartista==0){
  2167. System.out.println("A sua opcao nao e valida");
  2168. String ok=sc.nextLine();
  2169. }else{
  2170. query = executeQuery("SELECT id"+"\"id\""+"FROM artista WHERE nome='"+artista+"';");
  2171. rs.next();
  2172. int artista_id = rs.getInt("id");
  2173. query = executeQuery("SELECT count(*)"+"\"contagem\""+" FROM musica WHERE nome='"+musica+"' and artista_id="+artista_id+";");
  2174. rs.next();
  2175. int contagem= rs.getInt("contagem");
  2176. if(contagem==0){
  2177. System.out.println("A sua opcao nao e valida");
  2178. String ok=sc.nextLine();
  2179. }else{
  2180. query = executeQuery("SELECT id"+"\"id\""+" FROM musica WHERE nome='"+musica+"' and artista_id="+artista_id+";");
  2181. rs.next();
  2182. musica_id= rs.getInt("id");
  2183. query = executeQuery("SELECT count(*)"+"\"confirmacao\""+" FROM musica_playlist WHERE musica_id="+musica_id+" and playlist_id="+playlist_id+";");
  2184. rs.next();
  2185. int confirmar= rs.getInt("confirmacao");
  2186. if(confirmar==1){
  2187. System.out.println("Essa musica ja faz parte da sua playlist");
  2188. String ok= sc.nextLine();
  2189. return;
  2190. }else teste=1;
  2191. }
  2192. }
  2193. }
  2194. try{
  2195. s.executeQuery("INSERT INTO musica_playlist(musica_id,playlist_id) values("+musica_id+","+playlist_id+");");
  2196. } catch (Exception ex) {
  2197. System.out.println();
  2198. }
  2199. }
  2200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement