postgresql安裝,java簡單使用postgresql
一 整合
由於本人的學過的技術太多太亂了,於是決定一個一個的整合到一個springboot專案裡面。
附上自己的github專案地址ofollow,noindex">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 KEYNOT NULL," + //" NAMETEXTNOT NULL, " + //" AGEINTNOT NULL, " + //" ADDRESSCHAR(50), " + //" SALARYREAL)"; //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"); Stringname = rs.getString("name"); int age= rs.getInt("age"); Stringaddress = 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程式設計能力強。
有興趣的可以看看這個部落格,雖然是隻有文字沒有影象幹活 https://blog.csdn.net/u012679583/article/details/78291846