命令行編譯jdbc程序(連接postgresql)

本文記錄了,在不使用idea、eclipse等IDE工具的情況下,以純文本方式編寫JDBC代碼及以命令行方式編譯運行程序。

一、在postgresql中創建數據庫和表

這里只顯示創建好的相關信息,具體如何創建不在本文的范疇。

創建的新用戶名:ai,密碼:11235

創建的數據庫名:testdb

創建的表名:student

表student結構如下:

欄位 類型 校對規則 可空的 預設
id integer not null
name text not null
gender character(2)
age integer
class character(10)

如下圖所示:

image-20200124145624506.png

表中插入了一條數據:

id name gender age class
110 謝曉峰 19 高三七班

二、下載PostgreSQL JDBC Driver

前往 https://jdbc.postgresql.org/ 根據自己操作系統及postgresql版本下載相應的驅動。

這里下載的是postgresql-42.2.9.jar

本項目的目錄結構為:

    |--jdbc
    |   |--MyJDBC.java
    |   |--postgresql-42.2.9.jar

三、編寫JDBC代碼

使用文本編輯器(如記事本、notepad++,這里用的是后者)編輯代碼,保存為文件MyJDBC.java

注一:使用notepad++時,如果出現如下編碼錯誤:

image-20200124161313822.png

需要將MyJDBC.java的編碼方式調整為ANSI編碼,如下圖:

image-20200124161507907.png

或者執行javac -encoding utf-8 -cp postgresql-42.2.9.jar MyJDBC.java,即帶上后面的參數

注二:這里的文件名要與代碼中的主類名相同

代碼如下:

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
        // 參數:
        // jdbc協議:postgresql子協議://主機地址:數據庫端口號/要連接的數據庫名
        String url = "jdbc:postgresql://localhost:5432/testdb";
        // 數據庫用戶名
        String user = "ai";
        // 數據庫密碼
        String password = "11235";

        // 1. 加載Driver類,Driver類對象將自動被注冊到DriverManager類中
        try {
            Class.forName("org.postgresql.Driver");
        } catch (ClassNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

        // 2. 連接數據庫,返回連接對象
        try {
            Connection conn = DriverManager.getConnection(url, user, password);
            if (conn.isValid(0))
                System.out.println("connected");
            Statement state = conn.createStatement();
            
            // 4. 發送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中,執行以下命令:

javac -cp postgresql-42.2.9.jar MyJDBC.java
java -cp .;postgresql-42.2.9.jar MyJDBC

得到如下圖結果:

image-20200124151405461.png

注:命令行采用windows的CMD程序,在powershell下可能會出現“找不到主類”的問題

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一. Java基礎部分.................................................
    wy_sure閱讀 3,834評論 0 11
  • 本文基于Spark2.1.0版本 1,先簡單介紹一下通過SparkSQL JDBC連接數據庫的好處,不過這不是本文...
    俺是亮哥閱讀 12,468評論 1 10
  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優秀的...
    笨鳥慢飛閱讀 5,590評論 0 4
  • 一、什么是PostgreSQL? PostgreSQL是一個功能強大的開源對象關系數據庫管理系統(ORDBMS)。...
    超天大圣JR閱讀 1,537評論 0 1
  • 撥開塵封已久的記憶,抬頭望去,墻壁上,正靜靜地躺著一幅已經布滿灰塵的照片。這張照片是前年春節照的,照片上的奶奶頭發...
    碩果蕾蕾閱讀 1,063評論 4 14