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;
參考文檔
注:開通VIP解鎖文章。
可見內容對於本文來說已經足夠了,感謝。
2、