首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL -安装JDBC驱动程序

PostgreSQL -安装JDBC驱动程序
EN

Stack Overflow用户
提问于 2012-12-13 12:36:30
回答 4查看 45.3K关注 0票数 11

我很难确定如何在Debian6.0服务器上安装PostgreSQL的JDBC驱动程序。我已经将驱动程序.jar移至以下目录:

代码语言:javascript
复制
/usr/local/pgsql/share/java/postgresql.jar. 

然后,教程将讨论如何使用以下代码:

代码语言:javascript
复制
Class.forName("org.postgresql.Driver");

但是,由于我是postgreSQL新手,所以我不知道该把这一行放在哪里,或者这是否正确。

我的问题是,除了将jar文件移到这个位置之外,我实际上需要做什么才能在我的postgreSQL安装上安装JDBC驱动程序呢?

编辑:这是我的设置:

服务器1: Tomcat + SOLR

服务器2:带有JDBC驱动程序的 PostgreSQL

服务器1上的SOLR通过JDBC驱动程序在服务器2上查询postgreSQL。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-13 19:30:05

最好将PostgreSQL驱动程序安装到tomcat\lib文件夹中。只需将驱动程序jar复制到PATH_TO_TOMCAT\lib

向系统CLASSPATH添加内容不是一个好主意,因为您可以在类加载器地狱中结束。下面是一个例子,说明如何在jar /类路径地狱中结束。

  • 假设当前的应用程序使用Postgres9.1,然后在系统CLASSPATH上安装驱动程序
  • 您决定在该框上运行另一个应用程序,该应用程序与较新版本的postgres对话,如9.2版
  • 因为您正在使用系统类路径应用程序2将最终使用旧的驱动程序,因为系统类路径往往优先于应用程序类路径,除非应用程序启动程序脚本设置CLASSPATH=来清空系统类路径,或者使用不执行父类一级加载的自定义类加载程序。

请参阅http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html

票数 7
EN

Stack Overflow用户

发布于 2012-12-13 12:41:19

那个司机一定在你的类路径上。您可以使用以下命令

代码语言:javascript
复制
java -cp /usr/local/pgsql/share/java/postgresql.jar my.app.MainClass

也可以将库复制到项目结构中。

然后你就可以像教程说的那样建立联系..。

票数 3
EN

Stack Overflow用户

发布于 2016-11-01 04:33:43

安装所有软件包:

代码语言:javascript
复制
# apt-get install libpostgresql-jdbc-java libpostgresql-jdbc-java-doc

若要为所有用户设置Java环境,请添加/编辑/etc/ Environment:

代码语言:javascript
复制
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-AMD 64

注意事项:如果您更喜欢使用postgresql.jar 3,将/usr//java/PostgreSQLjdbc4.jar替换为/usr//java/postgresql.jar

使用以下代码测试连接:

代码语言:javascript
复制
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());

      }

   }

}

备注:使用配置更改数据库、用户和密码

http://www.garasiku.web.id/web/joomla/index.php/java/112-debian-jessie-installing-openjdk-8-mysql-jdbc-and-postgresql-jdbc

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13860024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档