delete README.md, use README_en/cn instead
This commit is contained in:
203
README
203
README
@ -1,203 +0,0 @@
|
|||||||
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 Oracle's website:
|
|
||||||
|
|
||||||
http://www.oracle.com/technetwork/java/javase/jdbc/
|
|
||||||
|
|
||||||
and the JDBC tutorial:
|
|
||||||
|
|
||||||
http://docs.oracle.com/javase/tutorial/jdbc/
|
|
||||||
|
|
||||||
For problems with this driver, refer to driver's home page:
|
|
||||||
|
|
||||||
http://jdbc.postgresql.org/
|
|
||||||
|
|
||||||
and associated mailing list:
|
|
||||||
|
|
||||||
http://archives.postgresql.org/pgsql-jdbc/
|
|
||||||
|
|
||||||
---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
COMPILING
|
|
||||||
|
|
||||||
Linux:
|
|
||||||
In the top level directory, your can use "sh build.sh -3rd ./open_source/" to build directly.
|
|
||||||
in build.sh, maven and java8 will auto getted and use to build target.
|
|
||||||
|
|
||||||
If you have Java 8 and Maven installed, you can use "sh build_on_windows_git.sh" to build
|
|
||||||
directly.This shell can run in linux or windows git shell.
|
|
||||||
To get build detail info, please read build_on_windows_git.sh's text.
|
|
||||||
NOTICE: in windows git shell, mvn、java、zip、tar、xargs must in PATH.
|
|
||||||
|
|
||||||
This will compile the correct driver for your JVM, and build a .jar file (Java ARchive)
|
|
||||||
called postgresql.jar and opengauss-jdbc-{version}.jar in output/, and you can get
|
|
||||||
openGauss-${version}-JDBC.tar.gz too.
|
|
||||||
NOTICE: postgresql.jar is conflict use with postgres database. because all class was in package org.postgresql.
|
|
||||||
opengauss-jdbc-${version}.jar is compatibility with postgres database, all java package renamed org.opengauss,
|
|
||||||
and jdbc driver is:jdbc:opengauss:/
|
|
||||||
|
|
||||||
REMEMBER: Once you have compiled the driver, it will work on ALL platforms
|
|
||||||
that support that version of the API. You don't need to build it for each
|
|
||||||
platform.
|
|
||||||
|
|
||||||
If you are having problems, prebuilt versions of the driver
|
|
||||||
are available at http://jdbc.postgresql.org/
|
|
||||||
|
|
||||||
---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
INSTALLING THE DRIVER
|
|
||||||
|
|
||||||
To install the driver, the postgresql.jar file has to be in the classpath.
|
|
||||||
|
|
||||||
ie: under LINUX/SOLARIS (the example here is my linux box):
|
|
||||||
|
|
||||||
export CLASSPATH=.:/usr/local/pgsql/share/java/postgresql.jar
|
|
||||||
or export CLASSPATH=.:/usr/local/pgsql/share/java/opengauss-jdbc-${version}.jar
|
|
||||||
|
|
||||||
---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
USING THE DRIVER
|
|
||||||
|
|
||||||
To use the driver, you must introduce it to JDBC. Again, there's two ways
|
|
||||||
of doing this(to compatibility with postgres, all postgresql can replace with opengauss
|
|
||||||
in opengauss-jdbc-${version}.jar):
|
|
||||||
|
|
||||||
1: Hardcoded.
|
|
||||||
|
|
||||||
This method hardcodes your driver into your application/applet. You
|
|
||||||
introduce the driver using the following snippet of code:
|
|
||||||
|
|
||||||
try {
|
|
||||||
Class.forName("org.postgresql.Driver");
|
|
||||||
} catch(Exception e) {
|
|
||||||
// your error handling code goes here
|
|
||||||
}
|
|
||||||
|
|
||||||
Remember, this method restricts your code to just the postgresql database.
|
|
||||||
However, this is how most people load the driver.
|
|
||||||
|
|
||||||
2: Parameters
|
|
||||||
|
|
||||||
This method specifies the driver from the command line. When running the
|
|
||||||
application, you specify the driver using the option:
|
|
||||||
|
|
||||||
-Djdbc.drivers=org.postgresql.Driver
|
|
||||||
|
|
||||||
eg: This is an example of running one of my other projects with the driver:
|
|
||||||
|
|
||||||
java -Djdbc.drivers=org.postgresql.Driver uk.org.retep.finder.Main
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
Notes:
|
|
||||||
|
|
||||||
1) If you are connecting to localhost or 127.0.0.1 you can leave it out of the
|
|
||||||
URL. ie: jdbc:postgresql://localhost/mydb can be replaced with
|
|
||||||
jdbc:postgresql:mydb
|
|
||||||
|
|
||||||
2) The port defaults to 5431 if it's left out.
|
|
||||||
|
|
||||||
---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
That's the basics related to this driver. You'll need to read the JDBC Docs
|
|
||||||
on how to use it.
|
|
||||||
|
|
||||||
---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
BUG REPORTS, PATCHES AND DEVELOPMENT
|
|
||||||
|
|
||||||
PgJDBC development is carried out on the PgJDBC mailing list:
|
|
||||||
|
|
||||||
http://jdbc.postgresql.org/lists.html
|
|
||||||
|
|
||||||
and on GitHub:
|
|
||||||
|
|
||||||
https://github.com/pgjdbc/pgjdbc
|
|
||||||
|
|
||||||
Bug reports
|
|
||||||
-----------
|
|
||||||
|
|
||||||
For bug reports please post on pgsql-jdbc or add a GitHub issue. If you include
|
|
||||||
additional unit tests demonstrating the issue, or self-contained runnable test
|
|
||||||
case including SQL scripts etc that shows the problem, your report is likely to
|
|
||||||
get more attention. Make sure you include appropriate details on your
|
|
||||||
environment, like your JDK version, container/appserver if any, platform,
|
|
||||||
PostgreSQL version, etc. Err on the site of excess detail if in doubt.
|
|
||||||
|
|
||||||
Bug fixes and new features
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
If you've developed a patch you want to propose for inclusion in PgJDBC, feel
|
|
||||||
free to send a GitHub pull request or post the patch on the PgJDBC mailing
|
|
||||||
list. Make sure your patch includes additional unit tests demonstrating and
|
|
||||||
testing any new features. In the case of bug fixes, where possible include a
|
|
||||||
new unit test that failed before the fix and passes after it.
|
|
||||||
|
|
||||||
For information on working with GitHub, see:
|
|
||||||
http://help.github.com/articles/fork-a-repo
|
|
||||||
http://learn.github.com/p/intro.html
|
|
||||||
|
|
||||||
Testing
|
|
||||||
-------
|
|
||||||
|
|
||||||
Remember to test proposed PgJDBC patches when running against older PostgreSQL
|
|
||||||
versions where possible, not just against the PostgreSQL you use yourself.
|
|
||||||
|
|
||||||
You also need to test your changes with older JDKs. PgJDBC must support JDK5
|
|
||||||
("Java 1.5") and newer, which means you can't use annotations, auto-boxing, for
|
|
||||||
(:), and numerous other features added since JDK 5. Code that's JDBC4 specific
|
|
||||||
may use JDK6 features, and code that's JDBC4.1 specific may use JDK7 features.
|
|
||||||
Common code and JDBC3 code needs to stick to Java 1.5.
|
|
||||||
|
|
||||||
Two different versions of PgJDBC can be built, the JDBC 3 and JDBC 4 drivers.
|
|
||||||
The former may be built with JDK 5, while building JDBC4 requires JDK 6 or 7.
|
|
||||||
The driver to build is auto-selected based on the JDK version used to run the
|
|
||||||
build. The best way to test a proposed change with both the JDBC3 and JDBC4
|
|
||||||
drivers is to build and test with both JDK5 and JDK6 or 7.
|
|
||||||
|
|
||||||
You can get old JDK versions from the Oracle Java Archive:
|
|
||||||
|
|
||||||
http://www.oracle.com/technetwork/java/archive-139210.html
|
|
||||||
|
|
||||||
Typically you can test against an old JDK with:
|
|
||||||
|
|
||||||
export JAVA_HOME=/path/to/jdk_1_5
|
|
||||||
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:
|
|
||||||
mvn clean install -PexcludeOsgiFiles
|
|
||||||
|
|
||||||
Ideas
|
|
||||||
-----
|
|
||||||
|
|
||||||
If you have ideas or proposed changes, please post on the mailing list.
|
|
||||||
Think about how the change would affect other users, what side effects it
|
|
||||||
might have, how practical it is to implement, what implications it would
|
|
||||||
have for standards compliance and security, etc.
|
|
||||||
|
|
||||||
Few of the PgJDBC developers have much spare time, so it's unlikely that your
|
|
||||||
idea will be picked up and implemented for you. The best way to make sure a
|
|
||||||
desired feature or improvement happens is to implement it yourself. The PgJDBC
|
|
||||||
sources are reasonably clear and they're pure Java, so it's sometimes easier
|
|
||||||
than you might expect.
|
|
||||||
Reference in New Issue
Block a user