• postgresql安装,java简单使用postgresql


    一 整合

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

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

    附上汇总博文地址 https://www.cnblogs.com/ydymz/p/9391653.html

    以整合功能

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

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

    有兴趣的可以看看这个博客,虽然是只有文字没有图像干活 https://blog.csdn.net/u012679583/article/details/78291846

  • 相关阅读:
    微信公众平台接口获取时间戳为10位,java开发需转为13位
    redis实现哨兵机制
    redis配置主从复制
    C 语言字符 和字符串输出
    C 小写字母编程大写并输出
    C语言计算机器运行时间
    C 猜数游戏
    C 产生随机码 (输入数字来产生)
    C 产生随机码
    C 语言链表操作例程 (待完善)
  • 原文地址:https://www.cnblogs.com/ydymz/p/9858795.html
Copyright © 2020-2023  润新知