• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Uproszczenie kodu JAVA

Object Storage Arubacloud
–1 głos
144 wizyt
pytanie zadane 9 lutego 2019 w Java przez Pioter_94 Nowicjusz (120 p.)

Witam! Mógłby ktoś dać jakiś pomysł na uproszczenie tego kodu ?

import java.sql.*;
import java.util.Random;
import java.util.Scanner;
import static java.lang.System.exit;

public class Connector {
    PreparedStatement stmt;
    Connection con;
    ResultSet rs;
    String correct,answer;
    int number_questions;
    Scanner sc = new Scanner(System.in);
    Random r = new Random();

    public void Connect() {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            con = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/quiz?useTimezone=true&serverTimezone=UTC", "root", "");
        } catch (Exception e) {
            System.out.println("Eror with connection");
        }
    }

    public void Ask(String q) {
        try {
            number_questions = 3;
            stmt = con.prepareStatement(q);
            stmt.setInt(1,r.nextInt(number_questions)+1);
            rs = stmt.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getString(2));
                System.out.println("a)" +rs.getString(3));
                System.out.println("b)" +rs.getString(4));
                System.out.println("c)" +rs.getString(5));
                System.out.println("d)" +rs.getString(6));
                correct = rs.getString(7);
            }
        }catch(Exception e){
            System.out.println("Error with loading from the database");
        }
    }
    public void Check()
    {
        try{
            answer = sc.nextLine();
            if(answer.equals(correct))
            {
                System.out.println("Correct Answer!You go further!");
                Wait(3000);
            }
            else
            {
                System.out.println("Incorrect answer!Unfortunately, you're out!");
                Wait(3000);
                exit(0);
            }
        }catch (Exception e){System.out.println("Eror wtih checking the answer ");}
    }
    public void Start() {
        System.out.println("Welcome in game for a million dollars!");
        Wait(3000);
        System.out.println("You will hear 10 questions in a moment, choose only one answer for each!");
        Wait(3000);
        Connect();
        Ask("select * from questions_1t where id_question = ?");
        Check();
        Ask("select * from questions_5t where id_question = ?");
        Check();
        Ask("select * from questions_10t where id_question = ?");
        Check();
        Ask("select * from questions_20t where id_question = ?");
        Check();
        Ask("select * from questions_40t where id_question = ?");
        Check();
        Ask("select * from questions_75t where id_question = ?");
        Check();
        Ask("select * from questions_100t where id_question = ?");
        Check();
        Ask("select * from questions_250t where id_question = ?");
        Check();
        Ask("select * from questions_500t where id_question = ?");
        Check();
        Ask("select * from questions_1000t where id_question = ?");
        Check();
    }
    public static void Wait (int mills){
        try {
            Thread.sleep(mills);
        }catch (Exception e){System.out.println(e);}
    }
}

Z góry dziękuję za odpowiedź.

komentarz 10 lutego 2019 przez mbabane Szeryf (79,280 p.)
Na początek wyjaśnij o co chodzi z tym, że potrzeba aż 10 tabel w bazie danych.

1 odpowiedź

0 głosów
odpowiedź 24 lutego 2019 przez Zibi Obywatel (1,220 p.)

Przydałoby się kilka słów wyjaśnienia co kod ma robić wtedy by było łatwiej doradzić.

Na początek proponowałbym podzielenie kodu na klasy tak aby był bardziej czytelny i spełniał zasadę pojedynczej odpowiedzialności (zobacz na jej opis tutaj).

I po co tyle tabel? Nie można tego zrobić w jednej i dodać jakiejś kategorii?

Podobne pytania

0 głosów
1 odpowiedź 161 wizyt
pytanie zadane 2 grudnia 2017 w Java przez Noctuis Nowicjusz (220 p.)
–1 głos
1 odpowiedź 106 wizyt
pytanie zadane 26 września 2020 w C i C++ przez NewEraOfPeace Gaduła (4,790 p.)
0 głosów
1 odpowiedź 114 wizyt
pytanie zadane 29 kwietnia 2020 w C i C++ przez ShockWave Bywalec (2,350 p.)

92,551 zapytań

141,397 odpowiedzi

319,528 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...