我有一个很难的工作如何,我应该我的Debian 6.0服务器上安装PostgreSQL的JDBC驱动程序。 我提出了驱动程序.jar到以下目录:
/usr/local/pgsql/share/java/postgresql.jar.
然后教程说说使用此代码:
Class.forName("org.postgresql.Driver");
然而,由于我是新来PostgreSQL的我不知道,我应该把这个线,或者如果这是正确的,甚至。
我的问题是,短的jar文件移动到这个位置,什么才是我真正需要的,以我的PostgreSQL安装安装JDBC驱动程序呢?
编辑:这是我的设置:
服务器1:Tomcat的+ SOLR
服务器2:与PostgreSQL的JDBC驱动程序
SOLR在服务器1通过JDBC驱动程序的查询,PostgreSQL服务器上的2
最好是你的PostgreSQL驱动程序安装到Tomcat \ lib文件夹。 只需复制司机罐子PATH_TO_TOMCAT \ LIB
它不是东西添加到系统CLASSPATH,因为你可以在类加载器地狱结束一个好主意。 这里是你如何在JAR /类路径地狱结束了一个例子。
- 假设当前应用程序使用的Postgres 9.1和您安装驱动程序在系统CLASSPATH
- 你决定运行那个盒子进行对话的Postgres的较新版本的其他应用程序可以说,9.2版
- 由于您使用的是系统类路径中的应用程序2将最终使用旧的驱动程序,因为系统类路径趋于除非应用程序启动脚本设置CLASSPATH =“优先于一个应用程序的类路径”,以空出系统类路径或使用自定义的类装载器那不父,第一类加载。
见http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html
该驱动程序必须是在你的类路径中。 您可以使用此命令
java -cp /usr/local/pgsql/share/java/postgresql.jar my.app.MainClass
或者你可以将库复制到你的项目结构。
然后,随着教程说,你可以创建连接...
在你的IDE(IDEA,Eclipse的,等等),你需要添加路径作为库。
可替代地,可以编译并从命令行执行,如果定义一个变量CLASSPATH其包括。
export CLASSPATH=/usr/local/pgsql/share/java/postgresql.jar
javac -classpath $CLASSPATH MyDBApp.java
java -cp $CLASSPATH MyDBApp
安装所有的软件包:
# apt-get install libpostgresql-jdbc-java libpostgresql-jdbc-java-doc
设置Java环境为所有用户,添加/编辑/ etc /环境:
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
CLASSPATH=".:/usr/share/java/mysql.jar:/usr/share/java/postgresql-jdbc4.jar"
注 :改变/ usr / lib中/ JVM / JAVA-8的OpenJDK,AMD64与你的JDK
注意 :如果你者优先使用PostgreSQL-JDBC3,与/usr/share/java/postgresql.jar取代/usr/share/java/postgresql-jdbc4.jar
使用此代码测试连接:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
class TestDB {
/*
/usr/share/java
http://dev.mysql.com/doc/connector-j/5.1/en/
https://jdbc.postgresql.org/documentation/documentation.html
*/
static Connection conn = null;
public static void main(String[] args) {
// PostgreSQL
try {
System.out.println("Loading Class org.postgresql.Driver");
Class.forName("org.postgresql.Driver");
System.out.println("Loading org.postgresql.Driver Successful");
String url = "jdbc:postgresql://localhost/database";
Properties props = new Properties();
props.setProperty("user","user");
props.setProperty("password","password");
props.setProperty("ssl","true");
conn = DriverManager.getConnection(url, props);
// or
url = "jdbc:postgresql://localhost/database?user=user&password=password&ssl=true";
Connection conn = DriverManager.getConnection(url);
// Do something with the Connection
System.out.println("Test Connection Successful");
} catch (SQLException ex) {
// handle any errors
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
} catch (ClassNotFoundException ex) {
System.out.println("Class Not Found: " + ex.getMessage());
}
}
}
注 :更改数据库,用户和passwrod您的配置
http://www.garasiku.web.id/web/joomla/index.php/java/112-debian-jessie-installing-openjdk-8-mysql-jdbc-and-postgresql-jdbc