Advertisement
Guest User

BD3 Ex1

a guest
Mar 22nd, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.82 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.sql.SQLException;
  5. import java.sql.*;
  6. import oracle.sql.*;
  7. import oracle.jdbc.*;
  8.  
  9. import com.sun.java_cup.internal.runtime.Scanner;
  10.  
  11.  
  12. public class main {
  13.     public static void main(String[] args) throws SQLException {
  14.     try {
  15.         Connection conn = null;
  16.  
  17.         int codigo, ano;
  18.         float preco;
  19.         String fabricante, pais, modelo;
  20.        
  21.         DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  22.         conn = DriverManager.getConnection("jdbc:oracle:thin:@139.82.3.27:1521:ORCL", "BD3_1111077", "BD3_1111077");
  23.         String query;
  24.        
  25.             System.out.println("Digite 0 (zero) para finalizar");
  26.             do {
  27.                 System.out.println("Selecione uma das seguintes opções:");
  28.                 System.out.println("Criar a base - 1");
  29.                 System.out.println("Consultar a lista de automoveis - 2");
  30.                 System.out.println("Consultar um carro por codigo - 3");
  31.                 System.out.println("Criar um carro - 4");
  32.                 System.out.println("Atualizar o preco de um carro - 5");
  33.                 System.out.println("Remover um carro - 6");
  34.                 System.out.println("Executar um comando SQL - 7");
  35.                
  36.                 BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
  37.                 try {
  38.                     int i = Integer.parseInt(buf.readLine());
  39.                     if (i == 0) {
  40.                     conn.close();
  41.                     System.exit(0);
  42.                     } else if (i == 1) {
  43.                         createBase(conn);
  44.                     } else if (i == 2) {
  45.                         showCars(conn, 0);
  46.                     } else if (i == 3) {
  47.                         System.out.println("Informe o codigo do carro desejado:");
  48.                         codigo = Integer.parseInt(buf.readLine());
  49.                         showCars(conn, codigo);
  50.                     } else if (i == 4) {
  51.                     System.out.println("Informe o codigo do novo carro:");
  52.                         codigo = Integer.parseInt(buf.readLine());
  53.  
  54.                         if(codigoExists(conn, codigo)) {
  55.                             System.out.println("O codigo solicitado já está cadastrado!!\n");
  56.                             continue;
  57.                         }
  58.                        
  59.                         System.out.println("Informe o fabricante do novo carro:");
  60.                         fabricante = buf.readLine();
  61.                         System.out.println("Informe o modelo do novo carro:");
  62.                         modelo = buf.readLine();
  63.                         System.out.println("Informe o ano do novo carro:");
  64.                         ano = Integer.parseInt(buf.readLine());
  65.                         System.out.println("Informe o preço do novo carro:");
  66.                         preco = Float.parseFloat(buf.readLine());      
  67.                         System.out.println("Informe o pais do novo carro:");
  68.                         pais = buf.readLine();                        
  69.                        
  70.                         createCar(conn, codigo, fabricante, modelo, ano, preco, pais);                      
  71.                        
  72.                     } else if (i == 5) {
  73.                     System.out.println("Informe o codigo do novo carro:");
  74.                         codigo = Integer.parseInt(buf.readLine());
  75.  
  76.                         if(!codigoExists(conn, codigo)) {
  77.                             System.out.println("O codigo solicitado não está cadastrado!!\n");
  78.                             continue;
  79.                         }
  80.                        
  81.                         System.out.println("Informe o novo preço do carro:");
  82.                         preco = Float.parseFloat(buf.readLine());
  83.                        
  84.                         updatePrice(conn, codigo, preco);
  85.                        
  86.                     } else if (i == 6) {
  87.                     System.out.println("Informe o codigo do novo carro:");
  88.                         codigo = Integer.parseInt(buf.readLine());
  89.                        
  90.                         if(!codigoExists(conn,codigo)) {
  91.                             System.out.println("O codigo solicitado não está cadastrado!!\n");
  92.                             continue;
  93.                         }
  94.  
  95.                         removeCar(conn, codigo);
  96.                     } else if (i == 7) {
  97.                     System.out.println("Informe o comando a ser executado:");
  98.                         String command = buf.readLine();
  99.  
  100.                         execCommand(conn, command);
  101.                     } else {
  102.                     System.out.println("Digite uma opção valida.");
  103.                     }
  104.                 } catch (NumberFormatException e) {
  105.                     System.out.println("Digite uma opção valida.");
  106.                 }
  107.             } while(true);
  108.         } catch (IOException e) {
  109.             System.out.println(e);
  110.         }
  111.     }
  112.    
  113.     private static void createBase(Connection conn) {
  114.     String createQuery = "CREATE TABLE  Automoveis ( " +
  115.             "codigo  NUMBER(5) NOT NULL , " +
  116.             "ano  NUMBER (2)  NOT NULL , " +
  117.             "Fabricante VARCHAR2(20)  NULL , " +
  118.             "Modelo VARCHAR2(20)  NULL , " +
  119.             "Preco_Tabela NUMBER(15,2)  NULL , " +
  120.             "Pais VARCHAR2(20)  NULL , " +
  121.             "Primary Key (codigo) )";
  122.    
  123.     String insertChevrolet = "insert into  automoveis " +
  124.                         "(codigo, fabricante, modelo, ano,  preco_tabela, pais)  " +
  125.                         "values  (1031, 'Chevrolet', 'Chevette', '92', 7200.00,  'EUA' )";
  126.    
  127.     String insertCitroen = "insert into  automoveis (codigo , fabricante, modelo, ano,  preco_tabela, pais)  " +
  128.                 "values  (1041, 'Citroen', 'AX', '95', 25000.00 , 'Franca')";
  129.    
  130.     String insertFord = "insert into  automoveis (codigo, fabricante, modelo, ano,  preco_tabela, pais)  " +
  131.                 "values  (1022, 'Ford', 'Del Rey', '85', 4800.00, 'EUA')";
  132.    
  133.     String insertChevrolet2 = "insert into  automoveis (codigo, fabricante, modelo, ano,  preco_tabela, pais)  " +
  134.             "values  (1050, 'Chevrolet', 'Chevette', '93', 7900.00,  'EUA')";
  135.    
  136.     String update = "update  automoveis  set  preco_tabela = 40000  where  codigo = 1022";
  137.    
  138.     String delete = "delete from  automoveis  where  codigo = 1041";
  139.    
  140.     try {
  141.    
  142.             //Criando a base
  143.             Statement stmt = conn.createStatement();
  144.             //Populando
  145.             stmt.executeUpdate(createQuery);
  146.             stmt.executeUpdate(insertChevrolet);
  147.             stmt.executeUpdate(insertCitroen);
  148.             stmt.executeUpdate(insertFord);
  149.             stmt.executeUpdate(insertChevrolet2);
  150.             //Atualizando
  151.             stmt.executeUpdate(update);
  152.             stmt.executeUpdate(delete);
  153.                
  154.             stmt.close();
  155.             conn.close();
  156.     } catch (SQLException e) {
  157.             System.out.println(e);
  158.     }
  159.     }
  160.  
  161.     private static void showCars(Connection conn, int codigo) {
  162.     String selectCars = "SELECT FABRICANTE, MODELO, ANO, PRECO_TABELA FROM AUTOMOVEIS";
  163.     if(codigo != 0) {
  164.         selectCars += " WHERE CODIGO = " + codigo;
  165.     }
  166.    
  167.     try {
  168.         Statement stmt = conn.createStatement();
  169.         ResultSet rs = stmt.executeQuery(selectCars);
  170.        
  171.         System.out.format("%12s%12s%6s%18s%n", "FABRICANTE", "MODELO", "ANO", "PRECO");
  172.        
  173.         while(rs.next()) {
  174.         System.out.format("%12s%12s%6d%18f%n", rs.getString("FABRICANTE"), rs.getString("MODELO"), rs.getInt("ANO"), rs.getFloat("PRECO_TABELA"));
  175.         }
  176.         System.out.println("");
  177.        
  178.         rs.close();
  179.         stmt.close();
  180.     } catch (SQLException e) {
  181.         System.out.println(e);
  182.     }
  183.     }
  184.  
  185.     private static void createCar(Connection conn, int codigo, String fabricante, String modelo, int ano, float preco, String pais) {
  186.     String createCar = "INSERT INTO AUTOMOVEIS VALUES (" + codigo + ", '" + ano + "', '" + fabricante + "', '" + modelo + "', " + preco + ", '" + pais + "')";
  187.  
  188.     try {
  189.         Statement stmt = conn.createStatement();
  190.         ResultSet rs = stmt.executeQuery(createCar);
  191.  
  192.         rs.close();
  193.         stmt.close();
  194.        
  195.     } catch (SQLException e) {
  196.         System.out.println(e);
  197.     }
  198.     }
  199.  
  200.     private static void updatePrice(Connection conn, int codigo, float preco) {
  201.     String updatePrice = "UPDATE AUTOMOVEIS SET Preco_Tabela = " + preco + " WHERE codigo = " + codigo;
  202.    
  203.     try {
  204.         Statement stmt = conn.createStatement();
  205.         ResultSet rs = stmt.executeQuery(updatePrice);
  206.  
  207.         rs.close();
  208.         stmt.close();
  209.        
  210.     } catch (SQLException e) {
  211.         System.out.println(e);
  212.     }
  213.     }
  214.    
  215.     private static void removeCar(Connection conn, int codigo) {
  216.     String removeCar = "DELETE FROM AUTOMOVEIS WHERE codigo = " + codigo;
  217.    
  218.     try {
  219.         Statement stmt = conn.createStatement();
  220.         ResultSet rs = stmt.executeQuery(removeCar);
  221.  
  222.         rs.close();
  223.         stmt.close();
  224.        
  225.     } catch (SQLException e) {
  226.         System.out.println(e);
  227.     }
  228.     }
  229.    
  230.     private static void execCommand(Connection conn, String command) {
  231.     try {
  232.         Statement stmt = conn.createStatement();
  233.         ResultSet rs = stmt.executeQuery(command);
  234.  
  235.         //TODO Parsear a string de execucao para decidir como (e se) os dados vao ser exibidos
  236.         String[] parts = command.split(" ");
  237.         for(int i = 0; i < parts.length; i++) {
  238.         System.out.println(parts[i]);
  239.         }
  240.        
  241.         rs.close();
  242.         stmt.close();
  243.        
  244.     } catch (SQLException e) {
  245.         System.out.println(e);
  246.     }  
  247.     }
  248.    
  249.     private static boolean codigoExists(Connection conn, int codigo) {
  250.     String codigoExists = "SELECT * FROM AUTOMOVEIS WHERE CODIGO = " + codigo;
  251.  
  252.     try {
  253.         Statement stmt = conn.createStatement();
  254.         ResultSet rs = stmt.executeQuery(codigoExists);
  255.        
  256.         if(rs.next()) {
  257.         rs.close();
  258.         stmt.close();
  259.         return true;
  260.         }
  261.  
  262.         rs.close();
  263.         stmt.close();  
  264.     } catch (SQLException e) {
  265.         System.out.println(e);
  266.     }
  267.     return false;
  268.     }
  269. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement