Dariusz Bujak

Dariusz Bujak Student, młodszy
programista JAVA,
C++

Temat: SQLite i JAVA

Witam zaczynam swoje kroki w bazie SQLite i mam takie pytanko jeżeli utworze sobie taką tabele

CREATE TABLE user (id INTEGER PRIMARY KEY, name TEXT, last_name TEXT)


i teraz dodaje nowy rekord to jak poprac jego id

używam


PreparedStatement stmt = connect.prepareStatement(sql);


serdecznie prosze o pomoc
Bartłomiej Jończy

Bartłomiej Jończy iOS / Java EE
Developer

Temat: SQLite i JAVA

SELECT last_insert_rowid() nie działa?

P.S.: tam powinno być autoincrement jeszcze w create.Bartłomiej Jończy edytował(a) ten post dnia 18.04.12 o godzinie 11:05
Dariusz Bujak

Dariusz Bujak Student, młodszy
programista JAVA,
C++

Temat: SQLite i JAVA

Własnie napotkałem problem z wyswietlaniem zawartosci z tabeli stworzyłem sobie tabele user za pomoca programu SQLite Database Browser i dodałem rekord do bazy user łącze sie do bazy tak :

public ConnectSQLITE() throws SQLException
{
driverName = "org.sqlite.JDBC";
url = "jdbc:sqlite:test1";
this.__Connect();
}
private void __Connect() throws SQLException{
try
{
Class.forName(driverName).newInstance();
}
catch (Exception e)
{
System.out.println("Failed to load mSQL driver.");
return;
}
try
{
this.connection = DriverManager.getConnection(this.url);
this.st = this.connection.createStatement();
System.out.print("<<== Polaczyles sie z baza danych SQL v. 1.0 ==>>\n");
}
catch (Exception e)
{
System.out.println("Brak polaczenia.");
e.printStackTrace();
}
}

i wyswietla mi sie że sie połączyłem nie ma żadnego problemu nastepnie robie


System.out.println("con: " + conn);
ResultSet rs = conn.getStatement().executeQuery("SELECT id, name, last_name FROM user");
while(rs.next())
{
System.out.println("id: " + rs.getInt("id") + ", name: " + rs.getString("name") + ", last_name: " + rs.getString("last_name"));
}


i wyswietla mi sie komunikat

java.sql.SQLException: no such table: user
at org.sqlite.DB.throwex(DB.java:288)
at org.sqlite.NativeDB.prepare(Native Method)
at org.sqlite.DB.prepare(DB.java:114)
at org.sqlite.Stmt.executeQuery(Stmt.java:89)
at pl.dejw.Main.users(Main.java:186)
at pl.dejw.Main.access$2(Main.java:182)
at pl.dejw.Main$3.actionPerformed(Main.java:104)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)



czemu nie może zlaneść tabeli user?
Bartłomiej Jończy

Bartłomiej Jończy iOS / Java EE
Developer

Temat: SQLite i JAVA

Według mnie, masz skopane coś ze ścieżką do pliku (katalog, rozszerzenie?). Jak nie znajduje bazy, to ją tworzy, więc połączenie jest ok, ale w bazie nie ma tabeli.
Dariusz Bujak

Dariusz Bujak Student, młodszy
programista JAVA,
C++

Temat: SQLite i JAVA

Witam no tak faktycznie miałeś racje tworzył mi baze w katalogu głównym i teraz działa ok, ale jak by to zrobić żeby tworzył mi w lokalizacji jdbc\sqlite ?
Bartłomiej Jończy

Bartłomiej Jończy iOS / Java EE
Developer

Temat: SQLite i JAVA

url = "jdbc:sqlite:jdbc/sqlitetest1";

powinno wystarczyć, chociaż nigdy nie nazywałem katalogu "jdbc" :)
Kamil Toszek

Kamil Toszek IT Consultant

Temat: SQLite i JAVA

A odpowiadajac na pytanie o pobranie id dodanego rekordu:

PreparedStatement stmt = connect.prepareStatement(sql);
...
...
resultSet = stmt.getGeneratedKeys();

if ( resultSet != null && resultSet.next() )
{
newid = resultSet.getInt(1);
}
Dariusz Bujak

Dariusz Bujak Student, młodszy
programista JAVA,
C++

Temat: SQLite i JAVA

Ok dziekuje Wam bardzo serdecznie wszystko śmiga jak żyleta:)

Pozdrawiam serdecznie.

Następna dyskusja:

Programista JAVA pilnie pos...




Wyślij zaproszenie do