J G

J G Programista Php,
Supremum SEO Sp. z
o.o.

Temat: cześć mam pytanie :)

Tu jest fragment kodu

private String PobierzPierszyLink(Connection conn) throws SQLException {
String query = "select min(id) as firstid from Linki";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
int id = -1;
if (rs.next()) {
id = rs.getInt("firstid");
} else {
return null;
}

query = "select Count(Link) from odwiedzone";
stmt = conn.createStatement();
rs = stmt.executeQuery(query);

int i=0;
int x = Integer.parseInt(query);
System.out.println(x);
for (i=0;i<x;i++)

chodzi mi o to , że wyskakuje mi błąd
Wystapil wyjatekjava.lang.NumberFormatException: For input string: "select Count(Link) from odwiedzone"

wiecie może jak się z tym uporać :)
Marcin K.

Marcin K. Java Developer

Temat: cześć mam pytanie :)

Po pierwsze formatuj kod
Po drugie
...
query = "select Count(Link) from odwiedzone";
...
int x = Integer.parseInt(query);
...

jest dość jasne, dlaczego ten wyjątek występuje. a jak się z nim uporać? Hm... chyba raczej parsować coś co przynajmniej trochę przypomina liczbę
J G

J G Programista Php,
Supremum SEO Sp. z
o.o.

Temat: cześć mam pytanie :)

<code>
private void dodajLink(Connection conn, String url) throws SQLException {
String query = "select max(id) as lastid from Linki";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);


query = "select Count(Id) from odwiedzone";
stmt = conn.createStatement();
rs = stmt.executeQuery(query);



int id = 0;
if (rs.next()) {
id = rs.getInt("lastid");
}
++id;
int koniec = (url.length() < 500) ? url.length() : 500;

query = "Insert into linki values(" + id + ",'"
+ url.substring(0, koniec) + "')";

stmt = conn.createStatement();
stmt.executeUpdate(query);

}

</code>
to jak chcesz inaczej sprawdzić tutaj czy link już jest w tabeli odwiedzone ja miałem pomysł żeby wyciągnąć counta z tabeli odwiedzone zrobić pętle for żeby sprawdzała czy link już występuje w tej tabeli , jak występuje to nie dodawać a jak nie to dodaćJan Głogowski edytował(a) ten post dnia 20.11.12 o godzinie 00:38

konto usunięte

Temat: cześć mam pytanie :)

Nie chciało mi się czytać tego kodu, ale
to jak chcesz inaczej sprawdzić tutaj czy link już jest w tabeli odwiedzone

polecam zapoznać się z IF EXISTS

konto usunięte

Temat: cześć mam pytanie :)

Po pierwsze. Sprawdź jak zadawać pytania. Taki tytuł jest kompletnie bez sensu.
Po drugie. Jak podajesz kawałek kodu - warto dać znaczniki
 
, no ale wspomnienie jaki to język programowania - też jest dobrym pomysłem.
Po trzecie. Doczytaj co robi count i ogólnie o tym co można robić zapytaniami sql.
Po czwarte. Podaj nazwę silnika. Sądząc po poziomie pytania - MySQL + MyISAM, ale tak być nie musi. Chodzi o to, żeby przykłady były dla tej bazy - o ile to możliwe.
Jan Głogowski:
[...]
query = "select Count(Id) from odwiedzone";
[...]
To zapytanie policzy ile jest wierszy w tabeli odwiedzone - no, przynajmniej ja takiego wyniku bym oczekiwał. Ja bym użył WHERE - http://www.postgresql.org/docs/9.2/static/queries-tabl... - są przykłady.
J G

J G Programista Php,
Supremum SEO Sp. z
o.o.

Temat: cześć mam pytanie :)

Zmieniłem kod na taki


private void dodajLink(Connection conn, String url) throws SQLException {
String query = "select max(id) as lastid from Linki";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);






int id = 0;
if (rs.next()) {
id = rs.getInt("lastid");
}
++id;





int koniec = (url.length() < 500) ? url.length() : 500;


int i=0;
if ( i>0 ) // <---- Tutaj!!!
{
query = "Insert into linki values(" + id + ",'"
+ url.substring(0, koniec) + "')";

stmt = conn.createStatement();
stmt.executeUpdate(query);
query = "Insert into odwiedzone values(" + id + ",'"
+ url.substring(0, koniec) + "')";

stmt = conn.createStatement();
stmt.executeUpdate(query);
}
else
{
System.out.print("Link już istnieje");
}

}


wiem do czego służy count bo jak by to było php to można by było zrobić to foreach , po drugie piszę ci że baza danych to H2 a na początku kodu każdy pozna że to Java

konto usunięte

Temat: cześć mam pytanie :)

A ja myslalem ze C#

Temat: cześć mam pytanie :)

A gdzie w kodzie masz sprawdzenie, że link (adres url przekazywany jako argument funkcji) istnieje już w tabeli Linki?
Sądząc po kodzie System.out.print("Link już istnieje"); to taki był zamiar.

Przy takim zapisie:
int i=0;
if ( i>0 )
{//...}


to pierwsza część instrukcji if chyba się nie wykona.Małgorzata B. edytował(a) ten post dnia 20.11.12 o godzinie 23:00

konto usunięte

Temat: cześć mam pytanie :)

Przemysław R.:
A ja myslalem ze C#

Czyli nie jesteś „każdy”, bo przecież „każdy” pozna.

konto usunięte

Temat: cześć mam pytanie :)

Szymon G.:
Przemysław R.:
A ja myslalem ze C#

Czyli nie jesteś „każdy”, bo przecież „każdy” pozna.

dziękujmy tylko autorowi że nie był to jakiś COBOL albo LOGO :)
Tomasz Niewolik

Tomasz Niewolik
Programista/Projekta
nt

Temat: cześć mam pytanie :)

Nie bądźcie aż tacy złośliwi. Zresztą po błędzie z 1 postu od razu widać, że to jest java - java.lang.NumberFormatException.
Marcin Miga

Marcin Miga Programista. Po
prostu programista.

Temat: cześć mam pytanie :)

E, tam po throws po nagłówku widać...
C# (chyba) tego nie ma. Nie miał tego jak w nim pisałem :)

A co do LOGO, to M$ w SmallBasicu dodał grafikę żółwia...
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: cześć mam pytanie :)

Przemysław R.:
Szymon G.:
Przemysław R.:
dziękujmy tylko autorowi że nie był to jakiś COBOL albo LOGO :)
Ja bardzo proszę nie szydzić z LOGA. Zacny program. <PENDOWN>
J G

J G Programista Php,
Supremum SEO Sp. z
o.o.

Temat: cześć mam pytanie :)

Już dawno to zrobiłem a wy dalej dyskutujecie



private void dodajLink(Connection conn, String url) throws SQLException {
String query = "select max(id) as lastid from Linki";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);






int id = 0;
if (rs.next()) {
id = rs.getInt("lastid");
}
++id;





int koniec = (url.length() < 500) ? url.length() : 500;
query = "select link from odwiedzone where link = ?";
PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1, url);
rs.last();
int count = rs.getRow();

if (count!=0)
{
query = "Insert into linki values(" + id + ",'"
+ url.substring(0, koniec) + "')";

stmt = conn.createStatement();
stmt.executeUpdate(query);

query = "Insert into odwiedzone values(" + id + ",'"
+ url.substring(0, koniec) + "')";

stmt = conn.createStatement();
stmt.executeUpdate(query);
}

else {

System.out.print("taki link juz istnieje");
}




}
J G

J G Programista Php,
Supremum SEO Sp. z
o.o.

Temat: cześć mam pytanie :)

Dlatego pisało tam tutaj bo nie wiedziałem co tam wpisać
Marcin Miga

Marcin Miga Programista. Po
prostu programista.

Temat: cześć mam pytanie :)

Jan Głogowski:
Dlatego pisało tam tutaj bo nie wiedziałem co tam wpisać

PE-REŁ-KA !!



Wyślij zaproszenie do