本文記錄了谢肾,在不使用idea睁冬、eclipse等IDE工具的情況下囤躁,以純文本方式編寫JDBC代碼及以命令行方式編譯運行程序乃秀。
一契邀、在postgresql中創(chuàng)建數(shù)據(jù)庫和表
這里只顯示創(chuàng)建好的相關信息耀里,具體如何創(chuàng)建不在本文的范疇呛每。
創(chuàng)建的新用戶名:ai扁掸,密碼:11235
創(chuàng)建的數(shù)據(jù)庫名:testdb
創(chuàng)建的表名:student
表student結構如下:
欄位 | 類型 | 校對規(guī)則 | 可空的 | 預設 |
---|---|---|---|---|
id | integer | not null | ||
name | text | not null | ||
gender | character(2) | |||
age | integer | |||
class | character(10) |
如下圖所示:
表中插入了一條數(shù)據(jù):
id | name | gender | age | class |
---|---|---|---|---|
110 | 謝曉峰 | 男 | 19 | 高三七班 |
二回窘、下載PostgreSQL JDBC Driver
前往 https://jdbc.postgresql.org/ 根據(jù)自己操作系統(tǒng)及postgresql版本下載相應的驅動诺擅。
這里下載的是postgresql-42.2.9.jar。
本項目的目錄結構為:
|--jdbc
| |--MyJDBC.java
| |--postgresql-42.2.9.jar
三啡直、編寫JDBC代碼
使用文本編輯器(如記事本烁涌、notepad++,這里用的是后者)編輯代碼酒觅,保存為文件MyJDBC.java撮执。
注一:使用notepad++時,如果出現(xiàn)如下編碼錯誤:
需要將MyJDBC.java的編碼方式調整為ANSI編碼舷丹,如下圖:
或者執(zhí)行javac -encoding utf-8 -cp postgresql-42.2.9.jar MyJDBC.java抒钱,即帶上后面的參數(shù)注二:這里的文件名要與代碼中的主類名相同
代碼如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MyJDBC {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 參數(shù):
// jdbc協(xié)議:postgresql子協(xié)議://主機地址:數(shù)據(jù)庫端口號/要連接的數(shù)據(jù)庫名
String url = "jdbc:postgresql://localhost:5432/testdb";
// 數(shù)據(jù)庫用戶名
String user = "ai";
// 數(shù)據(jù)庫密碼
String password = "11235";
// 1. 加載Driver類,Driver類對象將自動被注冊到DriverManager類中
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// 2. 連接數(shù)據(jù)庫,返回連接對象
try {
Connection conn = DriverManager.getConnection(url, user, password);
if (conn.isValid(0))
System.out.println("connected");
Statement state = conn.createStatement();
// 4. 發(fā)送SQL語句谋币,返回該查詢生成的ResultSet對象
String sql = "select * from student;";
ResultSet rs = state.executeQuery(sql);
// 5. 遍歷查詢結果
while(rs.next()) {
String sid = rs.getString("id");
String sname = rs.getString("name");
String sgender = rs.getString("gender");
String sage = rs.getString("age");
String sclass = rs.getString("class");
System.out.println("Sid:" + sid + ", Sname:" + sname +
", sGender:" + sgender + ", Sage:" + sage + ", Sclass:" + sclass);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
四仗扬、編譯與運行程序
打開windows的“命令提示符”,切換到文件夾jdbc中蕾额,執(zhí)行以下命令:
javac -cp postgresql-42.2.9.jar MyJDBC.java
java -cp .;postgresql-42.2.9.jar MyJDBC
得到如下圖結果:
注:命令行采用windows的CMD程序早芭,在powershell下可能會出現(xiàn)“找不到主類”的問題