Thread: JDBC
Hi All, I have been working to make PostgreSQL acessible from java. I have downloaded and instaled the following: - j2sdk-1_4_1_01-linux-i586.bin - jakarta-ant-1.5.1-src.tar.gz and compiled PostgreSQL as: # ./configure --with-java # make # make install The driver (postgresql.jar) was compiled properly, and I have configured some variables: # export CLASSPATH=/usr/local/pgsql/share/java/postgresql.jar:. # export ANT_HOME=/usr/local/ant # export JAVA_HOME=/usr/local/j2sdk1.4.1 # export PATH=${JAVA_HOME}:${PATH}:${ANT_HOME}/bin So I think the environment is almost good, but I can't compile a source that use jdbc. Would you send to me a really simple example java source code using jdbc, acessing a simple table at PostgreSQL? I'm really having problem with this. Thanks in advance and Best Regards, Marcelo Pereira -- Remember that only God and ^[:w saves. __ (_.\ © Marcelo Pereira | / / ___ marcelo@pereira.com | / (_/ _ \__ [Math|99]-IMECC | _______\____/_\___)___Unicamp_______________/
Marcelo Pereira wrote: >Would you send to me a really simple example java source code using jdbc, >acessing a simple table at PostgreSQL > Giving credit where credit is due, this is Mark Liyanage's simple java program, from www.entorpy.ch. It was written for OS X, but there shouldn't be a problem. /* * TestPostgreSQL.java * * * History: * * When Who What * ============================================================================== * 2001-06-23 Marc Liyanage First version * * * License: * * Copyright abandoned 2001 by Marc Liyanage * Do with this whatever you want. * */ import java.sql.*; /** * The TestPostgreSQL class shows how to access the PostgreSQL * DB server on Mac OS X using the JDBC interface. * It assumes the installation has been performed according * to the instructions at http://www.entropy.ch/software/macosx/postgresql. * * * You compile it like this: * * % javac TestPostgreSQL.java * * Make sure that the PostgreSQL server has been * started with the -i flag. This is not the case in * the example lines of the installation instructions mentioned * above and in the StartupItem package that's available * from the same location. The -i flag tells the DB server * to listen for connection requests from the network * and I have left it off by default for security reasons. * * If the server is running correctly (with -i), run the Test like this: * (in the same directory where you compiled the example) * * % java -classpath /usr/local/pgsql/share/java/postgresql.jar:. TestPostgreSQL * * You should see the current date as returned by the DB server: * * 2001-06-23 16:31:49+02 * * * @author Marc Liyanage * @version 1.0 */ public class TestPostgreSQL { public static void main(String argv[]) throws Exception { // Load the driver class // Class.forName("org.postgresql.Driver"); // Try to connect to the DB server. // We tell JDBC to use the "postgresql" driver // and to connect to the "template1" database // which should always exist in PostgreSQL. // We use the username "postgres" and no // password to connect. Since we're not accessing // any tables but only an SQL function // this should work. // Connection conn = DriverManager.getConnection( "jdbc:postgresql:template1", "postgres", "" ); // Set up and run a query that fetches // the current date using the "now()" PostgreSQL function. // Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery("SELECT now();"); // Iterate through the rows of the result set // (obviously only one row in this example) and // print each one. // while (rset.next()) { System.out.println(rset.getString(1)); } // Close result set, statement and DB connection // rset.close(); stmt.close(); conn.close(); } }
Hi Jeffrey, Thanks for your example code. I have compiled it without any problem, but when I try to run I have the following: $ javac TestPostgreSQL.java $ java TestPostgreSQL.class Exception in thread "main" java.lang.NoClassDefFoundError: TestPostgreSQL/class $ java -classpath /usr/local/pgsql/share/java/postgresql.jar:. TestPostgreSQL.class Exception in thread "main" java.lang.NoClassDefFoundError: TestPostgreSQL/class $ export CLASSPATH=/usr/local/pgsql/share/java/postgresql.jar:. $ java TestPostgreSQL.class Exception in thread "main" java.lang.NoClassDefFoundError: TestPostgreSQL/class As you can see I have this problem, whatever I try to do. So I thought my JDBC driver wasn't properly compiled, so I have downloaded the 7.3 JDBC driver from PostgreSQL.org (pg73jdbc1.jar) and run all the tests above, always with the same problem. What am I doing wrong?? Thanks in advance and Best Regards, Marcelo Pereira -- Remember that only God and ^[:w saves. __ (_.\ © Marcelo Pereira | / / ___ marcelo@pereira.com | / (_/ _ \__ [Math|99]-IMECC | _______\____/_\___)___Unicamp_______________/ --- Jeffrey Melloy, with his fast fingers, wrote: :> Marcelo Pereira wrote: :> :> >Would you send to me a really simple example java source code using jdbc, :> >acessing a simple table at PostgreSQL :> > :> :> Giving credit where credit is due, this is Mark Liyanage's simple java :> program, from www.entorpy.ch. It was written for OS X, but there :> shouldn't be a problem. :> :> /* :> * TestPostgreSQL.java :> * :> * :> * History: :> * :> * When Who What :> * ============================================================================== :> * 2001-06-23 Marc Liyanage First version :> * :> * :> * License: :> * :> * Copyright abandoned 2001 by Marc Liyanage :> * Do with this whatever you want. :> * :> */ :> :> import java.sql.*; :> :> /** :> * The TestPostgreSQL class shows how to access the PostgreSQL :> * DB server on Mac OS X using the JDBC interface. :> * It assumes the installation has been performed according :> * to the instructions at http://www.entropy.ch/software/macosx/postgresql. :> * :> * :> * You compile it like this: :> * :> * % javac TestPostgreSQL.java :> * :> * Make sure that the PostgreSQL server has been :> * started with the -i flag. This is not the case in :> * the example lines of the installation instructions mentioned :> * above and in the StartupItem package that's available :> * from the same location. The -i flag tells the DB server :> * to listen for connection requests from the network :> * and I have left it off by default for security reasons. :> * :> * If the server is running correctly (with -i), run the Test like this: :> * (in the same directory where you compiled the example) :> * :> * % java -classpath /usr/local/pgsql/share/java/postgresql.jar:. TestPostgreSQL :> * :> * You should see the current date as returned by the DB server: :> * :> * 2001-06-23 16:31:49+02 :> * :> * :> * @author Marc Liyanage :> * @version 1.0 :> */ :> public class TestPostgreSQL { :> :> :> public static void main(String argv[]) throws Exception { :> :> // Load the driver class :> // :> Class.forName("org.postgresql.Driver"); :> :> // Try to connect to the DB server. :> // We tell JDBC to use the "postgresql" driver :> // and to connect to the "template1" database :> // which should always exist in PostgreSQL. :> // We use the username "postgres" and no :> // password to connect. Since we're not accessing :> // any tables but only an SQL function :> // this should work. :> // :> Connection conn = DriverManager.getConnection( :> "jdbc:postgresql:template1", :> "postgres", :> "" :> ); :> :> // Set up and run a query that fetches :> // the current date using the "now()" PostgreSQL function. :> // :> Statement stmt = conn.createStatement(); :> ResultSet rset = stmt.executeQuery("SELECT now();"); :> :> // Iterate through the rows of the result set :> // (obviously only one row in this example) and :> // print each one. :> // :> while (rset.next()) { :> System.out.println(rset.getString(1)); :> } :> :> // Close result set, statement and DB connection :> // :> rset.close(); :> stmt.close(); :> conn.close(); :> :> } :> :> :> } :> :> :> :> :> :> :> ---------------------------(end of broadcast)--------------------------- :> TIP 6: Have you searched our list archives? :> :> http://archives.postgresql.org :>
Marcelo, Just type java TestPostreSQL to run it Dave On Wed, 2003-01-15 at 08:08, Marcelo Pereira wrote: > Hi Jeffrey, > > Thanks for your example code. I have compiled it without any problem, but > when I try to run I have the following: > > $ javac TestPostgreSQL.java > $ java TestPostgreSQL.class > Exception in thread > "main" java.lang.NoClassDefFoundError: TestPostgreSQL/class > > $ java -classpath > /usr/local/pgsql/share/java/postgresql.jar:. TestPostgreSQL.class > Exception in thread > "main" java.lang.NoClassDefFoundError: TestPostgreSQL/class > > $ export CLASSPATH=/usr/local/pgsql/share/java/postgresql.jar:. > $ java TestPostgreSQL.class > Exception in thread > "main" java.lang.NoClassDefFoundError: TestPostgreSQL/class > > As you can see I have this problem, whatever I try to do. So I thought my > JDBC driver wasn't properly compiled, so I have downloaded the 7.3 JDBC > driver from PostgreSQL.org (pg73jdbc1.jar) and run all the tests above, > always with the same problem. > > What am I doing wrong?? > > Thanks in advance and > Best Regards, > > Marcelo Pereira > > -- Remember that only God and ^[:w saves. > __ > (_.\ © Marcelo Pereira | > / / ___ marcelo@pereira.com | > / (_/ _ \__ [Math|99]-IMECC | > _______\____/_\___)___Unicamp_______________/ > > --- Jeffrey Melloy, with his fast fingers, wrote: > > :> Marcelo Pereira wrote: > :> > :> >Would you send to me a really simple example java source code using jdbc, > :> >acessing a simple table at PostgreSQL > :> > > :> > :> Giving credit where credit is due, this is Mark Liyanage's simple java > :> program, from www.entorpy.ch. It was written for OS X, but there > :> shouldn't be a problem. > :> > :> /* > :> * TestPostgreSQL.java > :> * > :> * > :> * History: > :> * > :> * When Who What > :> * ============================================================================== > :> * 2001-06-23 Marc Liyanage First version > :> * > :> * > :> * License: > :> * > :> * Copyright abandoned 2001 by Marc Liyanage > :> * Do with this whatever you want. > :> * > :> */ > :> > :> import java.sql.*; > :> > :> /** > :> * The TestPostgreSQL class shows how to access the PostgreSQL > :> * DB server on Mac OS X using the JDBC interface. > :> * It assumes the installation has been performed according > :> * to the instructions at http://www.entropy.ch/software/macosx/postgresql. > :> * > :> * > :> * You compile it like this: > :> * > :> * % javac TestPostgreSQL.java > :> * > :> * Make sure that the PostgreSQL server has been > :> * started with the -i flag. This is not the case in > :> * the example lines of the installation instructions mentioned > :> * above and in the StartupItem package that's available > :> * from the same location. The -i flag tells the DB server > :> * to listen for connection requests from the network > :> * and I have left it off by default for security reasons. > :> * > :> * If the server is running correctly (with -i), run the Test like this: > :> * (in the same directory where you compiled the example) > :> * > :> * % java -classpath /usr/local/pgsql/share/java/postgresql.jar:. TestPostgreSQL > :> * > :> * You should see the current date as returned by the DB server: > :> * > :> * 2001-06-23 16:31:49+02 > :> * > :> * > :> * @author Marc Liyanage > :> * @version 1.0 > :> */ > :> public class TestPostgreSQL { > :> > :> > :> public static void main(String argv[]) throws Exception { > :> > :> // Load the driver class > :> // > :> Class.forName("org.postgresql.Driver"); > :> > :> // Try to connect to the DB server. > :> // We tell JDBC to use the "postgresql" driver > :> // and to connect to the "template1" database > :> // which should always exist in PostgreSQL. > :> // We use the username "postgres" and no > :> // password to connect. Since we're not accessing > :> // any tables but only an SQL function > :> // this should work. > :> // > :> Connection conn = DriverManager.getConnection( > :> "jdbc:postgresql:template1", > :> "postgres", > :> "" > :> ); > :> > :> // Set up and run a query that fetches > :> // the current date using the "now()" PostgreSQL function. > :> // > :> Statement stmt = conn.createStatement(); > :> ResultSet rset = stmt.executeQuery("SELECT now();"); > :> > :> // Iterate through the rows of the result set > :> // (obviously only one row in this example) and > :> // print each one. > :> // > :> while (rset.next()) { > :> System.out.println(rset.getString(1)); > :> } > :> > :> // Close result set, statement and DB connection > :> // > :> rset.close(); > :> stmt.close(); > :> conn.close(); > :> > :> } > :> > :> > :> } > :> > :> > :> > :> > :> > :> > :> ---------------------------(end of broadcast)--------------------------- > :> TIP 6: Have you searched our list archives? > :> > :> http://archives.postgresql.org > :> > > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org -- Dave Cramer <Dave@micro-automation.net>
Hi Jeffrey, Dave and All, Thanks for your answer, I got it running! Thanks and Best Regards, Marcelo Pereira -- Remember that only God and ^[:w saves. __ (_.\ © Marcelo Pereira | / / ___ marcelo@pereira.com | / (_/ _ \__ [Math|99]-IMECC | _______\____/_\___)___Unicamp_______________/ --- Dave Cramer, with his fast fingers, wrote: :> Marcelo, :> :> Just type :> :> java TestPostreSQL :> :> to run it :> :> Dave :> On Wed, 2003-01-15 at 08:08, Marcelo Pereira wrote: :> > Hi Jeffrey, :> > :> > Thanks for your example code. I have compiled it without any problem, but :> > when I try to run I have the following: :> > :> > $ javac TestPostgreSQL.java :> > $ java TestPostgreSQL.class :> > Exception in thread :> > "main" java.lang.NoClassDefFoundError: TestPostgreSQL/class :> > :> > $ java -classpath :> > /usr/local/pgsql/share/java/postgresql.jar:. TestPostgreSQL.class :> > Exception in thread :> > "main" java.lang.NoClassDefFoundError: TestPostgreSQL/class :> > :> > $ export CLASSPATH=/usr/local/pgsql/share/java/postgresql.jar:. :> > $ java TestPostgreSQL.class :> > Exception in thread :> > "main" java.lang.NoClassDefFoundError: TestPostgreSQL/class :> > :> > As you can see I have this problem, whatever I try to do. So I thought my :> > JDBC driver wasn't properly compiled, so I have downloaded the 7.3 JDBC :> > driver from PostgreSQL.org (pg73jdbc1.jar) and run all the tests above, :> > always with the same problem. :> > :> > What am I doing wrong?? :> > :> > Thanks in advance and :> > Best Regards, :> > :> > Marcelo Pereira :> > :> > -- Remember that only God and ^[:w saves. :> > __ :> > (_.\ © Marcelo Pereira | :> > / / ___ marcelo@pereira.com | :> > / (_/ _ \__ [Math|99]-IMECC | :> > _______\____/_\___)___Unicamp_______________/ :> > :> > --- Jeffrey Melloy, with his fast fingers, wrote: :> > :> > :> Marcelo Pereira wrote: :> > :> :> > :> >Would you send to me a really simple example java source code using jdbc, :> > :> >acessing a simple table at PostgreSQL :> > :> > :> > :> :> > :> Giving credit where credit is due, this is Mark Liyanage's simple java :> > :> program, from www.entorpy.ch. It was written for OS X, but there :> > :> shouldn't be a problem. :> > :> :> > :> /* :> > :> * TestPostgreSQL.java :> > :> * :> > :> * :> > :> * History: :> > :> * :> > :> * When Who What :> > :> * ============================================================================== :> > :> * 2001-06-23 Marc Liyanage First version :> > :> * :> > :> * :> > :> * License: :> > :> * :> > :> * Copyright abandoned 2001 by Marc Liyanage :> > :> * Do with this whatever you want. :> > :> * :> > :> */ :> > :> :> > :> import java.sql.*; :> > :> :> > :> /** :> > :> * The TestPostgreSQL class shows how to access the PostgreSQL :> > :> * DB server on Mac OS X using the JDBC interface. :> > :> * It assumes the installation has been performed according :> > :> * to the instructions at http://www.entropy.ch/software/macosx/postgresql. :> > :> * :> > :> * :> > :> * You compile it like this: :> > :> * :> > :> * % javac TestPostgreSQL.java :> > :> * :> > :> * Make sure that the PostgreSQL server has been :> > :> * started with the -i flag. This is not the case in :> > :> * the example lines of the installation instructions mentioned :> > :> * above and in the StartupItem package that's available :> > :> * from the same location. The -i flag tells the DB server :> > :> * to listen for connection requests from the network :> > :> * and I have left it off by default for security reasons. :> > :> * :> > :> * If the server is running correctly (with -i), run the Test like this: :> > :> * (in the same directory where you compiled the example) :> > :> * :> > :> * % java -classpath /usr/local/pgsql/share/java/postgresql.jar:. TestPostgreSQL :> > :> * :> > :> * You should see the current date as returned by the DB server: :> > :> * :> > :> * 2001-06-23 16:31:49+02 :> > :> * :> > :> * :> > :> * @author Marc Liyanage :> > :> * @version 1.0 :> > :> */ :> > :> public class TestPostgreSQL { :> > :> :> > :> :> > :> public static void main(String argv[]) throws Exception { :> > :> :> > :> // Load the driver class :> > :> // :> > :> Class.forName("org.postgresql.Driver"); :> > :> :> > :> // Try to connect to the DB server. :> > :> // We tell JDBC to use the "postgresql" driver :> > :> // and to connect to the "template1" database :> > :> // which should always exist in PostgreSQL. :> > :> // We use the username "postgres" and no :> > :> // password to connect. Since we're not accessing :> > :> // any tables but only an SQL function :> > :> // this should work. :> > :> // :> > :> Connection conn = DriverManager.getConnection( :> > :> "jdbc:postgresql:template1", :> > :> "postgres", :> > :> "" :> > :> ); :> > :> :> > :> // Set up and run a query that fetches :> > :> // the current date using the "now()" PostgreSQL function. :> > :> // :> > :> Statement stmt = conn.createStatement(); :> > :> ResultSet rset = stmt.executeQuery("SELECT now();"); :> > :> :> > :> // Iterate through the rows of the result set :> > :> // (obviously only one row in this example) and :> > :> // print each one. :> > :> // :> > :> while (rset.next()) { :> > :> System.out.println(rset.getString(1)); :> > :> } :> > :> :> > :> // Close result set, statement and DB connection :> > :> // :> > :> rset.close(); :> > :> stmt.close(); :> > :> conn.close(); :> > :> :> > :> } :> > :> :> > :> :> > :> } :> > :> :> > :> :> > :> :> > :> :> > :> :> > :> :> > :> ---------------------------(end of broadcast)--------------------------- :> > :> TIP 6: Have you searched our list archives? :> > :> :> > :> http://archives.postgresql.org :> > :> :> > :> > :> > ---------------------------(end of broadcast)--------------------------- :> > TIP 6: Have you searched our list archives? :> > :> > http://archives.postgresql.org :> -- :> Dave Cramer <Dave@micro-automation.net> :> :> :> ---------------------------(end of broadcast)--------------------------- :> TIP 2: you can get off all lists at once with the unregister command :> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) :>