PostgreSQL基礎CRUD

PostgreSQL 10.18

Spring Boot 2.5.3

postgresql-42.2.23.jar

--

 

建立 Spring Boot項目,選擇 依賴包:PostgreSQL Driver等。

<dependency>
  <groupId>org.postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <scope>runtime</scope>
</dependency>

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <optional>true</optional>
</dependency>

https://start.spring.io/ 選擇依賴包:

 

檢查postgresql依賴包:

 

添加數據庫、數據表,測試基礎的CRUD:

-- PostgreSQL 10.18 on Windows 10
-- 創建數據庫 lib1
create database lib1;

-- 創建表 tab1
create table tab1(name varchar(100), age integer, id bigint generated by default as identity primary key);

使用psql命令進入 PostgreSQL控制檯 再執行腳本 或  使用pgAdmin工具。

 

測試程序:

/**
 * 手動連接數據庫
 * @author ben
 * @date 2021-11-03 22:54:35 CST
 */
@Component
public class DbConn implements ApplicationRunner {

	@Override
	public void run(ApplicationArguments args) throws Exception {
		Connection conn = null;
		Statement stmt = null;
		
		// 屬性
		String url = "jdbc:postgresql://localhost:5432/lib1";
		String uname = "postgres";
		String pwd = "123456";
		
		Class.forName("org.postgresql.Driver");
		
		conn = DriverManager.getConnection(url, uname, pwd);
		System.out.println("數據庫連接成功!conn=" + conn);
		
		// 試驗 CRUD
		
		stmt = conn.createStatement();
		System.out.println("stmt=" + stmt);
		
		// 成功:新增語句,返回false
		boolean ret1 = stmt.execute("INSERT INTO tab1(name,age) VALUES ('s.boot." + System.currentTimeMillis() + "', 20);");
		System.out.println("ret1=" + ret1);
		
		// 停頓下,去查詢數據庫
		TimeUnit.SECONDS.sleep(5);
		
		ResultSet rs = stmt.executeQuery("SELECT id,name,age FROM tab1;");
		System.out.println("rs=" + rs);
		while(rs.next()) {
			Tab1 t = new Tab1();
			// 從1開始
			t.setId(rs.getLong(1));
			t.setName(rs.getString(2));
			t.setAge(rs.getInt(3));
			System.out.println("record=" + t);
		}
		rs.close();
		System.out.println("rs closed=" + rs);
		
		TimeUnit.SECONDS.sleep(5);
		
		// 修改
		// 語法:UPDATE [ ONLY ] 表名 [ * ] [ [ AS ] 別名 ] ... 
//		int ret3 = stmt.executeUpdate("UPDATE TABLE tab1 SET name = 's.boot.modified' WHERE id = 3;");
		int ret3 = stmt.executeUpdate("UPDATE tab1 SET name = 's.boot.modified' WHERE id = 3;");
		System.out.println("ret3=" + ret3);

		TimeUnit.SECONDS.sleep(5);
		
		// 刪除
		int ret4 = stmt.executeUpdate("DELETE FROM tab1 WHERE id = 3;");
		System.out.println("ret4=" + ret4);
		
		TimeUnit.SECONDS.sleep(5);
		
		stmt.close();
		System.out.println("stmt closed=" + rs);
		
		conn.close();
		System.out.println("關閉數據庫連接!conn=" + conn);
	}
	
	/**
	 * 對應數據表 tab1
	 * @author ben
	 * @date 2021-11-03 23:21:12 CST
	 */
	@Data
	private static class Tab1 {
		
		private Long id;
		
		private String name;
		
		private Integer age;
		
	}
	
}

說明,

1、中間的休眠是爲了 查看數據:

SELECT * FROM tab1;

2、根據id更新、刪除 需要修改纔行;

3、對於不清楚的SQL命令,使用 \h 和 \h + 命令 學習;

 

繼續前進:

1、使用mybatis、mybatis-plus操作PostgreSQL;

2、使用Druid;

 

參考文檔

1、JAVA連接PostgreSQL數據庫

注:開通VIP解鎖文章。

可見內容對於本文來說已經足夠了,感謝。

2、

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章