一 整合
由于本人的学过的技术太多太乱了,于是决定一个一个的整合到一个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