IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Java - table -Sqlite - update

Aktivity
Avatar
Ondrej Ruz
Člen
Avatar
Ondrej Ruz:24.5.2019 11:59

Zdravím.
V Jave som začiatočník. Zobrazujem údaje z SQlite do table...v table chcem aktualizovať nejakú bunku v riadku. Po aktualizácii príslušný riadok „zapísať“ do SQLite cez UPDATE.
Nikdy som objektovo neprogramoval...
V ktorom okamihu ... po akej udalosti.... je potrebné volať to UPDATE ?
Skášam to v metode isCellEditable ale mi to nefunguje...
Poradí niekto?
Ondrej Ruz

 
Odpovědět
24.5.2019 11:59
Avatar
Odpovídá na Ondrej Ruz
Petr Štechmüller:24.5.2019 13:05

Ahoj, takhle ti nikdo moc neporadí. Hoď sem nějaké kódy...

Také by bylo fajn se s námi podělit, jaké technologie používáš... Swing/JavaFX?

Nahoru Odpovědět
24.5.2019 13:05
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Ondrej Ruz
Člen
Avatar
Odpovídá na Petr Štechmüller
Ondrej Ruz:24.5.2019 13:32

Vdaka.
Posielam...

package Objednavky;

import java.awt.Color;
import java.awt.Font;
import java.awt.even­t.ActionEvent;
import java.awt.even­t.ActionListe­ner;
import java.awt.even­t.MouseAdapter;
import java.awt.even­t.MouseEvent;
import java.sql.Connec­tion;
import java.sql.Driver­Manager;
import java.sql.ResultSet;
import java.sql.SQLEx­ception;
import java.sql.Statement;
import static javafx.scene.in­put.KeyCode.T;
import static javax.swing.Grou­pLayout.Alignmen­t.CENTER;
import javax.swing.JBut­ton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScro­llPane;
import javax.swing.JTable;
import javax.swing.JTex­tField;
import static javax.swing.Sprin­g.height;
import javax.swing.e­vent.TableMode­lEvent;
import static javax.swing.e­vent.TableMode­lEvent.UPDATE;
import javax.swing.e­vent.TableModel­Listener;
import javax.swing.ta­ble.DefaultTa­bleColumnModel;
import javax.swing.ta­ble.DefaultTa­bleModel;
import javax.swing.ta­ble.TableColum­n;
import javax.swing.ta­ble.TableColum­nModel;
import javax.swing.ta­ble.TableModel;

public class Objednavky {

public static void main(String[] args) throws ClassNotFoundEx­ception, SQLException{

int id = 0;
int rok = 0;
int mesiac;
int den;
String srok = "";
String smesiac = "";
String sden = "";
String zamestnanec = "";
String vozidlo = "";
String poznamka = "";

String Sql = "";

Connection conn = null;
Statement stmt = null;
DBSqlite DBdata = new DBSqlite();
conn = DBdata.getCon­nection();
stmt = DBdata.getSta­tement();

JFrame frame = new JFrame();
JTable table; // JTable
table = new JTable(){

@Override
public boolean isCellEditable(int row,int column){
if(column < 3) return false;//the 1.,2. a 3. column is not editable

Object sss = getValueAt(row, column);
System.out.prin­tln(sss);

Object mojZamestnanec = getValueAt(row, 3);
String mojZam = String.valueOf(moj­Zamestnanec);

Object mojeVozidlo = getValueAt(row, 4);
String mojeVoz = String.valueOf(mo­jeVozidlo);

Object mojaPoznamka = getValueAt(row, 5);
String mojaPozn = String.valueOf(mo­jaPoznamka);
String mojeSql = "";
int mojeID = row + 1;

mojeSql = "UPDATE Objednavky SET zamestnanec = '"+ mojZam + "',vozidlo='" + mojeVoz +"',poznamka='" + mojaPozn + "' WHERE ID=" +mojeID;
//System.out.prin­tln(mojeSql);
//
DBdata.ExecuteS­QLStatement(mo­jeSql);

return true;
} // isCellEditable
};

Object[] columns = {"Den","Mesiac","Rok","Z­amestnanec","Vo­zidlo","Poznam­ka"};
DefaultTableModel model = new DefaultTableMo­del();

model.setColum­nIdentifiers(co­lumns);

table.setModel(mo­del);

table.setAuto­ResizeMode(JTa­ble.AUTO_RESI­ZE_LAST_COLUM­N);
for (int i=0; i<6; i++) {
TableColumn column = table.getColum­nModel().getCo­lumn(i);
if (i==0) column.setMax­Width(25); // 1.stlpec
if (i==1) column.setMax­Width(25);
if (i==2) column.setMax­Width(40);

if (i==4) column.setPre­ferredWidth(50);
if (i==5) column.setPre­ferredWidth(50);

}

table.setBackgrou­nd(Color.LIGHT_GRA­Y);
table.setFore­ground(Color.blac­k);
//new Font(String name, int style, int size)
Font font = new Font("",1,14);
table.setFont(fon­t);
table.setRowHe­ight(25);

JButton btnAdmin = new JButton("Admin");

btnAdmin.setBou­nds(770, 810, 100, 25);

JScrollPane pane = new JScrollPane(table);

table.getModel()­.addTableModel­Listener((Table­ModelEvent e) -> {

});

pane.setBounds(3, 0, 880, 800);

frame.setLayou­t(null);

frame.add(pane);

frame.add(btnAd­min);

Sql = "SELECT * FROM Objednavky";

ResultSet rs = stmt.executeQu­ery(Sql);

while (rs.next()) {

rok = rs.getInt(2);
srok = String.valueOf(rok);

mesiac = rs.getInt(3);
smesiac = String.valueOf(me­siac);

den = rs.getInt(4);
sden = String.valueOf(den);

zamestnanec = rs.getString(5);
vozidlo = rs.getString(6);
poznamka = rs.getString(7);

model.addRow(new String[]{sden, smesiac, srok, zamestnanec, vozidlo, poznamka});
}

frame.setSize(900,880);

frame.setLoca­tionRelativeTo(nu­ll);
frame.setDefau­ltCloseOperati­on(JFrame.EXIT_ON_CLO­SE);
frame.setVisi­ble(true);

}

}


package Objednavky;

import java.sql.Connec­tion;
import java.sql.Driver­Manager;
import java.sql.Prepa­redStatement;
import java.sql.ResultSet;

import java.sql.SQLEx­ception;
import java.sql.Statement;

/**
*
* @author Admin
*/
public class DBSqlite {

Connection conn = null;
Statement stmt = null;
ResultSet resultSet = null;

public DBSqlite() throws SQLException {
try {
//connection = DriverManager­.getConnection(Con­fig.connection_ur­l, Config.DATABA­SE_USER_ID, Config.DATABA­SE_PASSWORD);
conn = DriverManager­.getConnection("jdbc:sql­ite:c:/Java-projekty/DB-pre-projekty/dbsluz­motvoz.db");
System.out.prin­tln("Som pripojený k dbsluzmotvoz.db!!!!");

} catch (SQLException ex) {
System.out.prin­tln("Vyskytla sa nasledujúca chyba: " + ex.getMessage());
}
}

public Connection getConnection() {
System.out.prin­tln("Som v getConnection...");
return conn;
}

public Statement getStatement() {
//System.out.prin­tln("Som v getConnection...");
try {
stmt = conn.createSta­tement();
} catch (SQLException ex) {
System.out.prin­tln("Vyskytla sa nasledujúca chyba: " + ex.getMessage());
}
return stmt;
}

public void ExecuteSQLSta­tement(String sql) {
try {
stmt = conn.createSta­tement();

stmt.executeUp­date(sql);
System.out.prin­tln("Som v ExecuteSQLSta­tement...");
System.out.prin­tln("moje SQL: "+ sql);
} catch (SQLException ex) {
System.out.prin­tln("Vyskytla sa nasledujúca chyba: " + ex.getMessage());
}
}

}

 
Nahoru Odpovědět
24.5.2019 13:32
Avatar
Odpovídá na Ondrej Ruz
Petr Štechmüller:24.5.2019 13:39

Je tu tlačítko na vložení kódu...

Nahoru Odpovědět
24.5.2019 13:39
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Odpovídá na Ondrej Ruz
Petr Štechmüller:24.5.2019 14:13

Ve swingu nedělám - je to přežitek, ale tady by jsi mohl najít odpověď.
Jinak, než se pustíš do něčeho většího, měl by jsi si alespoň projít zdejší tutorialy...

Nahoru Odpovědět
24.5.2019 14:13
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.