Wypożyczalnia Aut - baza danych SQlite

0

Cześć, mam problem więc tak:
Chce aby wywalało mi tylko jedną kolumne jak widać "Cene".

public static ArrayList<Samochod> selectSamochod_CenaColumn()
	{
		ArrayList<Samochod> l = new ArrayList<Samochod>();
		String select = "SELECT Cena FROM Samochod";
		try {
			ResultSet rs = stat.executeQuery(select);
			
			while (rs.next()) //dopoki jest nastepny wiersz
			{
				int cena = rs.getInt("cena");
				
				
			}
			return l;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}

Lecz mam problem ponieważ w klasie samochod mam konstruktor. W poprzedniej metodzie zwykłego selecta wygląda to tak

public static ArrayList<Samochod> selectSamochod()
	{
		ArrayList<Samochod> l = new ArrayList<Samochod>();
		String select = "SELECT * FROM Samochod";
		try {
			ResultSet rs = stat.executeQuery(select);
			
			while (rs.next()) //dopoki jest nastepny wiersz
			{
				
				int id = rs.getInt("id");
				String marka = rs.getString("marka");
				int cena = rs.getInt("cena");
				double pojemnosc = rs.getDouble("pojemnosc");
				int konie = rs.getInt("konie");
				String kolor = rs.getString("kolor");
				
				Samochod s = new Samochod(id, marka, cena, pojemnosc, konie, kolor);
				l.add(s);
				
			}
			return l;
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		}
	}
0

Czemu nie zwrócisz po prostu listy intów z cenami? ewentualnie jakiejś mapy: id samochodu i cena?

0

A będzie możliwe potem wstawienie do tabeli?

0

Czego wstawienie do tabeli?

0

Zależy co chcesz zrobić z tymi cenami ?

Możesz pobrać listę wszystkich samochodów i potem się odwoływać poprzez :

samochody[0].Cena

0

Chodzi mi o to że mam buttona "Cena MAX" kiedy go naciskam do JOptionPane wpada własnie ta cena i chciałem to zrobić w sposób następujący pisze w bazie zapytanie i podpinam pod buttona i jeśli naciskam button bierze pod uwagę tylko kolumne Cena, dzieli przez ilość i jest wynik.

0

No to zrób metodę zwracającym double i to wszystko. W czym tutaj jest problem?

0

A z zapytaniem zrobić tego nie można? Bo szczerze powiedziawszy to chyba nie łapie jak to zrobić @szweszwe :p

0

Chce aby z kolumny Cena wybierało mi najwyższą Cene auta, i wrzucało do JOptionPane. Więc jeśli metoda o której wspomniałeś będzie tu idealna po mógł byś to jakoś rozwinąć?

1

Jak metoda selectSamochod zwraca Ci listę samochodów z bazy to sobie zrób metodę która zwróci Ci najwyższą cenę, tylko to już nie będzie zwracało listy samochodów tylko typ double.
Select będzie mniej więcej: SELECT max(cena) FROM samochody.

0

To chyba nie będzie tak, co?

public static ArrayList<Samochod> selectSamochod_CenaColumn()
	{
		ArrayList<Samochod> l = new ArrayList<Samochod>();
		String select = "SELECT Max(Cena) FROM Samochod";
		try {
			ResultSet rs = stat.executeQuery(select);
			
			
				int cena = rs.getInt("cena");	
				JOptionPane.showMessageDialog(null, cena);
				
			return l;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
0
Nesseb napisał(a):

To chyba nie będzie tak, co?

public static ArrayList<Samochod> selectSamochod_CenaColumn()
	{
		ArrayList<Samochod> l = new ArrayList<Samochod>();
		String select = "SELECT Max(Cena) FROM Samochod";
		try {
			ResultSet rs = stat.executeQuery(select);
			
			
				int cena = rs.getInt("cena");	
				JOptionPane.showMessageDialog(null, cena);
				
			return l;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}

Chodziło mi o zrobienie metody która zwraca tylko cenę a nie ustawia ją. Jeżeli chcesz ustawić to nie zwracaj nic, ewentualnie boolean czy się udało pobrać z bazy czy nie.
Zamiast

public static ArrayList<Samochod> 

ma być public static double

 - jeżeli zwracasz cenę albo <code class="java">public static boolean 
jeżeli zwracasz info czy ustawiłeś czy nie.
W pierwszej wersji po przypisaniu ceny do zmiennej cena (która wg mnie powinna być double) zwracasz to tak samo jak teraz nie wiem po co zwracasz listę samochodów (zawsze pustą zresztą).</li> </ul>

0 użytkowników online, w tym zalogowanych: 0, gości: 0