不使用eclipse,使用JDBC在Java应用程序和PostgreSQL之间建立连接(通过命令提示符执行)

首先

作为一名编程教育的讲师,我在对初学者进行教学时,故意不使用集成开发环境,而是让他们理解编程语言的基础知识。因此,我需要提供一个不使用Eclipse,而是能够运行Java应用程序的环境。

阅读这篇文章后可以做的事情

在命令提示符中,您可以使用PostgreSQL的API来运行Java应用程序。

执行环境

我使用以下环境进行执行。

    • OS

Windows10

Javaバージョン

OpenJDK 14.0.2

データベースバージョン

PostgreSQL 12

添加JDBC的jar文件到PostgreSQL。

请启动与安装PostgreSQL相关的附带应用程序”Stack Builder”。

スタックビルダ 4.2.0の起動画面

请从您想要安装的应用程序中选择”pgJDBC vXX.X.XX”。由于这是一个安装程序,您可以选择保存到任何目录。(如果不确定,请保存到下载文件夹。)

スタックビルダ 4.2.0のインストールしたいアプリケーションの選択画面

请打开您在上面下载的“edb_pgjdbc.exe”文件,并添加到jar文件中。
请将其安装在默认的位置(“C:\Program Files (x86)\PostgreSQL\pgJDBC”)并保存。

使用JDBC与PostgreSQL进行连接。

最近,我在进行Java编程时更多地使用集成开发环境(如eclipse)进行开发,很少再使用简单的编辑器(如Sakura Editor)进行实现。(在大学等学习时曾经经常使用…。)在eclipse中经常看到JDBC的使用方法,现在进行复习一下。

在使用JDBC时,需要先创建一个新的Java项目,在项目上单击右键,然后通过以下操作添加JDBC的jar文件。

eclipse新規Javaプロジェクト作成画面

(中文)
选择”构建路径”→”添加外部库…”→”postgresql-XX.X.XX.jar”

ビルドパスの追加後

添加后将显示在包资源管理器中。

eclipseでビルドパスの追加方法

我想执行的源代码

在数据库(restaurantdb)中已经创建了表(menuitems)。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class P5_1 {
   public static void main(String[] args) {

       String url = "jdbc:postgresql://127.0.0.1:5432/restaurantdb";
       String user = "postgres";
       String password = "postgres";
       String sql = "SELECT * FROM menuitems";

       try (Connection connection = DriverManager.getConnection(url, user, password);
           Statement statement = connection.createStatement();
           ResultSet resultSet = statement.executeQuery(sql)) {

           while(resultSet.next()) {
               String id = resultSet.getString(1);
               String name = resultSet.getString(2);
               int price = resultSet.getInt(3);
               String kindId = resultSet.getString(4);
               Boolean isDisabled = resultSet.getBoolean(5);

               System.out.println(id + " " + name + " " + price + " " + kindId + " " + isDisabled);
           }
       } catch (SQLException e) {
           e.printStackTrace();
       }
   }
}

我想要解决在不使用Eclipse的情况下,从Java程序连接数据库时出现错误的问题。

C:\java-programming\JDBCSample>javac P5_1.java

C:\java-programming\JDBCSample>java P5_1
java.sql.SQLException: No suitable driver found for jdbc:postgresql://127.0.0.1:5432/restaurantdb
       at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
       at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
       at P5_1.main(P5_1.java:15)

看起来有两种方法可以解决上述错误:
• 将”CLASSPATH”添加到环境变量中
• 执行时使用执行选项”-cp”

将“CLASSPATH”添加到环境变量中。

在中国有以下一种选择,即向环境变量中添加”CLASSPATH”。
请按照以下方式进行操作:”控制面板”→”系统”→”系统详细设置”→”环境变量”→”用户环境变量”中添加以下内容。
变量名:”CLASSPATH”
值:”C:\Program Files (x86)\PostgreSQL\pgJDBC\postgresql-42.2.12.jar;。”
请注意,值的末尾有一个句点(.)。如果忘记添加句点,可能会导致默认设置的当前目录的类路径无效。
请注意,”postgresql-XX.X.XX.jar”应根据实际情况替换为正确的存储位置和版本号。
如果已经存在”CLASSPATH”,请不要删除现有值,因为这可能会破坏其他环境。请以添加的方式进行编辑。例如,如果已经设置了”C:\XXX\YYY.jar;”,请追加为”C:\XXX\YYY.jar;C:\Program Files (x86)\PostgreSQL\pgJDBC\postgresql-42.2.12.jar;。”(分号是分隔符)。

在执行时加上执行选项“-cp”

如果由于某种原因无法更改环境变量,则可以在运行时添加选项。

举例来说,如果要编译和运行”P5_1.java”,请输入以下命令。

> javac P5_1.java

> java -cp "C:\Program Files (x86)\PostgreSQL\pgJDBC\postgresql-42.2.12.jar;." P5_1

将会显示执行结果。
请注意,在值的末尾有一个句点(.)。如果忘记输入句点,则默认设置的当前目录的类路径可能无效。
请根据实际情况调整”postgresql-XX.X.XX.jar”的存储位置和版本等细节。

总结

这次,我没有使用eclipse,而是从Java程序中调用JDBC的API。
虽然可能很少有机会使用它,但在理解其原理方面尝试一下也是不错的。

非常感谢你。

请参考

    • JDBCインタフェース|PostgreSQL

 

    https://www.postgresql.jp/document/7.4/html/jdbc.html
广告
将在 10 秒后关闭
bannerAds