我很难弄清楚应该如何在我的 debian 6.0 服务器上安装 PostgreSQL 的 JDBC 驱动程序。我已将驱动程序 .jar 移至以下目录:
/usr/local/pgsql/share/java/postgresql.jar.
然后教程讲到使用这段代码:
Class.forName("org.postgresql.Driver");
但是,由于我是 postgreSQL 新手,我不知道应该把这一行放在哪里,或者这是否正确。
我的问题是,除了将 jar 文件移动到此位置之外,我实际上需要做什么才能在我的 postgreSQL 安装上安装 JDBC 驱动程序?
编辑:这是我的设置:
服务器1: 汤姆猫+SOLR
服务器2: 带有 JDBC 驱动程序的 PostgreSQL
服务器 1 上的 SOLR 通过 JDBC 驱动程序查询服务器 2 上的 postgreSQL
最好将 PostgreSQL 驱动程序安装到 tomcat\lib 文件夹中。只需将驱动程序 jar 复制到 PATH_TO_TOMCAT\lib
向系统 CLASSPATH 添加内容不是一个好主意,因为您可能会陷入类加载器地狱。这是一个如何最终陷入 jar/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
或者您可以将库复制到您的项目结构中。
然后您可以按照教程所述创建连接...
安装所有软件包:
# apt-get install libpostgresql-jdbc-java libpostgresql-jdbc-java-doc
要为所有用户设置 Java 环境,请添加/编辑 /etc/environment:
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
CLASSPATH=".:/usr/share/java/mysql.jar:/usr/share/java/postgresql-jdbc4.jar"
注意:使用您的 JDK 更改 /usr/lib/jvm/java-8-openjdk-amd64
注意:如果您更喜欢使用 postgresql-jdbc3,请将 /usr/share/java/postgresql-jdbc4.jar 替换为 /usr/share/java/postgresql.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());
}
}
}
注意:根据您的配置更改数据库、用户和密码
在您的 IDE(Idea、Eclipse 等)中,您需要将该路径添加为库。
或者,如果您定义了包含该变量的 CLASSPATH 变量,则可以从命令行编译和执行。
export CLASSPATH=/usr/local/pgsql/share/java/postgresql.jar
javac -classpath $CLASSPATH MyDBApp.java
java -cp $CLASSPATH MyDBApp
解决Dbeaver先连接Postgrsql Driver时出现的问题 1.您需要从https://jdbc.postgresql.org/download/链接
下载.jar文件(例如postgresql-42.7.2.jar)然后你必须去“编辑驱动程序”Postgresql
然后单击属性
单击类路径
您将看到+按钮(添加)
并将您本地下载的路径添加到 GlobalLibraries 输入中,(例如 C:\Users\Downloads\postgresql-42.7.2.jar)
7.最后单击应用并关闭按钮
快乐编码)