November Black Friday C/C++ week
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Pouze tento týden sleva až 80 % na e-learning týkající se C/C++

Diskuze: Java - table -Sqlite - update

Aktivity (2)
Avatar
Ondrej Ruz
Člen
Avatar
Ondrej Ruz:24. května 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. května 11:59
Avatar
Petr Štechmüller
Překladatel
Avatar
Odpovídá na Ondrej Ruz
Petr Štechmüller:24. května 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. května 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. května 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. května 13:32
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Petr Štechmüller
Překladatel
Avatar
Odpovídá na Ondrej Ruz
Petr Štechmüller:24. května 13:39

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

Nahoru Odpovědět
24. května 13:39
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Petr Štechmüller
Překladatel
Avatar
Odpovídá na Ondrej Ruz
Petr Štechmüller:24. května 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. května 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.