From: | Brady S Edwards <brady(dot)s(dot)edwards(at)seagate(dot)com> |
---|---|
To: | Lew <noone(at)lewscanon(dot)com> |
Cc: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: O/T: Class.forName(driver) repeatedly? [Was: JDBC parameter binding not working for PL/PGSQL block JDBC3 Version 9.0-801] |
Date: | 2011-04-27 22:44:52 |
Message-ID: | BANLkTimQP2YtJZ6SkDng9Vsz319vUDNb_A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
So, I was just going for a simple quick illustration of the problem
that I was running into. I had a meeting and spent 5 minutes typing up
a very simple example.
The actual code uses tomcat's JNDI based connection pooling which works fine.
For the indent, my tabstop is set to 3 in my editor instead of 8, I
should have expanded the tab's I guess.
The insert statement works.
The trying to prepare an anonymous plpgsql block with a ? (in between
the $$ $$) does not work, the reason for which was helpfully pointed
out by someone else.
Your response does have anything to do with the question I was asking.
I was hoping to find out how (if it's possible) to execute something
like in postgres:
PreparedStatement pStmt = conn.prepareStatement("DECLARE oh
varchar(10); BEGIN oh := ?; END;");
pStmt.setString(1, "Blah");
On Wed, Apr 27, 2011 at 3:39 PM, Lew <noone(at)lewscanon(dot)com> wrote:
> Brady S Edwards wrote:
>>
>> try {
>> System.out.println("Trying to connect");
>> Class.forName ("org.postgresql.Driver");
>> Properties props = new Properties();
>> props.setProperty("user", PG_USER);
>> props.setProperty("password", PG_PASS);
>> Connection pgConn =
>> DriverManager.getConnection(PG_CONN_PROP, props);
>> System.out.println("Looks like connections
>> succeeded\n");
>> PreparedStatement pStmt = pgConn.prepareStatement(
>> "INSERT INTO soo (zoo) values (?)");
>
> This code makes me do a doubletake, and not just because of the ridiculously
> wide TAB-based indentation. Why reload the driver class over and over
> again? Only the first time does anything.
>
> One might wish to take the Sun/Oracle advice:
> "The DriverManager methods getConnection and getDrivers have been enhanced
> to support the Java Standard Edition Service Provider mechanism. JDBC 4.0
> Drivers must include the file META-INF/services/java.sql.Driver. This file
> contains the name of the JDBC drivers implementation of java.sql.Driver. For
> example, to load the my.sql.Driver class, the
> META-INF/services/java.sql.Driver file would contain the entry:
>
> my.sql.Driver
>
> [org.postgresql.Driver]
>
> "Applications no longer need to explictly load JDBC drivers using
> Class.forName(). Existing programs which currently load JDBC drivers using
> Class.forName() will continue to work without modification."
>
> You still don't need 'Class.forName()' more than once per driver if you
> stick to the old way.
>
> Personally I prefer JNDI-based approaches to loading DB drivers. I also
> usually prefer JPA to raw JDBC, but there are times when JDBC is
> unquestionably the better tool.
>
> --
> Lew
> Honi soit qui mal y pense.
> http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg
>
> --
> Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-jdbc
>
--
Brady Edwards
(720) 684-2984
Seagate Technology
From | Date | Subject | |
---|---|---|---|
Next Message | Oliver Jowett | 2011-04-27 23:17:20 | Re: JDBC parameter binding not working for PL/PGSQL block JDBC3 Version 9.0-801 |
Previous Message | Lew | 2011-04-27 21:39:23 | Re: O/T: Class.forName(driver) repeatedly? [Was: JDBC parameter binding not working for PL/PGSQL block JDBC3 Version 9.0-801] |