Guest User

Untitled

a guest
Sep 4th, 2018
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.95 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.sql.*;
  3. import java.text.SimpleDateFormat;
  4.  
  5. public class boot{
  6. public static void main( String args[] ){
  7. Scanner input = new Scanner( System.in );
  8. String user = "root", pass = "admin";
  9. int usrChoice = -1, rv;
  10. /*
  11. System.out.println( "Inserire il nome utente:" );
  12. user = "&user=" + input.nextLine();
  13. System.out.println( "Inserire la password:" );
  14. pass = "&password=" + input.nextLine();
  15. */
  16. try{
  17. Connection conn = null;
  18. Class.forName( "com.mysql.jdbc.Driver" ).newInstance();
  19. String url = "jdbc:mysql://localhost/bdunisa" + user + pass;
  20. conn = DriverManager.getConnection( url );
  21. System.out.printf( "\n\tConnessione a %s riuscita\n\n", url );
  22. Statement st = conn.createStatement();
  23.  
  24. while( usrChoice != 0 ){
  25. printMenu();
  26. usrChoice = Integer.parseInt( input.nextLine() );
  27. if( usrChoice != 0 )
  28. doOperation( usrChoice, st );
  29. }
  30. st.close();
  31. conn.close();
  32. } catch( Exception e ){
  33. System.out.println(e);}
  34. }
  35.  
  36. private static void progetto(){
  37. for( int i=0; i<50; i++ )
  38. System.out.println();
  39. }
  40.  
  41. private static void printMenu(){
  42. progetto();
  43. System.out.println( "Università degli Studi di Salerno - Biblioteca v1.0");
  44. System.out.println( "-----------------------------------------------------------------------------" );
  45. System.out.println( " Menu delle operazioni" );
  46. System.out.println( "-----------------------------------------------------------------------------" );
  47. System.out.println( "1 - Memorizza nuovo Utente");
  48. System.out.println( "2 - Memorizza nuovo Critico");
  49. System.out.println( "3 - Memorizza una nuova Recensione");
  50. System.out.println( "4 - Memorizza nuovo Prestito");
  51. System.out.println( "5 - Memorizza nuovo Autore");
  52. System.out.println( "6 - Memorizza nuova Casa Editrice");
  53. System.out.println( "7 - Memorizza nuova Opera");
  54. System.out.println( "8 - Modifica dei dati utente");
  55. System.out.println( "9 - Cancellare un Utente");
  56. System.out.println( "10 - Cancellare un Critico");
  57. System.out.println( "11 - Cancellare una Recensione");
  58. System.out.println( "12 - Cancellare un Autore");
  59. System.out.println( "13 - Cancellare una Casa Editrice");
  60. System.out.println( "14 - Cancellare un'opera");
  61. System.out.println( "15 - Stampa l'elenco degli utenti ed il numero dei prestiti effettuati");
  62. System.out.println( "16 - Stampa dei prestiti effettuati in un determinato anno");
  63. System.out.println( "17 - Stampa l’elenco ed il numero delle recensioni");
  64. System.out.println( "18 - Stampa l’elenco degli autori");
  65. System.out.println( "19 - Stampa l’elenco delle case editrici");
  66. System.out.println( "20 - Ricerca di un’opera per titolo con controllo disponibilità");
  67. System.out.println( "21 - Stampare l'elenco dei prestiti in corso");
  68. System.out.println( "0 - Uscire");
  69. System.out.println( "-----------------------------------------------------------------------------" );
  70. System.out.println();
  71. System.out.print( "Digitare scelta: ");
  72. }
  73.  
  74. private static void doOperation( int usrChoice, Statement st ){ //Esegue l'operazione indicata dall'intero usrChoice
  75. Scanner input = new Scanner( System.in );
  76. try{
  77. String op = ""; //Stringa contentente le query SQL
  78. int rv; //Return value
  79. ResultSet rs; //Variabile che conterrà gli output delle varie query
  80.  
  81. switch( usrChoice ){
  82.  
  83. default:{
  84. System.out.println("Selezione errata.");
  85. break;
  86. }
  87.  
  88. case 1:{
  89. Scanner in = new Scanner (System.in);
  90. String s1="docente", s2="studente";
  91.  
  92. System.out.println("Fornisci il numero di carta di identità");
  93. String numCartaId = in.nextLine();
  94.  
  95. op = "SELECT `CARTAIDENTITA` FROM `UTENTE` WHERE `CARTAIDENTITA` = " + numCartaId;
  96. rs=st.executeQuery(op);
  97.  
  98. if(rs.next()){
  99. System.out.println("L'utente è già registrato.");
  100. } else {
  101. System.out.println("Definire il nominativo (nome e cognome separati da uno spazio)");
  102. String nominativo=in.nextLine();
  103. System.out.println("Definire la matricola");
  104. int matricola= in.nextInt();
  105. System.out.println("Definire l'indirizzo (compreso di numero civico)");
  106. String indirizzo=in.nextLine();
  107. System.out.println("Definire recapito telefonico");
  108. int recapito=in.nextInt();
  109.  
  110. System.out.println("Definire un USERNAME");
  111. String username=in.nextLine();
  112. System.out.println("Definire una PASSWORD");
  113. String password=in.nextLine();
  114.  
  115. System.out.println("Definire il tipo utente: [DOCENTE o STUDENTE]");
  116. String tipoUtente=in.nextLine();
  117.  
  118. if(tipoUtente.equalsIgnoreCase(s1)){
  119. System.out.println("Inserisci il dipartimento");
  120. String dipartimento=in.nextLine();
  121. System.out.println("Iscrizione completata.");
  122. } else if(tipoUtente.equalsIgnoreCase(s2))
  123. System.out.println("Iscrizione completata");
  124. else System.out.println("Digitazione errata.");
  125.  
  126. //CREAZIONE TESSERA UTENTE
  127. System.out.println("Definisci numero tessera");
  128. String numTessera=in.nextLine();
  129. System.out.println("Definisci il numero di irregolarità");
  130. String numIrregolarita=in.nextLine();
  131. System.out.println("Inserisci la data creazione della tessera (YYYY-MM-GG)");
  132. String dataRegistrazione=in.nextLine();
  133. }
  134.  
  135. break;
  136. }
  137.  
  138. case 2:{
  139. Scanner in= new Scanner(System.in);
  140. System.out.println("Inserisci il codice del critico");
  141. int codCritico=in.nextInt();
  142. op="SELECT `CODCRITICO` FROM `CRITICO` WHERE CODCRITICO = " +codCritico;
  143. rs=st.executeQuery(op);
  144.  
  145. if(rs.next()){
  146. System.out.println("Il codice inserito è già inserito nel sistema.");
  147. } else {
  148. System.out.println("Definire il nome del critico");
  149. String nome=in.nextLine();
  150. System.out.println("Definire il cognome del critico");
  151. String cognome=in.nextLine();
  152. System.out.println("Operazione eseguita con successo.");
  153. }
  154.  
  155. break;
  156. }
  157.  
  158. case 3:{
  159. Scanner in = new Scanner(System.in);
  160. System.out.println("Definisci l'isbn dell'opera");
  161. int isbnOpera=in.nextInt();
  162. op="SELECT `ISBN` FROM `OPERA` WHERE ISBN = "+isbnOpera;
  163. rs=st.executeQuery(op);
  164.  
  165. if(rs.next()){
  166. System.out.println("Il codice ISBN è già esistente.");
  167. } else {
  168. System.out.println("Definisci il nome dell'opera recensita");
  169. String opera=in.nextLine();
  170. System.out.println("Definisci il rating per l'opera");
  171. double rating=in.nextDouble();
  172. System.out.println("Definisci il nome del critico");
  173. String nomeCritico=in.nextLine();
  174. System.out.println("Definisci il cognome del critico");
  175. String cognomeCritico=in.nextLine();
  176. System.out.println("Operazione eseguita con successo.");
  177. }
  178.  
  179. break;
  180. }
  181.  
  182. case 4:{
  183. Scanner in = new Scanner (System.in);
  184. System.out.println("Inserisci il titolo dell'opera");
  185. String titOpera=in.nextLine();
  186. op="SELECT `TITOLO, `DISPONIBILITA` FROM `OPERA` WHERE DISPONIBILITA<3 AND TITOLO= "+titOpera;
  187. rs=st.executeQuery(op);
  188.  
  189. if(rs.next()){
  190. System.out.println("Opera già presente nel db");
  191. } else {
  192. System.out.println("Inserisci il codice identificativo per il prestito");
  193. int codPrestito=in.nextInt();
  194. System.out.println("Inserisci la data del prestito (YYYY-MM-GG)");
  195. String dataPrestito=in.nextLine();
  196. System.out.println("Definisci la data di scadenza prestito (YYYY-MM-GG)");
  197. String scadenzaPrestito=in.nextLine();
  198. System.out.println("Definisci la data di restituzione dell'opera (YYYY-MM-GG)");
  199. String restituzione=in.nextLine();
  200. System.out.println("Definisci il documento di riconoscimento");
  201. String docIdentita=in.nextLine();
  202. System.out.println("Definisci il nome dell'opera");
  203. String isbn=in.nextLine();
  204. }
  205.  
  206. break;
  207. }
  208.  
  209. case 5:{
  210. Scanner in = new Scanner (System.in);
  211. System.out.println("Definisci il nome dell'autore");
  212. String nomeAutore=in.nextLine();
  213. op="SELECT `NOME` FROM `AUTORE` WHERE NOME = "+nomeAutore;
  214. rs=st.executeQuery(op);
  215.  
  216. if(rs.next()){
  217. System.out.println("Autore già presente");
  218. } else {
  219. System.out.println("Definisci il cognome dell'autore");
  220. String cognomeAutore=in.nextLine();
  221. System.out.println("Operazione eseguita con successo.");
  222. }
  223.  
  224. break;
  225. }
  226.  
  227. case 6:{
  228. Scanner in = new Scanner (System.in);
  229. System.out.println("Inserisci il codice della casa editrice");
  230. String codCasaEd=in.nextLine();
  231. op="SELECT `NOME` FROM `CASAEDITRICE` WHERE NOME =" +codCasaEd;
  232. rs=st.executeQuery(op);
  233.  
  234. if(rs.next()){
  235. System.out.println("Già presente.");
  236. } else {
  237. System.out.println("Inserisci il nome della casa editrice");
  238. String nomeCasaEd=in.nextLine();
  239. System.out.println("Operazione effettuata.");
  240. }
  241.  
  242. break;
  243. }
  244.  
  245. case 7:{
  246. Scanner in = new Scanner (System.in);
  247. String op2="multimediale", op1="cartaceo";
  248. System.out.println("Inserisci il titolo dell'opera");
  249. String titolo=in.nextLine();
  250. op="SELECT `TITOLO` FROM `OPERA` WHERE TITOLO = "+titolo;
  251. rs=st.executeQuery(op);
  252.  
  253. if(rs.next()){
  254. System.out.println("Opera già esistente.");
  255. } else {
  256. System.out.println("Inserisci l'isbn dell'opera");
  257. String isbn=in.nextLine();
  258. System.out.println("Inserisci la collocazione dell'opera [Area-Scaffale-Piano|FF]");
  259. String collocazione=in.nextLine();
  260. System.out.println("Inserisci la categoria");
  261. String categoria=in.nextLine();
  262. System.out.println("Inserisci la disponibilità dell'opera [true se disponibile, false non disponibile]");
  263. boolean disponibilita=in.nextBoolean();
  264. System.out.println("Definisci il tipo dell'opera [MULTIMEDIALE o CARTACEO]");
  265. String tipoOpera=in.nextLine();
  266.  
  267. if(tipoOpera.equalsIgnoreCase(op2)){
  268. System.out.println("Inserisci la durata [espressa in minuti]");
  269. int durata=in.nextInt();
  270. System.out.println("Definisci la lingua dell'opera");
  271. String linguaOpera=in.nextLine();
  272. System.out.println("Opera inserita con successo.");
  273. } else if(tipoOpera.equalsIgnoreCase(op1)){
  274. System.out.println("Inserisci il numero di pagine");
  275. int numPagine=in.nextInt();
  276. System.out.println("Inserisci il numero di volumi");
  277. int numVolume=in.nextInt();
  278. System.out.println("Operazione completata.");
  279. } else { System.out.println("Tipo di dato errato."); }
  280. }
  281. break;
  282. }
  283.  
  284. case 8:{
  285. Scanner in = new Scanner (System.in);
  286. int risp;
  287.  
  288. System.out.println( "-----------------------------------------------------------------------------" );
  289. System.out.println( " Menu delle operazioni modifica Utente" );
  290. System.out.println( "-----------------------------------------------------------------------------" );
  291. System.out.println( "1 - Cambio Password" );
  292. System.out.println( "2 - Cambio Username");
  293. System.out.println( "3 - Modifica dipartimento [solo per docenti]" );
  294. System.out.println( "4 - Modifica irregolarità" );
  295. System.out.println();
  296. System.out.println( "-----------------------------------------------------------------------------" );
  297. System.out.println();
  298.  
  299. switch(risp){
  300. case 1:{
  301. System.out.println("Inserisci la password");
  302. String vecchiaPass=in.nextLine();
  303. String op1="SELECT `PASSWORD` FROM `UTENTE` WHERE PASSWORD =" +vecchiaPass;
  304. if(rs.next()){
  305. System.out.println("Inserisci la nuova password:");
  306. String nuovaPass = in.nextLine();
  307. op="UPDATE UTENTE SET PASSWORD ="+"\'"+nuovaPass+"\'"+"WHERE PASSWORD="+"\'"+vecchiaPass+"\'";
  308. rs=st.executeQuery(op);
  309. } else
  310. System.out.println("Password errata o non esistente.");
  311. break;
  312. }
  313.  
  314. case 2:{
  315. System.out.println("Inserisci l'username");
  316. String userName=in.nextLine();
  317. op="SELECT USERNAME FROM UTENTE WHERE USERNAME="+userName;
  318. if(rs.next()){
  319. System.out.println("Inserisci il nuovo username");
  320. String nuovoUser;
  321. String op1="UPDATE UTENTE SET USERNAME ="+"\'"+nuovoUser+"\'"+"WHERE USERNAME="+"\'"+userName+"\'";
  322. rv=st.executeUpdate(op1);
  323. } else
  324. System.out.println("Username non trovato");
  325. }
  326.  
  327. case 3:{
  328. System.out.println("Inserisci il vecchio dipartimento");
  329. int mat=in.nextInt();
  330. op="SELECT DIPARTIMENTO FROM UTENTE WHERE DIPARTIMENTO="+mat;
  331. rs=st.executeQuery(op);
  332. if(rs.next()){
  333. System.out.println("Inserisci il dipartimento");
  334. String nuovoDip= input.nextLine();
  335. String op1="UPDATE UTENTE SET DIPARTIMENTO ="+"\'"+nuovoDip+"\'"+"WHERE DIPARTIMENTO="+"\'"+mat+"\'";
  336. rv=st.executeUpdate(op1);
  337. System.out.println("Operazione completata");
  338. } else
  339. System.out.println("La matricola corrisponde a quella di uno studente.");
  340. break;
  341. }
  342.  
  343. case 4:{ //Raimondo
  344. System.out.println("Vuoi aggiungere o azzerare il numero di irregolarità?");
  345. String ris = in.nextLine(), k="aggiungi", j="azzerare",op1;
  346. int el=-1, ag=+1;
  347. if(ris.equalsIgnoreCase(k)){
  348. op1="SELECT NUMIRREGOLARITA FROM UTENTE WHERE NUMIRREGOLARITA=0 AND NUMIRREGOLARITA <11)";
  349. rs=st.executeQuery(op1);
  350. if(rs.next()){
  351. op1="UPDATE UTENTE SET NUMIRREGOLARITA ="+"\'"+el+"\'"+"WHERE NUMIRREGOLARITA="+"\'"+"\'";
  352. rv=st.executeUpdate(op1);
  353. System.out.println("Aggiornamento completato.");
  354. }
  355. else
  356. System.out.println("Non sei abilitato per richiedere prestiti.");
  357. }
  358.  
  359. if(ris.equalsIgnoreCase(j)){
  360. op1="SELECT NUMIRREGOLARITA FROM UTENTE WHERE NUMIRREGOLARITA=0 AND NUMIRREGOLARITA <11";
  361. rs=st.executeQuery(op1);
  362. if(rs.next()){
  363. op1="UPDATE UTENTE SET NUMIRREGOLARITA="+"\'"+0+"\'"+"WHERE NUMIRREGOLARITA="+"\'"+"\'";
  364. rv=st.executeUpdate(op1);
  365. System.out.println("Operazione completata.");
  366. }
  367. }
  368. break;
  369. }
  370.  
  371. case 9:{
  372. rs = st.executeQuery("SELECT CARTAIDENTITA FROM UTENTE ");
  373.  
  374. while( rs.next() ){
  375. System.out.println(rs.getString(1)); //Ricordati di allineare tabella
  376. }
  377.  
  378. System.out.println( "Inserire il documento di identità per cancellare il cliente:" );
  379. String cancUtente = in.nextLine();
  380. op = "DELETE FROM UTENTE WHERE (CARTAIDENTITA="+"\'"+cancUtente+"\')";
  381. rv = st.executeUpdate(op);
  382. break;
  383. }
  384.  
  385. case 10:{
  386. System.out.println( "Inserire il codice critico che vuoi cancellare" );
  387. String nCritico=in.nextLine();
  388. op=("SELECT CODCRITICO FROM OPERA WHERE CODCRITICO="+nCritico);
  389. rs = st.executeQuery(op);
  390. if( rs.next() ){
  391. System.out.println(rs.getString(1)); //Ricordati di allineare tabella
  392. String op1 = "DELETE FROM OPERA CODCRITICO WHERE CODCRITICO ="+"\'"+nCritico+"\')";
  393. rv = st.executeUpdate( op1 );
  394. } else
  395. System.out.println("Il codice critico inserito è inesistente.");
  396. break;
  397. }
  398.  
  399. case 11:{
  400. System.out.println("Inserisci l'id recensione");
  401. String idRecensione=in.nextLine();
  402. String op1="SELECT IDRECENSIONE FROM RECENSIONE WHERE IDRECENSIONE= "+idRecensione;
  403. if( rs.next() ){
  404. op="DELETE * FROM RECENSIONE";
  405. rv=st.executeUpdate(op);
  406. if(rv>0)
  407. System.out.println("Operazione completata.");
  408. else
  409. System.out.println( "Impossibile cancellare." );
  410. break;
  411. } else System.out.println("Non esiste il codice immesso.");
  412. }
  413.  
  414. case 12:{
  415. System.out.println("Inserisci il codice autore da eliminare");
  416. String codAut=in.nextLine();
  417. op="SELECT CODAUTORE FROM AUTORE WHERE CODAUTORE=" +codAut;
  418. rs=st.executeQuery(op);
  419. if( rs.next() ){
  420. String op1= "DELETE * FROM AUTORE";
  421. rv=st.executeUpdate(op1);
  422. System.out.println("Operazione completata");
  423. } else
  424. System.out.println("Il codice autore non esiste.");
  425. break;
  426. }
  427.  
  428. case 13:{
  429. System.out.println("Inserisci il codice della casa editrice da cancellare");
  430. String codCE=in.nextLine();
  431. op="SELECT CODCASAEDITRICE FROM CASAEDITRICE WHERE CODCASAEDITRICE=" +codCE;
  432. rs=st.executeQuery(op);
  433. if( rs.next() ){
  434. String op1= "DELETE FROM CASAEDITRICE WHERE CODCASAEDITRICE=" +codCE;
  435. rv=st.executeUpdate(op1);
  436.  
  437. if(rv>0)
  438. System.out.println("Operazione completata");
  439. else
  440. System.out.println("Il codice per la casa editrice non esiste.");
  441. break;
  442. }
  443. }
  444.  
  445. case 14:{
  446. System.out.println("Inserisci l'ISBN dell'opera da eliminare");
  447. String codOp=in.nextLine();
  448. op="SELECT ISBN FROM OPERA WHERE ISBN=" +codOp;
  449. rs=st.executeQuery(op);
  450. if(rs.next()){
  451. String op1= "DELETE FROM OPERA WHERE ISBN=" +codOp;
  452. rv=st.executeUpdate(op1);
  453.  
  454. if(rv>0)
  455. System.out.println("Operazione completata");
  456. else
  457. System.out.println("Il codice isbn non esiste.");
  458. }
  459.  
  460. break;
  461. }
  462.  
  463. case 15:{
  464. rs=st.executeQuery("SELECT DISTINCT Nome.UTENTE, Cognome.UTENTE, Matricola, Count(*) AS NumPrestiti FROM UTENTE, GROUP BY NumPrestiti");
  465.  
  466. while(rs.next()){
  467. System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getString(4)+"\n");
  468. }
  469. }
  470.  
  471. case 16:{
  472. System.out.println("Inserisci la data prestito [YYYY-MM-GG]");
  473. String data=in.nextLine();
  474. rs=st.executeQuery("SELECT Count() AS NumPrestiti FROM UTENTE WHERE DATAPRESTITO= "+data);
  475.  
  476. while(rs.next()){
  477. System.out.println(rs.getString(1));
  478. }
  479. }
  480.  
  481. case 17:{
  482. rs=st.executeQuery("SELECT COUNT(*) AS NumRecensioni, idRecensione FROM RECENSIONI");
  483.  
  484. while(rs.next()){
  485. System.out.println(rs.getString(1)+"\t"+rs.getString(2));
  486. }
  487. }
  488.  
  489. case 18:{
  490. rs=st.executeQuery("SELECT NOME.AUTORE, COGNOME.AUTORE FROM AUTORE");
  491. while(rs.next()){
  492. System.out.println(rs.getString(1)+"\t"+rs.getString(2));
  493. }
  494. }
  495.  
  496. case 19:{
  497. rs=st.executeQuery("SELECT CODCASAEDITRICE, NOME.CASAEDITRICE FROM CASAEDITRICE");
  498. while(rs.next()){
  499. System.out.println(rs.getString(1)+"\t"+rs.getString(2));
  500. }
  501. }
  502.  
  503. case 20:{
  504. System.out.println("Inserisci il nome dell'opera da ricercare");
  505. String opRic;
  506. rs=st.executeQuery("SELECT TITOLO, DISPONIBILITA FROM OPERA WHERE TITOLO ="+opRic);
  507. while(rs.next()){
  508. System.out.println(rs.getString(1)+"\t"+rs.getString(2));
  509. }
  510. }
  511.  
  512. case 21:{
  513. rs=st.executeQuery("SELECT DATAPREST FROM PRESTITO WHERE DATAPREST IS NOT NULL");
  514. while(rs.next()){
  515. System.out.println(rs.getString(1));
  516. }
  517. }
  518. } catch( Exception e ){
  519. System.out.println( e );
  520. System.out.printf( "\nPremere invio per continuare..." );
  521. String temp = input.nextLine();
  522. }
  523. }
Add Comment
Please, Sign In to add comment