• 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、

  • 相关阅读:
    弹性网卡支持私网多IP
    微服务浪潮中,程序猿如何让自己 Be Cloud Native
    Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力
    如何更高效的管理原生微服务应用
    如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes
    PHP flock文件锁
    MySQL锁(MyISAM和InnoDB)
    汽车操作系统革命:封闭还是开源?
    采集百度top500歌曲,python2.7.2
    关于revision 的cover letter
  • 原文地址:https://www.cnblogs.com/luo630/p/15506397.html
Copyright © 2020-2023  润新知