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

question-closed Wyrzucenie wyjątku, dlaczego?? JDBC

Object Storage Arubacloud
0 głosów
179 wizyt
pytanie zadane 6 czerwca 2018 w SQL, bazy danych przez Adrian Paź Obywatel (1,270 p.)
zamknięte 6 czerwca 2018 przez Adrian Paź

Witam! Jak w temacie:

public void wypozyczKsiazke(int idczytelnika, int idksiazki)
	{
		int liczbaWypozyczonychKsiazek = 0;
		try
		{
			String query = "SELECT id_czytelnika FROM wypozyczenia WHERE id_czytelnika = ?";
			PreparedStatement ID = connection.prepareStatement(query);
			ID.setInt(1, idczytelnika);
			ID.execute();
			ID.close();
			ResultSet resultSet = ID.executeQuery(query);
			while (resultSet.next())
			{
				liczbaWypozyczonychKsiazek++;
			}
			resultSet.close();
			if (liczbaWypozyczonychKsiazek == 3)
			{
				System.out.println("Na to konto wypożyczono już maksymalną liczbę książek !\n");
			} else
			{
				dodajWypozyczenia(idczytelnika, idksiazki);
				PreparedStatement preparedStatement = connection
						.prepareStatement("UPDATE ksiazki set czyJest = ? where id_ksiazki = ?");
				preparedStatement.setBoolean(1, false);
				preparedStatement.setInt(2, idksiazki);
				preparedStatement.execute();
				preparedStatement.close();
				System.out.println("\nMiłego czytania !\n");
			}

		} catch (SQLException e)
		{
			System.err.println("Wystąpił problem z operacją wypożyczenia !\n");
			System.err.println(e);
		}

	}

"Wystąpił problem z operacją wypożyczenia !

java.sql.SQLException: not implemented by SQLite JDBC driver"

dodam, że wcześniej wszystko działało teraz dodałem ten warunek na ilość książek i się coś spieprzyło :/

komentarz zamknięcia: brak zainteresowania tematem

2 odpowiedzi

0 głosów
odpowiedź 6 czerwca 2018 przez coloraps Bywalec (2,220 p.)

INSERT UPDATE DELETE
 

preparedStatment.executeUpdate();

Operacje na Bazie dodawanie, edycja, usuwanie tabel ,kolumn, itd stosujemy execute();

 

Pozdrawiam

komentarz 6 czerwca 2018 przez Adrian Paź Obywatel (1,270 p.)
Ale przecież mam tam napisane prepareStatement.execute();

Not implemented by SQLite JDBD Driver? Dziwne bo sterownik mam wstawiony za pomocą forName...
komentarz 6 czerwca 2018 przez coloraps Bywalec (2,220 p.)
Oj. czytaj z zrozumieniem

Robisz update rekordu nie operacji na strukturze a wiec !! .executeUpdate();  !!
komentarz 6 czerwca 2018 przez coloraps Bywalec (2,220 p.)
A co do sterownika to prześlij na forum jak zrobiłeś Connector
komentarz 6 czerwca 2018 przez Adrian Paź Obywatel (1,270 p.)

@coloraps, Aha to nie wiedziałem, czytałem gdzieś (może błędnie), że execute()  to jest taki uniwersalny twór ;D

0 głosów
odpowiedź 6 czerwca 2018 przez Adrian Paź Obywatel (1,270 p.)
public Biblioteka()
	{
		try
		{
			Class.forName(DRIVER);
			connection = DriverManager.getConnection(URL);
			statement = connection.createStatement();

		} catch (ClassNotFoundException e)
		{
			System.err.println("Nie udało się nawiązać połączenia z bazą danych !\n");
		} catch (SQLException e)
		{
			System.err.println("Nie udało się załadowac sterownika JDBC !\n");
		}
		stworzTabele();
	}

Najśmieszniejsze jest że wcześniej działało bez problemu zepsuło się jak zacząłem robić ten warunek 3 książek

komentarz 6 czerwca 2018 przez coloraps Bywalec (2,220 p.)
public static class SQLiteConn
    {
        private static final String DRIVER = "org.sqlite.JDBC";
        private static String DB_URL = "jdbc:sqlite:";
        
        public static Connection conn;
        public static Statement stat;
        
        public static void DBConnectionSQLITE(String path_to_db)
        {
            try
            {
                Class.forName(DRIVER);
            }catch(ClassNotFoundException e)
            {
                func_messagebox.show("ERROR", "Brak sterownika JDBC dla SQLITE\n"+e.getMessage());
            }
            try
            {
                conn = DriverManager.getConnection(DB_URL+path_to_db);
                stat = conn.createStatement();
            }catch(SQLException e){
                func_messagebox.show("ERRROR", "Problem z otwarciem połączenia do pliku :"+path_to_db);
             }
            
        }
    }

sterownik https://bitbucket.org/xerial/sqlite-jdbc/downloads/sqlite-jdbc-3.23.1.jar

komentarz 6 czerwca 2018 przez Adrian Paź Obywatel (1,270 p.)
No fakt popieprzyły mi się souty ale w sumie mam to samo co ty więc dalej nie wiem skąd ten błąd przecież wszystko działało.. A wersje mam właśnie 3.23.1 teraz sprawdziłem..

P.s co to jest func_messagebox.show??
komentarz 6 czerwca 2018 przez coloraps Bywalec (2,220 p.)
A to autorka funkcja do wyświetlenia błędów  JFrame ;)
komentarz 6 czerwca 2018 przez coloraps Bywalec (2,220 p.)
Wykonaj zapytanie w SQLEditorze
UPDATE ksiazki set czyJest = ? where id_ksiazki = ?"

Czy zmienna kolumna "czyJest" istnieje .

https://sqliteadmin.orbmu2k.de/
komentarz 6 czerwca 2018 przez Adrian Paź Obywatel (1,270 p.)
już dostałem odpowiedź od jednej osoby problem bylo:

ResultSet resultSet = ID.executeQuery(query);

a powinno być

ResultSet resultSet = ID.executeQuery();

Dziękuję bardzo za pomoc ;)

btw często się udzielasz na forum gratki dla twoich skilli :D

Podobne pytania

0 głosów
1 odpowiedź 362 wizyt
pytanie zadane 6 czerwca 2018 w SQL, bazy danych przez Adrian Paź Obywatel (1,270 p.)
0 głosów
1 odpowiedź 90 wizyt
pytanie zadane 6 czerwca 2018 w SQL, bazy danych przez Adrian Paź Obywatel (1,270 p.)
0 głosów
2 odpowiedzi 225 wizyt
pytanie zadane 4 czerwca 2018 w SQL, bazy danych przez Adrian Paź Obywatel (1,270 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...