不使用eclipse,使用JDBC在Java应用程序和PostgreSQL之间建立连接(通过命令提示符执行)
首先
作为一名编程教育的讲师,我在对初学者进行教学时,故意不使用集成开发环境,而是让他们理解编程语言的基础知识。因此,我需要提供一个不使用Eclipse,而是能够运行Java应用程序的环境。
阅读这篇文章后可以做的事情
在命令提示符中,您可以使用PostgreSQL的API来运行Java应用程序。
执行环境
我使用以下环境进行执行。
-
- OS
Windows10
Javaバージョン
OpenJDK 14.0.2
データベースバージョン
PostgreSQL 12
添加JDBC的jar文件到PostgreSQL。
请启动与安装PostgreSQL相关的附带应用程序”Stack Builder”。
请从您想要安装的应用程序中选择”pgJDBC vXX.X.XX”。由于这是一个安装程序,您可以选择保存到任何目录。(如果不确定,请保存到下载文件夹。)
请打开您在上面下载的“edb_pgjdbc.exe”文件,并添加到jar文件中。
请将其安装在默认的位置(“C:\Program Files (x86)\PostgreSQL\pgJDBC”)并保存。
使用JDBC与PostgreSQL进行连接。
最近,我在进行Java编程时更多地使用集成开发环境(如eclipse)进行开发,很少再使用简单的编辑器(如Sakura Editor)进行实现。(在大学等学习时曾经经常使用…。)在eclipse中经常看到JDBC的使用方法,现在进行复习一下。
在使用JDBC时,需要先创建一个新的Java项目,在项目上单击右键,然后通过以下操作添加JDBC的jar文件。
(中文)
选择”构建路径”→”添加外部库…”→”postgresql-XX.X.XX.jar”
添加后将显示在包资源管理器中。
我想执行的源代码
在数据库(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