<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Łączenie z bazą danych]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=1394&amp;type=atom"/>
	<updated>2013-04-09T08:37:40Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=1394</id>
		<entry>
			<title type="html"><![CDATA[Odp: Łączenie z bazą danych]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=4132#p4132"/>
			<content type="html"><![CDATA[Witam,
Napisałem taki kod do połączenia się z baza danych postgresql, przy pomocy postgresql-9.2-1002.jdbc4.jar no ale niestety nie wiem dla czego po uruchomieniu aplikacji która to połączenie wykorzystuje otrzymuje :
[code]
blad sql 008001
Nie jestes podlaczony do bazy wiec nie moge wykonac:Select * from Book
Brak danych
Nie jestes podlaczony do bazy wiec nie moge wykonac:Select * from libe_user
Brak danych
Nie jestes podlaczony do bazy wiec nie moge wykonac:Select count(*) from book
Nie jestes podlaczony do bazy wiec nie moge wykonac:Select count(*) from libe_user
[/code]

Aplikacja się uruchamia no ale nie łączy sie z baza danych, co może być nie tak ?? Szukałem jakiejś literówki ale nie widzę :) może czyjeś wprawne oko wypatrzy błąd jaki popełniłem.

[code]
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.postgresql.*;


public class Database {

// true - jesli polaczomy
boolean connected=false;
//server
private static String serwer="//localhost";
//port dla servera
private static int port=5432;
private static Database database;
Connection conn=null;

    private Database(String server,int port){
        this.connect(server,port);
    }
    
    
    public static Database getInstance(){
        
        if(database==null)database = new Database(serwer,port);
        return database;
    }
    
    
    public void connect(String server, int port){
        
        // wybieramy baze jezeli mamy kilka, oracle darmowe ma tylko xe, wiec zostawiamy puste
        String database = "BOOK";
        
        String login = "postgresqluser";
        
        String password = "postgresqluser";
        
        
        //System.out.println("Start");
        try {
            Class.forName("org.postgresql.Driver");

            String connectionString = "org:postgresql" + server + ":"+ port + ":" + database;
             conn= DriverManager.getConnection(connectionString,
                    login, password);

                if(conn!=null)connected=true;

        }catch (SQLException s) {
            
            System.out.println("blad sql " + s.getErrorCode() + ""
                    + s.getSQLState());
        } catch (Exception e1) {
            System.out.println("Blad:" + e1.getMessage());
            if(e1.getMessage().equals("org.postgresql.Driver")){
                System.out.println("Czy zaimportowany jest plik jar ?!");
            }
        }    
        
    }
    
    public ResultSet getData(String sql){
        
        if(connected){ResultSet rc=null;
        Statement st = null;
        try {
            st = conn.createStatement();
            rc = st.executeQuery(sql);
        } catch (SQLException e) {
            System.out.println("Nie udalo sie wykonac: "+sql);
            e.printStackTrace();
        }
        ;
        return rc;        
        }
        System.out.println("Nie jestes podlaczony do bazy wiec nie moge wykonac:"+sql);
        return null;
        }


    public boolean insertSql(String sql) {
        if(connected){
        Statement st = null;
        try {
            st = conn.createStatement();
        st.executeQuery(sql);
        return true;
        }catch(Exception e){
            System.out.println("Blad dodawania do bazy "+e.getMessage());
        return false;    
        }
        }else{
            return false;
        }
        
    }
}

[/code]]]></content>
			<author>
				<name><![CDATA[KargulGeek]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1563</uri>
			</author>
			<updated>2013-04-09T08:37:40Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=4132#p4132</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Łączenie z bazą danych]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3721#p3721"/>
			<content type="html"><![CDATA[Do jakiejś bazy trzeba się zalogować domyślną bazą jest postgres, a jak już się zalogujesz wyświetlenie baz danych, do których masz uprawnienie do zalogowania możesz zrobić jak w poniższym zapytaniu 

select datname as database from pg_database where has_database_privilege(datname, 'connect'). 

PS
Select będzie działał na wszystkich bazach danych w obrębie clustra postgresa.
Dobrze skonfigurowany claster postgresa nie powinien jednak pozwolić na zalogowanie się do bazy danych bez uprawnień, pamiętaj, że jeśli łączysz się bez wykorzystania SSL to musisz sobie zdawać sprawę, że średnio zaawansowany użytkownik będzie wstanie poznać wynik działania w/w zapytania.]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2012-09-21T19:41:33Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3721#p3721</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Łączenie z bazą danych]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3720#p3720"/>
			<content type="html"><![CDATA[Cześć. Chce zrobić coś takiego, że łącze się z serwerem bazy i bez wyboru bazy danych. I wtedy jak się połącze selectuje wszystkie bazy do których mam prawa przynajmniej do odczytu.]]></content>
			<author>
				<name><![CDATA[sciepa]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1481</uri>
			</author>
			<updated>2012-09-21T14:28:55Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3720#p3720</id>
		</entry>
</feed>
