Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako prikazati prvi slobodan ID iz MYSQL baze u JTextField-u

[es] :: Java :: Kako prikazati prvi slobodan ID iz MYSQL baze u JTextField-u

[ Pregleda: 1503 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bombarule
Sladjan Milovanovic
Bijeljina,BiH

Član broj: 285556
Poruke: 2
*.telrad.net.



Profil

icon Kako prikazati prvi slobodan ID iz MYSQL baze u JTextField-u14.05.2013. u 18:39 - pre 133 meseci
Pozdrav,

Relativno sam nov u Java svijetu, koristim NetBeans IDE i htio bih prikazati u GUI aplikacije, u tekst polju ID Klijenta, prvi slobodan ID iz tabele u kojoj ce podaci o klijentu biti sacuvani. Aplikacija koju pisem je studentski projekat u okviru predmeta na fakultetu.

Upit za dobijanje sledeceg slobodnog ID-a je
Code:
select id+1 from table order by id DESC limit 1
i u konzoli je prikazuje tacno onako kako zelim, ali mi je potrebna pomoc kako se dobijeni broj dalje prikazati u Javi, tj. u JTextField-u.

Inace, kreirao sam SQL klasu sa konekcijama i svim potrebnim SQL upitima za moju aplikaciju i ovo je poslednji koji mi je ostao da zavrsim sa kodom, ostalo je jos samo sminka GUI-a.

Svaka pomoc je dobrodosla. Hvala unaprijed.

 
Odgovor na temu

nemnesic
nemnesic
Software Developer
Vranje Florida

Moderator
Član broj: 44355
Poruke: 802
*.dynamic.sbb.rs.



+64 Profil

icon Re: Kako prikazati prvi slobodan ID iz MYSQL baze u JTextField-u14.05.2013. u 18:42 - pre 133 meseci
Pozdrav,
ovo je relativno lako. Ali da ne bih pisao sve od nule jel mozes da stavis ovaj SQL class file sto si uradio pa cu tu da nastavim?

pozdrav
nn
 
Odgovor na temu

bombarule
Sladjan Milovanovic
Bijeljina,BiH

Član broj: 285556
Poruke: 2
*.telrad.net.



Profil

icon Re: Kako prikazati prvi slobodan ID iz MYSQL baze u JTextField-u14.05.2013. u 21:57 - pre 133 meseci
Evo je klasa SQL koju sam prvobitno napravio prije nekoliko dana, u medjuvremenu je dopunjena sa novim upitima vezanim za druge tabele, te je tako i veca i ne tako bitna u ovom trenutku. Metod za moj "problem" sam poceo pisati odmah ispod metoda za povezivanje na bazu.

Jos jednom, hvala na pomoci.

Code:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package osiguranje;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import java.util.Iterator;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JTable;
/**
 *
 * @author BOMBA-PC
 */
public class SQL {
    
    private String url,  username,  password;
    public Connection con=null;

    public boolean Connect() {
        boolean status = false;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String serverName = "127.0.0.1";//
            String mydatabase = "osiguranje";
            url = "jdbc:mysql://" + serverName + ":3306/" + mydatabase;
            username = "root";//
            password = "0s1gur@nj3";//
            con = DriverManager.getConnection(url, username, password);
            if (!con.isClosed()) {
                System.out.println("Uspesno ste konektovani na bazu podataka!");
                status = true;
            }

        } catch (SQLException ex) {
            Logger.getLogger(SQL.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(SQL.class.getName()).log(Level.SEVERE, null, ex);
        }
        return status;
    }
    //prikazivanje prvog slobodnog id-a
    public void SledeciID(JTextField id) {

       try {
            String query = "SELECT IDKlijent+1 FROM klijenti order by IDKlijenti DESC limit 1";
         
            Statement stmt = con.createStatement();
            int r = stmt.executeUpdate(query);


            
        } catch (SQLException e) {        
        }

    }
    
    //dodavanje u tabelu klijenti
    public void Insert(JTextField i, JTextField p, JTextField a, JTextField t, JTextField jmbg, JTextField dr, JTextField lk) {

        try {
            String query = "INSERT into klijenti (Ime, Prezime, Adresa, Telefon, JMBG, Datum_rodjenja, LK)"
            + " values ('"+i.getText()+"','"+p.getText()+"','"+a.getText()+"','"+t.getText()+"','"+jmbg.getText()+"','"+dr.getText()+"','"+lk.getText()+"')";
            Statement stmt = con.createStatement();
            int r = stmt.executeQuery(query);
            if(r==1){
                System.out.println("Upisano u bazu!");
            }else{
                System.out.println("Javila se greska!!");
            }
        } catch (SQLException e) {        
        }

    }
    public void Insert2(JTextField u, JTextField od, JTextField d) {

        try {
            String query = "INSERT into usluge (Vrsta_usluge, Vazi_od, Vazi_do)"
            + " values ('"+u.getText()+"','"+od.getText()+"','"+d.getText()+"')";
            Statement stmt = con.createStatement();
            int r = stmt.executeUpdate(query);
            if(r==1){
                System.out.println("Upisano u bazu!");
            }else{
                System.out.println("Javila se greska!!");
            }
        } catch (SQLException e) {        
        }

    }
    //dodavanje u tabelu adresar
    public void InsertAdresar(JTextField im, JTextField pr, JTextField ad, JTextField t1, JTextField t2, JTextField m, JTextField o) {

        try {
            String query = "INSERT into adresar (Ime, Prezime, Adresa, Telefon, Telefon2, Mail, Opis)"
            + " values ('"+im.getText()+"','"+pr.getText()+"','"+ad.getText()+"','"+t1.getText()+"','"+t2.getText()+"','"+m.getText()+"','"+o.getText()+"')";
            Statement stmt = con.createStatement();
            int r = stmt.executeUpdate(query);
            if(r==1){
                System.out.println("Upisano u bazu!");
            }else{
                System.out.println("Javila se greska!!");
            }
        } catch (SQLException e) {        
        }

    }
    //brisanje iz tebele adresar
    public void DeleteAdresar(JTextField id) {

        try {
            String query = "Delete from adresar WHERE IDAdresar = '"+Integer.parseInt(id.getText()) +"'";
            Statement stmt = con.createStatement();
            int r = stmt.executeUpdate(query);
            if(r==1){
                System.out.println("Obrisano iz baze!!!");
            }else{
                System.out.println("Javila se greska!!!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }
    //prikazivanje podataka iz tebele klijenti
    public void Selecttabela(JTable jtb) {
        List <String []>ls= new ArrayList<String []>();
        
        try {
            String query = "SELECT * FROM klijenti";
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(query);
            String temp[]; 
            String nazivkolona[]={"ID","Ime","Prezime","Adresa","Telefon","JMBG","Datum rođenja","LK"};
            while (rs.next()) {
                
                temp = new String[8];
                temp[0] = rs.getInt("IDKlijenti")+"";
                temp[1] = rs.getString("Ime");
                temp[2] = rs.getString("Prezime");
                temp[3] = rs.getString("Adresa");
                temp[4] = rs.getString("Telefon");
                temp[5] = rs.getString("JMBG");
                temp[6] = rs.getString("Datum_rodjenja");
                temp[7] = rs.getString("LK");
                
                ls.add(temp);                                                      
            }
        } catch (SQLException e) {           
        }
         
         String nazivkolona[]={"ID","Ime","Prezime","Adresa","Telefon","JMBG","Datum rođenja","LK"};
         Object podaci[][] = new Object[ls.size()][8];
         Iterator <String []>it= ls.iterator();
         int br =0;
         while(it.hasNext()){
             podaci[br] = it.next();
             br++;
         }
         DefaultTableModel DTM = new DefaultTableModel(podaci, nazivkolona);
         jtb.setModel(DTM);
                 

    }  
    //prikazivanje podataka iz tabele adresar
     public void SelectTabelaAdresar(JTable jtb) {
        List <String []>ls= new ArrayList<String []>();
        
        try {
            String query = "SELECT * FROM adresar";
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(query);
            String temp[]; 
            String nazivkolona[]={"ID","Ime","Prezime","Adresa","Telefon","Telefon2","E-mail","Opis"};
            while (rs.next()) {
                
                temp = new String[8];
                temp[0] = rs.getInt("IDAdresar")+"";
                temp[1] = rs.getString("Ime");
                temp[2] = rs.getString("Prezime");
                temp[3] = rs.getString("Adresa");
                temp[4] = rs.getString("Telefon");
                temp[5] = rs.getString("Telefon2");
                temp[6] = rs.getString("Mail");
                temp[7] = rs.getString("Opis");
                
                ls.add(temp);                                                      
            }
        } catch (SQLException e) {           
        }
         
         String nazivkolona[]={"ID","Ime","Prezime","Adresa","Telefon","Telefon 2","E-mail","Opis"};
         Object podaci[][] = new Object[ls.size()][8];
         Iterator <String []>it= ls.iterator();
         int br =0;
         while(it.hasNext()){
             podaci[br] = it.next();
             br++;
         }
         DefaultTableModel DTM = new DefaultTableModel(podaci, nazivkolona);
         jtb.setModel(DTM);
                 

    }  
     
     public void Select(JComboBox jcb) {

        try {

            String query = "SELECT Ime, Prezime FROM klijenti";
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(query);
           
            while (rs.next()) {                
                jcb.addItem(rs.getString("Ime")); 
                jcb.addItem(rs.getString("Prezime"));
            }

        } catch (SQLException e) {           
        }

    }
     
     
     
       
    
       public void Delete(JTextField id) {

        try {
            String query = "Delete from klijenti WHERE IDKlijenti = '"+Integer.parseInt(id.getText()) +"'";
            Statement stmt = con.createStatement();
            int r = stmt.executeUpdate(query);
            if(r==1){
                System.out.println("Obrisano iz baze!!!");
            }else{
                System.out.println("Javila se greska!!!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

   
}


[Ovu poruku je menjao bombarule dana 14.05.2013. u 23:18 GMT+1]

[Ovu poruku je menjao bombarule dana 14.05.2013. u 23:19 GMT+1]

[Ovu poruku je menjao bombarule dana 14.05.2013. u 23:49 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon Re: Kako prikazati prvi slobodan ID iz MYSQL baze u JTextField-u15.05.2013. u 08:14 - pre 133 meseci
Code:

SELECT MAX(id)+1 FROM table;


Stim da ti je ovo totalno nepouzdano vrlo lako može da se desi da više korisnika povuče isti id i onda si u problemu.

Ispravnije je da ti to polje bude prazno i da se ne može editovati, a tek nakon što isertuješ record onda ga popuniš id-em koji je generisan u bazi. Na taj način dobiješ i potvrdu da je zaista snimljen u bazu.

Evo ti hint kako da to izvedeš

Code:

int id = stmt.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);


Naravno podrazumjeva se da je id kolona autoincrement.
 
Odgovor na temu

nemnesic
nemnesic
Software Developer
Vranje Florida

Moderator
Član broj: 44355
Poruke: 802
*.dynamic.sbb.rs.



+64 Profil

icon Re: Kako prikazati prvi slobodan ID iz MYSQL baze u JTextField-u15.05.2013. u 09:21 - pre 133 meseci
Citat:
bombarule: Pozdrav,

Relativno sam nov u Java svijetu, koristim NetBeans IDE i htio bih prikazati u GUI aplikacije, u tekst polju ID Klijenta, prvi slobodan ID iz tabele u kojoj ce podaci o klijentu biti sacuvani. Aplikacija koju pisem je studentski projekat u okviru predmeta na fakultetu.

Upit za dobijanje sledeceg slobodnog ID-a je
Code:
select id+1 from table order by id DESC limit 1
i u konzoli je prikazuje tacno onako kako zelim, ali mi je potrebna pomoc kako se dobijeni broj dalje prikazati u Javi, tj. u JTextField-u.

Inace, kreirao sam SQL klasu sa konekcijama i svim potrebnim SQL upitima za moju aplikaciju i ovo je poslednji koji mi je ostao da zavrsim sa kodom, ostalo je jos samo sminka GUI-a.

Svaka pomoc je dobrodosla. Hvala unaprijed.


ja se 100% slazem sa ovim. Bolje ti je resenje da pokazes ID posle unosenja u bazu.
A inace tvoje pitanje je bilo kako da prizes tekst u jTextField...

Code:

//ovako nekako....
if(resultSet.first()) {
    jTextField.setText(resultSet.getString(0));
}
 
Odgovor na temu

[es] :: Java :: Kako prikazati prvi slobodan ID iz MYSQL baze u JTextField-u

[ Pregleda: 1503 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.