postgresql安装,java简单使用postgresql

一 整合

由于本人的学过的技术太多太乱了,于是决定一个一个的整合到一个springboot项目里面。

附上自己的github项目地址 https://github.com/247292980/spring-boot

以整合功能

spring-boot,FusionChart,thymeleaf,vue,ShardingJdbc,mybatis-generator,微信分享授权,drools,spring-security,spring-jpa,webjars,Aspect,drools-drt,rabbitmq,zookeeper,mongodb,mysql存储过程,前端的延迟加载,netty

这次就来整合下postgresql

二 安装

postgresql了解的主要原因是因为腾讯很多招聘都有要求,那么不管怎么说crud折腾一次是必要的

但是这玩意好像他们都不更新几年了....

安装没什么难的,安装程序点下去就是了

就是有几个坑

1.这里输入框没用户名,用户名在描述里面,而且没高亮等。用户名 postgres,这里我点下去安装成功硬是不知道用户名是什么,然后百度了一番....

2.选环境,具体影响什么我不知道,但是上网看到C是没环境,所以我选了C。

虽然里面有中文的选项,但是既然是程序员,大家都知道中文版是有多坑,所以我第一反应就无视,有成功的话,留言科普下吧。

三 代码

public class PostgresqlConnect {
    static String url = "jdbc:postgresql://127.0.0.1:5432/test";
    static String usr = "postgres";
    static String psd = "123456";


    public static void main(String args[]) {
        Connection c = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
            Class.forName("org.postgresql.Driver");
            c = DriverManager
                    .getConnection(url,
                            usr, psd);
            System.out.println("Opened database test");
            String sql = "";
//            stmt = c.createStatement();
//             sql = "CREATE TABLE COMPANY " +
//                    "(ID INT PRIMARY KEY     NOT NULL," +
//                    " NAME           TEXT    NOT NULL, " +
//                    " AGE            INT     NOT NULL, " +
//                    " ADDRESS        CHAR(50), " +
//                    " SALARY         REAL)";
//            stmt.executeUpdate(sql);
//            System.out.println("CREATE TABLE COMPANY");

//            stmt = c.createStatement();
//             sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "
//                    + "VALUES (1, 'Paul', 32, 'California', 20000.00 );";
//            stmt.executeUpdate(sql);
//
//            sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "
//                    + "VALUES (2, 'Allen', 25, 'Texas', 15000.00 );";
//            stmt.executeUpdate(sql);
//
//            sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "
//                    + "VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );";
//            stmt.executeUpdate(sql);
//
//            sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "
//                    + "VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );";
//            stmt.executeUpdate(sql);
//            System.out.println("insert data end");


//            stmt = c.createStatement();
//            ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;");
//            while (rs.next()) {
//                int id = rs.getInt("id");
//                String name = rs.getString("name");
//                int age = rs.getInt("age");
//                String address = rs.getString("address");
//                float salary = rs.getFloat("salary");
//                System.out.println("ID = " + id);
//                System.out.println("NAME = " + name);
//                System.out.println("AGE = " + age);
//                System.out.println("ADDRESS = " + address);
//                System.out.println("SALARY = " + salary);
//                System.out.println();
//            }
//            System.out.println("select data end");

            stmt = c.createStatement();
            sql = "UPDATE COMPANY set SALARY = 21000.00 where ID=1;";
            stmt.executeUpdate(sql);
//            c.commit();

            rs = stmt.executeQuery("SELECT * FROM COMPANY where ID=1;");
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                int age = rs.getInt("age");
                String address = rs.getString("address");
                float salary = rs.getFloat("salary");
                System.out.println("ID = " + id);
                System.out.println("NAME = " + name);
                System.out.println("AGE = " + age);
                System.out.println("ADDRESS = " + address);
                System.out.println("SALARY = " + salary);
                System.out.println();
            }
            System.out.println("update data end");

            stmt = c.createStatement();
             sql = "DELETE from COMPANY where ID=2;";
            stmt.executeUpdate(sql);


             rs = stmt.executeQuery( "SELECT * FROM COMPANY;" );
            while ( rs.next() ) {
                int id = rs.getInt("id");
                String  name = rs.getString("name");
                int age  = rs.getInt("age");
                String  address = rs.getString("address");
                float salary = rs.getFloat("salary");
                System.out.println( "ID = " + id );
                System.out.println( "NAME = " + name );
                System.out.println( "AGE = " + age );
                System.out.println( "ADDRESS = " + address );
                System.out.println( "SALARY = " + salary );
                System.out.println();
            }
            System.out.println("delete data end");

            stmt.close();
            c.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

还是那句话,代码跑不成功,去我项目试一下

四 总结

其实,学这玩意用不了我多少时间,但是思考腾讯为什么用postgresql和mysql花了我不少时间。

我把自己的猜测说一下

早期postgresql性能优于mysql,甚至有博客说是mysql的三倍。但是在mysql 5.5就被追平,5.7反超,所以说腾讯用postgresql是历史原因,postgresql的开源团队毕竟几年都没更版本了。

postgresql在多年前就支持json。mysql还没有,那么只要不引入其他支持json的等postgresql还是有一战之力的,但是5.7mysql也支持了...

那么除去性能除去json,腾讯同时使用这两数据库的原因估计就是postgresql在高压环境下性能并没有下降,而myql明显下降。还有各种数据格式的支持。sql编程能力强。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术栈

收藏起来,史上最全的 MySQL 高性能优化实战总结!

MySQL 对于很多 Linux 从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行 MySQL 的优化之前必须要...

20230
来自专栏码字搬砖

sqoop --split-by详解

假设有一张表test,sqoop命令中–split-by ‘id’,-m 10,会发生怎样奇特的事情。首先呢,sqoop会去查表的元数据等等,重点说一下s...

41640
来自专栏MYSQL轻松学

MYSQL高性能优化总结

在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。

29730
来自专栏Linyb极客之路

如何打造一个高并发,处理海量数据,高性能,易扩展,可伸缩,高可用的网站?

简而言之,采用分布式系统,分布式应用和服务,分布式数据和存储,分布式静态资源,分布式计算,分布式配置和分布式锁。

26930
来自专栏WebDeveloper

Mysql数据库应用(一)

21720
来自专栏Linyb极客之路

MySQL锁机制及优化

总的来说,MySQL各存储引擎使用了三种类型(级别)的锁定机制:行级锁定,页级锁定和表级锁定。下面我们先分析一下MySQL这三种锁定的特点和各自的优劣所在。

22920
来自专栏WebDeveloper

Mysql数据库应用目录引导

12940
来自专栏杨建荣的学习笔记

我打算这么做巡检方向的事情

巡检的工作其实是比较枯燥和乏味的,在某种程度上,他的工作和监控是有很多交集的,其实在很多公司里面,巡检方向的落地情况其实不容乐观,采用脚本和被动触发的方...

22730
来自专栏铭毅天下

干货 | 通透理解Elasticsearch聚合

使用Elasticsearch的过程中,除了全文检索,或多或少会做统计操作,而做统计操作势必会使用Elasticsearch聚合操作。

49730
来自专栏码字搬砖

sqoop原理

sqoop,各位看官基本上都了解或者听说过,小二就不进行废话了。另外基于国内大部分用的为CDH,小二就想说一点:CDH中的sqoop2其实是apace版的sqo...

70610

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励