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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM