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

Connection.createStatement()

[es] :: Java :: Connection.createStatement()

[ Pregleda: 2513 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ZeRo8
Wien

Član broj: 168
Poruke: 235
*.13.14.vie.surfer.at.



Profil

icon Connection.createStatement()29.03.2006. u 03:25 - pre 219 meseci
Da li je moguce da ako imam jednu klasu MakeConnection u kojoj uspostaavljam konekciju na bazu, da recimo u klasu AddUserPanel(koja mi sluzi za kreiranje panela koji lepim na prozor) kreiram Statement koji ce se izvrsiti na tu bazu.
MyAddUserPanel

Code:

package myPackage;

import java.util.*;

import java.text.*;
import javax.swing.*;
import java.sql.Statement;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.SQLException;

import java.awt.*;

public class MyAddUserPanel extends JPanel implements ActionListener {
    
    [b]private MakeConnection conn = new MakeConnection();[/b]

    private JButton addButton;
    
    private JLabel member_idL;
    private JLabel firstnameL;
    private JLabel lastnameL;
    private JLabel birthdayL;
    private JLabel genderL;
    private JLabel streetL;
    private JLabel townL;
    private JLabel stateL;
    private JLabel emailL;
    private JLabel mobile_phoneL;
    private JLabel home_phoneL;
    private JLabel has_payedL;
    private JLabel date_addedL;
    
    private JTextField ftf_member_id;
    private JTextField ftf_firstname;
    private JTextField ftf_lastname;
    private JTextField ftf_street;
    private JTextField ftf_birthday;
    private JTextField ftf_gender;
    private JTextField ftf_town;
    private JTextField ftf_state;
    private JTextField ftf_email;
    private JTextField ftf_mobile_phone;
    private JTextField ftf_home_phone;
    private JTextField ftf_has_payed;
    private JTextField ftf_date_added;
    
    public MyAddUserPanel() {
        
        super(new GridLayout(0,2));
        
        addButton = new JButton("Add");
        addButton.setActionCommand("add");
        addButton.addActionListener(this);
        
        member_idL = new JLabel("Member_ID");
        firstnameL = new JLabel("Firstname");
        lastnameL = new JLabel("Lastname");
        birthdayL = new JLabel("Birthday");
        genderL = new JLabel("Gender");
        streetL = new JLabel("Street");
        townL = new JLabel("Town");
        stateL = new JLabel("State");
        emailL = new JLabel("Email");
        mobile_phoneL = new JLabel("Mobile_phone");
        home_phoneL = new JLabel("Home_phone");
        has_payedL = new JLabel("Has Payed");
        date_addedL = new JLabel("Date_added");
        
        ftf_member_id = new JTextField(20);
        ftf_firstname = new JTextField(20);
        ftf_lastname = new JTextField(20);
        ftf_birthday = new JTextField(20);
        ftf_gender = new JTextField(20);
        ftf_street = new JTextField(20);
        ftf_town = new JTextField(20);
        ftf_state = new JTextField(20);
        ftf_email = new JTextField(20);
        ftf_mobile_phone = new JTextField(20);
        ftf_home_phone = new JTextField(20);
        ftf_has_payed = new JTextField(20);
        ftf_date_added = new JTextField(20);
        
        ftf_date_added.setText("NOW");
        ftf_date_added.disable();
        
        
        
        JPanel panel1 = new JPanel();
        JPanel panel2 = new JPanel();
        JPanel panel3 = new JPanel();
        JPanel panel4 = new JPanel();
        JPanel panel5 = new JPanel();
        JPanel panel6 = new JPanel();
        JPanel panel7 = new JPanel();
        JPanel panel8 = new JPanel();
        JPanel panel9 = new JPanel();
        JPanel panel10 = new JPanel();
        JPanel panel11 = new JPanel();
        JPanel panel12 = new JPanel();
        JPanel panel13 = new JPanel();
    
        panel1.add(member_idL);
        panel1.add(ftf_member_id);
        
        panel3.add(firstnameL);
        panel3.add(ftf_firstname);
        
        panel4.add(lastnameL);
        panel4.add(ftf_lastname);
        
        panel5.add(birthdayL);
        panel5.add(ftf_birthday);
        
        panel2.add(genderL);
        panel2.add(ftf_gender);
        
        
        panel6.add(streetL);
        panel6.add(ftf_street);
        
        panel7.add(townL);
        panel7.add(ftf_town);
        
        panel8.add(stateL);
        panel8.add(ftf_state);
        
        panel9.add(emailL);
        panel9.add(ftf_email);
        
        panel10.add(mobile_phoneL);
        panel10.add(ftf_mobile_phone);
        
        panel11.add(home_phoneL);
        panel11.add(ftf_home_phone);
        
    panel12.add(has_payedL);
    panel12.add(ftf_has_payed);
        
        panel13.add(date_addedL);
        panel13.add(ftf_date_added);
        panel13.add(addButton, SpringLayout.WEST);
        
        add(panel1);
        add(panel3);
        add(panel4);
        add(panel5);
        add(panel2);
        add(panel6);
        add(panel7);
        add(panel8);
        add(panel9);
        add(panel10);
        add(panel11);
        add(panel12);
        add(panel13);
    }
    
    public void actionPerformed(ActionEvent e) {
        if ("add".equals(e.getActionCommand())) {
            
            String str0 = ftf_member_id.getText();           
            String str1 = ftf_firstname.getText();
            String str2 = ftf_lastname.getText();
            String str3 = ftf_birthday.getText();
            String str4 = ftf_gender.getText();
            String str5 = ftf_street.getText();
            String str6 = ftf_town.getText();
            String str7 = ftf_state.getText();
            String str8 = ftf_email.getText();
            String str9 = ftf_mobile_phone.getText();
            String str10 = ftf_home_phone.getText();
            String str11 = ftf_has_payed.getText();
            
        
            Date dt = new Date();
            //chose the format
            SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss.S" );
            
            String str12 = "" + df.format( dt );
            
            String query = "INSERT INTO Users VALUES(" +
                                        Integer.parseInt(str0) + "," + "\'" + str1 + "\'," + "\'" + str2 + "\'," +
                                        "\'" + str3 + "\'," + "\'" + str4 + "\',"  + "\'" + str5 + "\',"  + "\'" + str6 + "\'," + 
                                        "\'" + str7 + "\',"  + "\'" + str8 + "\',"  + "\'" + str9 + "\',"  + "\'" + str10 + "\'," +
                                         "\'" + str11 + "\'," +  "\'" + str12 + "\')";
            
 
            System.out.println(query);
            [b]conn.establish();
            conn.executeUpdate(query);[/b]
            
            
        }
    

    }
}



Ovako funkcionise, ali ja moram da otvorim novu konekciju na bazu i da izvrsim upit preko MakeConnection klase.


PITANJE:

Da li je moguce resiti drugacije? Znaci samo da kreiram Statement koji ce se izvrsiti na bazu s kojom je vec uspostavljena konekcija.

hvala
 
Odgovor na temu

logotet
Beograd

Član broj: 49849
Poruke: 42
..taman-bg.customer.sbb.co.yu.

Sajt: www.logotet.com


Profil

icon Re: Connection.createStatement()29.03.2006. u 08:54 - pre 219 meseci
Npr. kreiraj klasu kao singleton pattern (ili kao static varijablu, sto ja ne volim, ali moze).

To bi znacili da npr. sa MojaKlasa.getConnection() dobijas konekciju, a klasa MojaKlasa kreira konekciju ka bazi sa prvim pozivom...

BTW. pokusavaj da u GUI klasama nemas pojma o radu sa bazom. GUI klase rada samo sa prikazom na ekran, klasa za rad s bazom brinu u presistentnosti, a negde izmedju imas klase koje sve to povezuju.
 
Odgovor na temu

ZeRo8
Wien

Član broj: 168
Poruke: 235
*.13.14.vie.surfer.at.



Profil

icon Re: Connection.createStatement()29.03.2006. u 12:39 - pre 219 meseci
Nisam bas razumeo. A mislim da me nisi ni ti razumeo:
Evo ovako:

imam MakeConnection klasu, a ovo mi je MyAddUserPanel koji koristim za unos korisnika.

Code:

package myPackage;

import java.util.*;

import java.text.*;
import javax.swing.*;
import java.sql.Statement;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.SQLException;

import java.awt.*;

public class MyAddUserPanel extends JPanel implements ActionListener {
    
    [b]private MakeConnection conn = new MakeConnection();[/b]
  

    private JButton addButton;
    
    private JLabel member_idL;
    private JLabel firstnameL;
    private JLabel lastnameL;
    private JLabel birthdayL;
    private JLabel genderL;
    private JLabel streetL;
    private JLabel townL;
    private JLabel stateL;
    private JLabel emailL;
    private JLabel mobile_phoneL;
    private JLabel home_phoneL;
    private JLabel has_payedL;
    private JLabel date_addedL;
    
    private JTextField ftf_member_id;
    private JTextField ftf_firstname;
    private JTextField ftf_lastname;
    private JTextField ftf_street;
    private JTextField ftf_birthday;
    private JTextField ftf_gender;
    private JTextField ftf_town;
    private JTextField ftf_state;
    private JTextField ftf_email;
    private JTextField ftf_mobile_phone;
    private JTextField ftf_home_phone;
    private JTextField ftf_has_payed;
    private JTextField ftf_date_added;
    
    public MyAddUserPanel() {
        
        super(new GridLayout(0,2));
        
        addButton = new JButton("Add");
        addButton.setActionCommand("add");
        addButton.addActionListener(this);
        
        member_idL = new JLabel("Member_ID");
        firstnameL = new JLabel("Firstname");
        lastnameL = new JLabel("Lastname");
        birthdayL = new JLabel("Birthday");
        genderL = new JLabel("Gender");
        streetL = new JLabel("Street");
        townL = new JLabel("Town");
        stateL = new JLabel("State");
        emailL = new JLabel("Email");
        mobile_phoneL = new JLabel("Mobile_phone");
        home_phoneL = new JLabel("Home_phone");
        has_payedL = new JLabel("Has Payed");
        date_addedL = new JLabel("Date_added");
        
        ftf_member_id = new JTextField(20);
        ftf_firstname = new JTextField(20);
        ftf_lastname = new JTextField(20);
        ftf_birthday = new JTextField(20);
        ftf_gender = new JTextField(20);
        ftf_street = new JTextField(20);
        ftf_town = new JTextField(20);
        ftf_state = new JTextField(20);
        ftf_email = new JTextField(20);
        ftf_mobile_phone = new JTextField(20);
        ftf_home_phone = new JTextField(20);
        ftf_has_payed = new JTextField(20);
        ftf_date_added = new JTextField(20);
        
        ftf_date_added.setText("NOW");
        ftf_date_added.disable();
        
        
        
        JPanel panel1 = new JPanel();
        JPanel panel2 = new JPanel();
        JPanel panel3 = new JPanel();
        JPanel panel4 = new JPanel();
        JPanel panel5 = new JPanel();
        JPanel panel6 = new JPanel();
        JPanel panel7 = new JPanel();
        JPanel panel8 = new JPanel();
        JPanel panel9 = new JPanel();
        JPanel panel10 = new JPanel();
        JPanel panel11 = new JPanel();
        JPanel panel12 = new JPanel();
        JPanel panel13 = new JPanel();
    
        panel1.add(member_idL);
        panel1.add(ftf_member_id);
        
        panel3.add(firstnameL);
        panel3.add(ftf_firstname);
        
        panel4.add(lastnameL);
        panel4.add(ftf_lastname);
        
        panel5.add(birthdayL);
        panel5.add(ftf_birthday);
        
        panel2.add(genderL);
        panel2.add(ftf_gender);
        
        
        panel6.add(streetL);
        panel6.add(ftf_street);
        
        panel7.add(townL);
        panel7.add(ftf_town);
        
        panel8.add(stateL);
        panel8.add(ftf_state);
        
        panel9.add(emailL);
        panel9.add(ftf_email);
        
        panel10.add(mobile_phoneL);
        panel10.add(ftf_mobile_phone);
        
        panel11.add(home_phoneL);
        panel11.add(ftf_home_phone);
        
    panel12.add(has_payedL);
    panel12.add(ftf_has_payed);
        
        panel13.add(date_addedL);
        panel13.add(ftf_date_added);
        panel13.add(addButton, SpringLayout.WEST);
        
        add(panel1);
        add(panel3);
        add(panel4);
        add(panel5);
        add(panel2);
        add(panel6);
        add(panel7);
        add(panel8);
        add(panel9);
        add(panel10);
        add(panel11);
        add(panel12);
        add(panel13);
    }
    
    public void actionPerformed(ActionEvent e) {
        if ("add".equals(e.getActionCommand())) {
            
            String str0 = ftf_member_id.getText();           
            String str1 = ftf_firstname.getText();
            String str2 = ftf_lastname.getText();
            String str3 = ftf_birthday.getText();
            String str4 = ftf_gender.getText();
            String str5 = ftf_street.getText();
            String str6 = ftf_town.getText();
            String str7 = ftf_state.getText();
            String str8 = ftf_email.getText();
            String str9 = ftf_mobile_phone.getText();
            String str10 = ftf_home_phone.getText();
            String str11 = ftf_has_payed.getText();
            
        
            Date dt = new Date();
            //chose the format
            SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss.S" );
            
            String str12 = "" + df.format( dt );
            
            String query = "INSERT INTO Users VALUES(" +
                                        Integer.parseInt(str0) + "," + "\'" + str1 + "\'," + "\'" + str2 + "\'," +
                                        "\'" + str3 + "\'," + "\'" + str4 + "\',"  + "\'" + str5 + "\',"  + "\'" + str6 + "\'," + 
                                        "\'" + str7 + "\',"  + "\'" + str8 + "\',"  + "\'" + str9 + "\',"  + "\'" + str10 + "\'," +
                                         "\'" + str11 + "\'," +  "\'" + str12 + "\')";
            
 
            System.out.println(query);
           [b]conn.establish();
          conn.executeUpdate(query);[/b]
            
            
            
        }
    

    }
}



Ovako funkcionise. Ali ja ocu da samo iz te klase prosledim Statement na bazu a da ne pravim konekciju. Kad postavim samo gore:
private Statement stmt;

i onda dole ubacim stmt.executeUpdate() (bez linije conn.establish(); ) onda mi javlja

NULLPOINTERexception

Ovo je MakeConnection()
Code:

package myPackage;
import java.sql.*;
import java.util.*;


public  class MakeConnection {
    
    
    [b]private  Connection conn;
    private ResultSet rs;
    private  boolean connState;
    private Statement stmt ;

    public MakeConnection() {
        this.connState=false;
        conn = null;
        stmt =null;
        
    }[/b]
    
    public void prepareStatement() {
        try {
            stmt = conn.createStatement();
        }catch(SQLException e) {
            System.err.println("SQL EXCEPTION:   " + e);
        }
    }
        
    // ESTABLISH CONECTION 
    public void establish() {
        
        if(this.getState()==true) { System.out.println("Alredy established!!!"); }
        else {
        
    try {
       
        //login data 
        String userName = "sa";
        String password = "";
        
        //driver loading
        Class.forName("org.hsqldb.jdbcDriver");
        
        //url specification
        String url = "jdbc:hsqldb:C:/tmp/Bookstore";

        //getting connection
        conn = DriverManager.getConnection(url, userName, password);
        
        System.out.println("Database connection established");
        this.connState = true;
        System.out.println("Connection State:  " + this.connState);
        [b]stmt = conn.createStatement();[/b]
      
    }

    catch (Exception e)
        {
        System.out.println("Cannot connect to database server --> " + e);
        }
    }
    }
    
    public void disconnect() {

        System.out.println("Connection State:  " + connState);
            System.out.println("exiting....");
            try {
                stmt.execute("SHUTDOWN");
                stmt.close();
                conn.close();
                stmt=null;
                conn =null;
                this.connState=false;
            } catch(SQLException e) {
                this.connState=false;
                stmt=null;
                conn =null;
                System.out.println("FEHLER!!!");
            }    
    }
    
    
    
    public boolean getState() {
        
        return this.connState;
        
    }
    
    public int getCountHasPayed() {
    
        String a = "SELECT count(has_payed) from users where has_payed like \'no\'";
        int x = 0;
        try {
            rs = stmt.executeQuery(a);
            while (rs.next()) {
                x = rs.getInt("");
            }
        } catch (Exception e) {
            System.err.println(e);
            return 0;
        }
        
        return x;
        
    }
    
    public int getCountBooks() {
        
        String a = "SELECT count(*) from books";
        int x = 0;
        try {
            rs = stmt.executeQuery(a);
            while (rs.next()) {
                x = rs.getInt("");
            }
        } catch (Exception e) {
            System.err.println(e);
            return 0;
        }
        
        return x;
        
    }
    
public int getCountUsers() {
        
        String a = "SELECT count(*) from users";
        int x = 0;
        try {
            rs = stmt.executeQuery(a);
            while (rs.next()) {
                x = rs.getInt("");
                System.out.println(x);
            }
        } catch (SQLException e) {
            System.err.println(e);
            return 0;
        }
        
        return x;
        
    }
    
    
    public Vector<Vector<Object>> getUsers() {
        
        
        String query = "SELECT * FROM Users";
        Vector<Object> row;
        Vector<Vector<Object>> data = new Vector<Vector<Object>>();
        
        try {
            
            rs = stmt.executeQuery(query);
            
            
            while (rs.next()) {
                    
                    row = new Vector<Object>();
                    
                
                     int a = rs.getInt("member_id");
                      String b = rs.getString("firstname");
                    String c = rs.getString("lastname");
                    String d = rs.getString("birthday");
                    String e = rs.getString("gender");
                    String f = rs.getString("street");
                    String g = rs.getString("town");
                    String h = rs.getString("state");
                    String i = rs.getString("email");
                    String j = rs.getString("mobile_phone");
                    String k = rs.getString("home_phone");
                    String l = rs.getString("has_payed");
                    String m = rs.getString("date_added");
                    
                    row.add(0, a);
                    row.add(1, b);
                    row.add(2, c);
                    row.add(3, d);
                    row.add(4, e);
                    row.add(5, f);
                    row.add(6, g);
                    row.add(7, h);
                    row.add(8, i);
                    row.add(9, j);
                    row.add(10, k);
                    row.add(11, l);
                    row.add(12, m);
                    
                    data.add(row);
            }
        } catch (Exception eee) {
            System.out.println("ERROR: " + eee);
        }
        
        
        return data;
        
    }
    
public Vector<Vector<Object>> getBooks() {
        
        
        String query = "SELECT * FROM books";
        Vector<Object> row;
        Vector<Vector<Object>> data = new Vector<Vector<Object>>();
        
        try {
            
            rs = stmt.executeQuery(query);
            
            
            while (rs.next()) {
                    
                    row = new Vector<Object>();
                    
                
                     int a = rs.getInt("book_id");
                      String b = rs.getString("isbn");
                    String c = rs.getString("author");
                    String d = rs.getString("title");
                    String e = rs.getString("year_published");
                    String f = rs.getString("art");
                    String g = rs.getString("language");
                    String h = rs.getString("nr_of_pages");
                    int i = rs.getInt("borrowed_from");
        
                    
                    row.add(0, a);
                    row.add(1, b);
                    row.add(2, c);
                    row.add(3, d);
                    row.add(4, e);
                    row.add(5, f);
                    row.add(6, g);
                    row.add(7, h);
                    row.add(8, i);
              
                    
                    data.add(row);
            }
        } catch (Exception eee) {
            System.out.println("ERROR1111: " + eee);
        }
        
        
        return data;
        
    }
    
public Vector<Vector<Object>>  getSearched(String q) {
    
        String query = q;
        
        Vector<Object> row;
        Vector<Vector<Object>> data = new Vector<Vector<Object>>();
        
        try {
            
            rs = stmt.executeQuery(query);
            
            
            while (rs.next()) {
                    
                    row = new Vector<Object>();
                    
                
                     int a = rs.getInt("member_id");
                      String b = rs.getString("firstname");
                    String c = rs.getString("lastname");
                    String d = rs.getString("birthday");
                    String e = rs.getString("gender");
                    String f = rs.getString("street");
                    String g = rs.getString("town");
                    String h = rs.getString("state");
                    String i = rs.getString("email");
                    String j = rs.getString("mobile_phone");
                    String k = rs.getString("home_phone");
                    String l = rs.getString("has_payed");
                    String m = rs.getString("date_added");
                    
                    row.add(0, a);
                    row.add(1, b);
                    row.add(2, c);
                    row.add(3, d);
                    row.add(4, e);
                    row.add(5, f);
                    row.add(6, g);
                    row.add(7, h);
                    row.add(8, i);
                    row.add(9, j);
                    row.add(10, k);
                    row.add(11, l);
                    row.add(12, m);
                    
                    data.add(row);
            }
        } catch (Exception eee) {
            System.out.println("ERR: " + eee);
        }
        
        
        return data;
        
    }
    

    
     public Vector<Vector<Object>> executeQueryUsers(String query,  boolean select[]){
            if (select.length != 13) return null;
           
                Vector<Object> row;
                Vector<Vector<Object>> data = new Vector<Vector<Object>>();
                
                try {
                    
                    rs = stmt.executeQuery(query);
                    
                    
                    while (rs.next()) {
                            
                            row = new Vector<Object>();
                            
                        
                             int a = rs.getInt("member_id");
                              String b = rs.getString("firstname");
                            String c = rs.getString("lastname");
                            String d = rs.getString("birthday");
                            String e = rs.getString("gender");
                            String f = rs.getString("street");
                            String g = rs.getString("town");
                            String h = rs.getString("state");
                            String i = rs.getString("email");
                            String j = rs.getString("mobile_phone");
                            String k = rs.getString("home_phone");
                            String l = rs.getString("has_payed");
                            String m = rs.getString("date_added");
                            
                            row.add(0, a);
                            row.add(1, b);
                            row.add(2, c);
                            row.add(3, d);
                            row.add(4, e);
                            row.add(5, f);
                            row.add(6, g);
                            row.add(7, h);
                            row.add(8, i);
                            row.add(9, j);
                            row.add(10, k);
                            row.add(11, l);
                            row.add(12, m);
                            
                            data.add(row);
                    }
                } catch (SQLException eee) {
                    System.err.println("ERROR in  ExcuteQuery: " + eee);
                    return null;
                }
                
         
            
            return data;
        }
     
     public Vector<Vector<Object>> executeQueryBooks(String query,  boolean select[]){
            if (select.length != 9) return null;
           
                Vector<Object> row;
                Vector<Vector<Object>> data = new Vector<Vector<Object>>();
                
                try {
                    
                    rs = stmt.executeQuery(query);
                    
                    
                    while (rs.next()) {
                            
                            row = new Vector<Object>();
                            
                            int a = rs.getInt("book_id");
                              String b = rs.getString("isbn");
                            String c = rs.getString("author");
                            String d = rs.getString("title");
                            String e = rs.getString("year_published");
                            String f = rs.getString("art");
                            String g = rs.getString("language");
                            String h = rs.getString("nr_of_pages");
                            int i = rs.getInt("borrowed_from");
                    
                            
                            row.add(0, a);
                            row.add(1, b);
                            row.add(2, c);
                            row.add(3, d);
                            row.add(4, e);
                            row.add(5, f);
                            row.add(6, g);
                            row.add(7, h);
                            row.add(8, i);
                          
                            
                            data.add(row);
                    }
                } catch (SQLException eee) {
                    System.err.println("ERROR ff: " + eee);
                    return null;
                }
                
         
            
            return data;
        }
        
    [b] public void executeUpdate(String a) {
         
         try {
             stmt=conn.createStatement();
             stmt.executeUpdate(a);
         } catch(SQLException e) {
             System.err.println(e);
         }
         
     }
    [b]
    
    /*
    // MAKING TABLES

    
    //SQL statement
    String createLeser = "CREATE TABLE Leser " + 
        "(member_id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, " +
        "firstname VARCHAR(50) NOT NULL, " + 
        "lastname VARCHAR(75) NOT NULL, " + 
        "street VARCHAR(100) NOT NULL, " + 
        "town VARCHAR(50) NOT NULL, " +
        "state VARCHAR(50) NOT NULL, " + 
        "birthday DATE NOT NULL, " + 
        "gender ENUM(\"Herr\",\"Frau\") NOT NULL, " + 
        "email VARCHAR(100) NULL, " + 
        "mobile_phone VARCHAR(20) NOT NULL, " +
        "home_phone VARCHAR(20) NULL, " + 
        "date_added DATETIME DEFAULT \"0000-00-00 00:00:00\"); ";
    
    String createBuecher = "CREATE TABLE Buecher " +
        "(book_id INT UNSIGNED NOT NULL PRIMARY KEY, " +
        "isbn CHAR(13) NULL , " + 
        "author VARCHAR(100) NOT NULL, " +
        "title VARCHAR(150) NOT NULL, " +
        "year_published VARCHAR(4) NOT NULL, " +
        "art VARCHAR(50) NOT NULL, " +
        "language ENUM(\"English\", \"Deutsch\",\"Franzoesisch\",\"Spanisch\",\"Italienisch\") NOT NULL, " +
        "pages INT UNSIGNED NOT NULL, " +
        "borrowed ENUM(\"true\",\"false\") NOT NULL DEFAULT \"false\", " +
        "borrowed_from INT NOT NULL DEFAULT \"0\"); ";
    


    try {
        //creating statement
        Statement s = conn.createStatement();
        s.executeUpdate(createLeser);
        s.executeUpdate(createBuecher);
        s.close();

    }catch(SQLException e) {
        System.err.println("Fehler:  --->  " + e);
    }


    System.out.println("Tabele \"Leser\" angelegt!");
    System.out.println("Tabele \"Buecher\" angelegt!");
      */ 
        

    
}



Vidis ja moram da uvek kreiram ovde statement a pre toga moram da uspostavim konekciju. Kako da se resim toga?
 
Odgovor na temu

logotet
Beograd

Član broj: 49849
Poruke: 42
..taman-bg.customer.sbb.co.yu.

Sajt: www.logotet.com


Profil

icon Re: Connection.createStatement()29.03.2006. u 17:32 - pre 219 meseci
Uf. mnogo su dugacki sourcevi, nisam bas raspolozen da ih analiziram na sitna crevca.
Npr. ovako:
Code:
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnector {
    private static String driver = "org.hsqldb.jdbcDriver";
    private static String url = "jdbc:hsqldb:JosNesto/TvojaBaza";
    private static Connection dbConn = null;

    public static Connection getConnection() {
        if (dbConn == null)
            try {
                Class c = null;
                c = Class.forName(driver);
                DriverManager.registerDriver((Driver) c.newInstance());// moze i drugacije
                dbConn = DriverManager.getConnection(url, "sa", "");
            } catch (ClassNotFoundException cfe) {
                System.err.println(cfe.getMessage());
            } catch (IllegalAccessException iae) {
                System.err.println(iae.getMessage());
            } catch (SQLException sqle) {
                System.err.println(sqle.getMessage());
            } catch (InstantiationException ie) {
                System.err.println(ie.getMessage());
            }
        return dbConn;
    }
}


i bilo gde u drugim klasama

Code:

Connection konekcija = DBConnector.getConnection();
.
.
Statement stmt = konekcija.createStatement();
.
.
stmt.executeQuery();
stmt.close();  // vrlo vazno !!!!!

itd.
Znaci u tvom programu se kreira samo jedna konekcija, ona je static u klasi DBConnector i to je to. Imas otvorenu samo jednu konekciju i nad njom kreiras naredbe i izvrsavas ih.

Valjda je to odgovor na tvoje pitanje:
Citat:

Znaci samo da kreiram Statement koji ce se izvrsiti na bazu s kojom je vec uspostavljena konekcija.

 
Odgovor na temu

ZeRo8
Wien

Član broj: 168
Poruke: 235
*.13.14.vie.surfer.at.



Profil

icon Re: Connection.createStatement()29.03.2006. u 20:23 - pre 219 meseci
To je bio pravi odgovor na moje pitanje. Hvala
 
Odgovor na temu

ZeRo8
Wien

Član broj: 168
Poruke: 235
*.13.14.vie.surfer.at.



Profil

icon Re: Connection.createStatement()29.03.2006. u 21:34 - pre 219 meseci
Samo da rezimiram. Evo isprobao sam ovo sto si mi reko i sve je ok. Ali zar nije tako da ja kad pozovem ConnectDB.getConnected(), ja automatski uspostavim novu konekciju (ja ponovo pokrecem driver i logujem se). Ili je to jedna ista?!

[Ovu poruku je menjao ZeRo8 dana 29.03.2006. u 22:48 GMT+1]
 
Odgovor na temu

rj444
Radomir Jakovljevic
Beograd

Član broj: 48212
Poruke: 354
*.rcub.bg.ac.yu.



Profil

icon Re: Connection.createStatement()30.03.2006. u 00:05 - pre 219 meseci
Citat:
ZeRo8: Samo da rezimiram. Evo isprobao sam ovo sto si mi reko i sve je ok. Ali zar nije tako da ja kad pozovem ConnectDB.getConnected(), ja automatski uspostavim novu konekciju (ja ponovo pokrecem driver i logujem se). Ili je to jedna ista?!

[Ovu poruku je menjao ZeRo8 dana 29.03.2006. u 22:48 GMT+1]


Samo jednom ce da se kreira konekcija, zbog onog uslova
Code:
if (dbConn==null)


Ja bih samo da ti predlozim jos jedno resenje, a to je da napravis klasu koja predstavlja apstrakciju pristupa bazi.
Ona ima recimo premanentnu konekciju ka bazi (za vreme rada aplikacije), koju uspostavis prilikom kreiranja instance
ove klase. U toj klasi implementiras metode npr. upitSelekcije(String upit), upitAzuriranja(String upit)..., u kojima
realizujes conn.createStatement(), conn.execute()..., a vracas ResultSet. Tako da te u aplikaciji uopste ne zanimaju statementi.
Samo obrati paznju na ono sto rece logotet:
Code:
stmt.close();  // vrlo vazno !!!!!


Zatim mozes da kreiras novi sloj aplikacije (novu klasu ili niz njih), koje ce da rade sa upitima, a tebi ce vracati neke objekte koji
su relevantni za samu aplikaciju: npr. Member sa svojim atributima...

Ne bih da se pravim pametan, ali stvarno mislim da je najbolje da ovako raslojavas aplikaciju, jer je preglednije, lakse za odrzavanje,
testiranje i debagovanje.
 
Odgovor na temu

ZeRo8
Wien

Član broj: 168
Poruke: 235
*.13.14.vie.surfer.at.



Profil

icon Re: Connection.createStatement()30.03.2006. u 09:19 - pre 219 meseci
Hvala, probacu pa cu se javiti .Pozdrav
 
Odgovor na temu

[es] :: Java :: Connection.createStatement()

[ Pregleda: 2513 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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