mirror of https://github.com/postgres/postgres
parent
c5d49902fb
commit
99048aca00
@ -0,0 +1,89 @@ |
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Makefile
|
||||
# Makefile for Java JDBC interface
|
||||
#
|
||||
# IDENTIFICATION
|
||||
# $Header: /cvsroot/pgsql/src/interfaces/jdbc/Attic/Makefile,v 1.1 1997/09/26 08:22:21 scrappy Exp $
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
# These are commented out, but would be included in the postgresql source
|
||||
|
||||
FIND = find
|
||||
JAR = jar
|
||||
JAVA = java
|
||||
JAVAC = javac
|
||||
JAVADOC = javadoc
|
||||
RM = rm -f
|
||||
|
||||
# This defines how to compile a java class
|
||||
.java.class: |
||||
$(JAVAC) $<
|
||||
|
||||
.SUFFIXES: .class .java |
||||
.PHONY: all clean doc |
||||
|
||||
all: postgresql.jar |
||||
|
||||
doc: |
||||
$(JAVADOC) -public postgresql
|
||||
|
||||
OBJS= postgresql/CallableStatement.class \
|
||||
postgresql/Connection.class \
|
||||
postgresql/DatabaseMetaData.class \
|
||||
postgresql/Driver.class \
|
||||
postgresql/Field.class \
|
||||
postgresql/PG_Object.class \
|
||||
postgresql/PG_Stream.class \
|
||||
postgresql/PGbox.class \
|
||||
postgresql/PGcircle.class \
|
||||
postgresql/PGlobj.class \
|
||||
postgresql/PGlseg.class \
|
||||
postgresql/PGpath.class \
|
||||
postgresql/PGpoint.class \
|
||||
postgresql/PGpolygon.class \
|
||||
postgresql/PGtokenizer.class \
|
||||
postgresql/PreparedStatement.class \
|
||||
postgresql/ResultSet.class \
|
||||
postgresql/ResultSetMetaData.class \
|
||||
postgresql/Statement.class
|
||||
|
||||
postgresql.jar: $(OBJS) |
||||
$(JAR) -c0vf $@ $^
|
||||
|
||||
# This rule removes any temporary and compiled files from the source tree.
|
||||
clean: |
||||
$(FIND) . -name "*~" -exec $(RM) {} \;
|
||||
$(FIND) . -name "*.class" -exec $(RM) {} \;
|
||||
$(RM) postgres.jar
|
||||
|
||||
#######################################################################
|
||||
# This helps make workout what classes are from what source files
|
||||
#
|
||||
# Java is unlike C in that one source file can generate several
|
||||
# _Different_ file names
|
||||
#
|
||||
postgresql/CallableStatement.class: postgresql/CallableStatement.java |
||||
postgresql/Connection.class: postgresql/Connection.java |
||||
postgresql/DatabaseMetaData.class: postgresql/DatabaseMetaData.java |
||||
postgresql/Driver.class: postgresql/Driver.java |
||||
postgresql/Field.class: postgresql/Field.java |
||||
postgresql/PG_Object.class: postgresql/PG_Object.java |
||||
postgresql/PG_Stream.class: postgresql/PG_Stream.java |
||||
postgresql/PGbox.class: postgresql/PGbox.java |
||||
postgresql/PGcircle.class: postgresql/PGcircle.java |
||||
postgresql/PGlobj.class: postgresql/PGlobj.java |
||||
postgresql/PGlseg.class: postgresql/PGlseg.java |
||||
postgresql/PGpath.class: postgresql/PGpath.java |
||||
postgresql/PGpoint.class: postgresql/PGpoint.java |
||||
postgresql/PGpolygon.class: postgresql/PGpolygon.java |
||||
postgresql/PGtokenizer.class: postgresql/PGtokenizer.java |
||||
postgresql/PreparedStatement.class: postgresql/PreparedStatement.java |
||||
postgresql/ResultSet.class: postgresql/ResultSet.java |
||||
postgresql/ResultSetMetaData.class: postgresql/ResultSetMetaData.java |
||||
postgresql/Statement.class: postgresql/Statement.java |
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,152 @@ |
||||
This is a simple readme describing how to compile and use the jdbc driver. |
||||
|
||||
This isn't a guide on how to use JDBC - for that refer to Javasoft's web site: |
||||
|
||||
http://www.javasoft.com |
||||
|
||||
or the JDBC mailing list: |
||||
|
||||
jdbc@java.blackdown.org |
||||
|
||||
http://www.blackdown.org |
||||
|
||||
--------------------------------------------------------------------------- |
||||
|
||||
COMPILING |
||||
|
||||
To compile the driver, simply use make in the src/interfaces/jdbc directory. |
||||
This will compile the driver, and build a .jar file (Java ARchive). |
||||
|
||||
REMEMBER: once you have compiled the driver, it will work on ALL platforms |
||||
that support the JDK 1.1 api or later. |
||||
|
||||
That means you don't have to compile it on every platform. Believe me, I |
||||
still hear from people who ask me "I've compiled it ok under Solaris, but it |
||||
won't compile under Linux" - there's no difference. |
||||
|
||||
PS: When you run make, don't worry if you see just one or two calls to javac. |
||||
If, while compiling a class, javac needs another class that's not compiled, |
||||
it will compile it automatically. This reduces the numer of calls to javac |
||||
that make has to do. |
||||
|
||||
--------------------------------------------------------------------------- |
||||
|
||||
INSTALLING THE DRIVER |
||||
|
||||
To install the driver, the .class files have to be in the classpath. This can be |
||||
done in two ways: |
||||
|
||||
1: create a directory "postgresql" (and it must be called this) in the current |
||||
directory (or a directory in the class path), and copy all .class files |
||||
into it. |
||||
|
||||
2: copy the postgres.jar file into a directory, and add it to the classpath. |
||||
|
||||
ie: under LINUX/SOLARIS (the example here is my linux box): |
||||
|
||||
export CLASSPATH=.:/usr/local/lib/postgresql.jar:/usr/local/jdk1.1.1/lib/classes.zip |
||||
|
||||
note: in java, .zip and .jar files hold collections of classes. |
||||
|
||||
--------------------------------------------------------------------------- |
||||
|
||||
USING THE DRIVER |
||||
|
||||
To use the driver, you must introduce it to JDBC. Again, there's two ways |
||||
of doing this: |
||||
|
||||
1: Hardcoded. |
||||
|
||||
This method hardcodes your driver into your application/applet. You |
||||
introduce the driver using the following snippet of code: |
||||
|
||||
try { |
||||
Class.forName("postgresql.Driver"); |
||||
} catch(Exception e) { |
||||
// your error handling code goes here |
||||
} |
||||
|
||||
Remember, this method restricts your code to just the postgresql database. |
||||
|
||||
2: Parameters |
||||
|
||||
This method specifies the driver from the command line. When running the |
||||
application, you specify the driver using the option: |
||||
|
||||
-Djdbc.drivers=postgresql.Driver |
||||
|
||||
eg: This is an example of running one of my other projects with the driver: |
||||
|
||||
java -Djdbc.drivers=postgresql.Driver finder.finder |
||||
|
||||
note: This method only works with Applications (not for Applets). |
||||
However, the application is not tied to one driver, so if you needed |
||||
to switch databases (why I don't know ;-) ), you don't need to |
||||
recompile the application (as long as you havent hardcoded the url's). |
||||
|
||||
--------------------------------------------------------------------------- |
||||
|
||||
JDBC URL syntax |
||||
|
||||
The driver recognises JDBC URL's of the form: |
||||
|
||||
jdbc:postgresql:database |
||||
|
||||
jdbc:postgresql://host/database |
||||
|
||||
jdbc:postgresql://host:port/database |
||||
|
||||
Also, you can supply both username and passwords as arguments, by appending |
||||
them to the URL. eg: |
||||
|
||||
jdbc:postgresql:database?user=me |
||||
jdbc:postgresql:database?user=me&password=mypass |
||||
|
||||
--------------------------------------------------------------------------- |
||||
|
||||
That's the basics related to this driver. You'll need to read the JDBC Docs |
||||
on how to use it. |
||||
|
||||
POSTGRESQL SPECIFICS |
||||
-------------------- |
||||
|
||||
JDBC supports database specific data types using the getObject() call. The |
||||
following types have their own Java equivalents supplied by the driver: |
||||
|
||||
box, circle, lseg, path, point, polygon |
||||
|
||||
When using the getObject() method on a resultset, it returns a PG_Object, |
||||
which holds the postgres type, and its value. This object also supports |
||||
methods to retrive these types. |
||||
|
||||
Eg: column 3 contains a point, and rs is the ResultSet: |
||||
|
||||
PG_Object o = (PG_Object)rs.getObject(3); |
||||
PGpoint p = o.getPoint(); |
||||
System.out.println("point returned x="+p.x+", y="+p.y); |
||||
|
||||
Also, when using these classes, their toString() methods return the correct |
||||
syntax for writing these to the database. |
||||
|
||||
TODO |
||||
---- |
||||
|
||||
Currently only host authentication is supported. Password authentication |
||||
will be in there in a few days. |
||||
|
||||
Incorporating more features from the other driver (esp. in the MetaData's) |
||||
|
||||
Large Object support will also go in there, although it may not be done as |
||||
pure JDBC, but as an extra API. |
||||
|
||||
Producing some documentation with javadoc - not all of the sources have them |
||||
yet. |
||||
|
||||
--------------------------------------------------------------------------- |
||||
|
||||
Peter T Mount, August 30 1997 |
||||
home email: pmount@maidast.demon.co.uk http://www.demon.co.uk/finder |
||||
work email: peter@maidstone.gov.uk http://www.maidstone.gov.uk |
||||
|
||||
Adrian Hall |
||||
email: adrian@hottub.org |
||||
Loading…
Reference in new issue