Thread: My 1st JDBC and PostgreSQL
Following the example in : https://www.tutorialspoint.com/postgresql/postgresql_java.htm I wrote the bellow method : public void connectToDatabase() throws ClassNotFoundException, SQLException { try { this.perr(this.getDatabaseClass()); // org.postgresql.Driver = Class this.perr(this.getDatabaseUrl()); // jdbc:postgresql://localhost:5432/sara.pgdb = url this.perr(this.getUserID()); // chispa = user this.perr(this.getUserPassword()); // 8UUKZW = password Class.forName(this.getDatabaseClass().toString()); conn = DriverManager.getConnection(this.getDatabaseUrl().toString(), this.getUserID().toString(), this.getUserPassword().toString() ); } catch (final SQLException | ClassNotFoundException e) { throw e; } } However, it throws an exception that reads : Exception in thread "main" org.postgresql.util.PSQLException: FATAL: database "sara.pgdb" does not exist In reference to the above web page, it reads : The following Java code shows how to connect to an existing database. If the database does not exist, then it will be created and finally a database object will be returned. True, the database file does not exist, but isn't JDBC supposed to create it? Any help would be much appreciated.
Amn Ojee Uw <amnojeeuw@gmail.com> writes: > https://www.tutorialspoint.com/postgresql/postgresql_java.htm > In reference to the above web page, it reads : > The following Java code shows how to connect to an existing database. If > the database does not exist, then it will be created and finally a > database object will be returned. > True, the database file does not exist, but isn't JDBC supposed to > create it? I think that web page is lying to you. JDBC cannot promise to create a database for you, because (a) if the given database doesn't exist, it would have to guess at some other database to connect to, with no certainty of success; and (b) even if it manages to connect to the server, there's no certainty that you'd have permissions to create a new database. So I don't believe any JDBC driver would even try. regards, tom lane
Postgresql is a sophisticated database server. You can do what you're attempting with something like Derby at the connection. But with Postgresql "you get what you pay for".
1) Insall Postgresql
2) start the database
3) use the interface app psql to create a database;
4) load the JDBC driver in your client and connect.
5) manipulate the database via the JDBC driver.
All these steps are explained quite nicely in the Postgresql documentation you can find at the web site. The JDBC site is separate but a Google search will find it for you.
On Wed, Jul 19, 2023 at 5:37 PM Amn Ojee Uw <amnojeeuw@gmail.com> wrote:
Following the example in :
https://www.tutorialspoint.com/postgresql/postgresql_java.htm
I wrote the bellow method :
public void connectToDatabase() throws ClassNotFoundException,
SQLException {
try {
this.perr(this.getDatabaseClass()); //
org.postgresql.Driver = Class
this.perr(this.getDatabaseUrl()); //
jdbc:postgresql://localhost:5432/sara.pgdb = url
this.perr(this.getUserID()); // chispa = user
this.perr(this.getUserPassword()); // 8UUKZW = password
Class.forName(this.getDatabaseClass().toString());
conn =
DriverManager.getConnection(this.getDatabaseUrl().toString(),
this.getUserID().toString(),
this.getUserPassword().toString() );
} catch (final SQLException | ClassNotFoundException e) {
throw e;
}
}
However, it throws an exception that reads :
Exception in thread "main" org.postgresql.util.PSQLException: FATAL:
database "sara.pgdb" does not exist
In reference to the above web page, it reads :
The following Java code shows how to connect to an existing database. If
the database does not exist, then it will be created and finally a
database object will be returned.
True, the database file does not exist, but isn't JDBC supposed to
create it?
Any help would be much appreciated.
On Wed, Jul 19, 2023 at 8:37 PM Amn Ojee Uw <amnojeeuw@gmail.com> wrote: > > Following the example in : > https://www.tutorialspoint.com/postgresql/postgresql_java.htm > I wrote the bellow method : > > public void connectToDatabase() throws ClassNotFoundException, > SQLException { > try { > this.perr(this.getDatabaseClass()); // > org.postgresql.Driver = Class > this.perr(this.getDatabaseUrl()); // > jdbc:postgresql://localhost:5432/sara.pgdb = url > this.perr(this.getUserID()); // chispa = user > this.perr(this.getUserPassword()); // 8UUKZW = password > > Class.forName(this.getDatabaseClass().toString()); > conn = > DriverManager.getConnection(this.getDatabaseUrl().toString(), > this.getUserID().toString(), > this.getUserPassword().toString() ); > } catch (final SQLException | ClassNotFoundException e) { > throw e; > } > } > > However, it throws an exception that reads : > Exception in thread "main" org.postgresql.util.PSQLException: FATAL: > database "sara.pgdb" does not exist > > In reference to the above web page, it reads : > The following Java code shows how to connect to an existing database. If > the database does not exist, then it will be created and finally a > database object will be returned. > > True, the database file does not exist, but isn't JDBC supposed to > create it? If you are not married to tutorialspoint.com gear, then you can get the Chinook database for testing. Chinook is the free/open source alternative to Microsoft's Northwind database. See https://github.com/lerocha/chinook-database . Jeff
On 7/19/23 18:11, Chuck Davis wrote: > Postgresql is a sophisticated database server. You can do what you're > attempting with something like Derby at the connection. But with > Postgresql "you get what you pay for". Not sure what "you get what you pay for" means in this context? My take is you are differentiating between embedded databases such as Derby and SQLite which are tied to a specific client and client/server databases like Postgres and MySQL which stand alone and are connected to by any number of clients. > 1) Insall Postgresql > 2) start the database > 3) use the interface app psql to create a database; > 4) load the JDBC driver in your client and connect. > 5) manipulate the database via the JDBC driver. > > All these steps are explained quite nicely in the Postgresql > documentation you can find at the web site. The JDBC site is separate > but a Google search will find it for you. > -- Adrian Klaver adrian.klaver@aklaver.com
On 7/19/23 17:37, Amn Ojee Uw wrote: > Following the example in : > https://www.tutorialspoint.com/postgresql/postgresql_java.htm Avoid the site above it will lead you down many false paths. -- Adrian Klaver adrian.klaver@aklaver.com
You get the value you're willing to work for as a general rule. It takes more effort to admin a real SQL server than an easy embedded DB. Your interpretation is spot on.
On Thu, Jul 20, 2023 at 8:18 AM Adrian Klaver <adrian.klaver@aklaver.com> wrote:
On 7/19/23 18:11, Chuck Davis wrote:
> Postgresql is a sophisticated database server. You can do what you're
> attempting with something like Derby at the connection. But with
> Postgresql "you get what you pay for".
Not sure what "you get what you pay for" means in this context?
My take is you are differentiating between embedded databases such as
Derby and SQLite which are tied to a specific client and client/server
databases like Postgres and MySQL which stand alone and are connected to
by any number of clients.
> 1) Insall Postgresql
> 2) start the database
> 3) use the interface app psql to create a database;
> 4) load the JDBC driver in your client and connect.
> 5) manipulate the database via the JDBC driver.
>
> All these steps are explained quite nicely in the Postgresql
> documentation you can find at the web site. The JDBC site is separate
> but a Google search will find it for you.
>
--
Adrian Klaver
adrian.klaver@aklaver.com