本文源码: GitHub·点这里 || GitEE·点这里
创新互联专注于云霄网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供云霄营销型网站建设,云霄网站制作、云霄网页设计、云霄网站官网定制、重庆小程序开发服务,打造云霄网络公司原创品牌,更为您提供云霄网站排名全网营销落地服务。
PostgreSQL是一个功能强大的且开源关系型数据库系统,在网上PostgreSQL和MySQL一直有大量的对比分析。大多从性能,开源协议,SQL标准,开发难度等去比较,只要有比较就会有差距和差异,看看就好。
絮叨一句
:编程世界里的对比是一直存在的,但是无论对比结果如何,当业务需要的时候,该用还是要用。MySQL和PostgreSQL对比很少占上风,但是MySQL在国内的使用依旧广泛。
导入依赖包,版本会自动加载。本案例加载的是42.2.6版本号。
org.postgresql
postgresql
这里使用Druid连接池管理。
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driverClassName: org.postgresql.Driver
url: jdbc:postgresql://127.0.0.1:5432/db_01
username: root01
password: 123456
@Configuration
public class DruidConfig {
@Value("${spring.datasource.druid.url}")
private String dbUrl;
@Value("${spring.datasource.druid.username}")
private String username;
@Value("${spring.datasource.druid.password}")
private String password;
@Value("${spring.datasource.druid.driverClassName}")
private String driverClassName;
@Bean
public DruidDataSource dataSource() {
DruidDataSource datasource = new DruidDataSource();
datasource.setUrl(dbUrl);
datasource.setUsername(username);
datasource.setPassword(password);
datasource.setDriverClassName(driverClassName);
return datasource;
}
}
基于mybatis相关组件,在用法上和MySQL环境整合基本一致。
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
typeAliasesPackage: com.post.gresql.*.entity
global-config:
db-config:
id-type: AUTO
field-strategy: NOT_NULL
logic-delete-value: -1
logic-not-delete-value: 0
banner: false
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true
jdbc-type-for-null: 'null'
提供一个数据查询,写入,分页查的基础使用案例。
@Api(value = "UserController")
@RestController
public class UserController {
@Resource
private UserService userService ;
@GetMapping("/selectById")
public UserEntity selectById (Integer id){
return userService.selectById(id) ;
}
@PostMapping("/insert")
public Integer insert (UserEntity userEntity){
return userService.insert(userEntity) ;
}
@GetMapping("/pageQuery")
public PageInfo pageQuery (@RequestParam("page") int page){
int pageSize = 3 ;
return userService.pageQuery(page,pageSize) ;
}
}
PostgreSQL支持JSON数据类型格式,但是在用法上与一般数据类型有差异。
这里字段user_list为JSON类型,存储场景第一批用户有哪些,第二批用户有哪些,依次类推。
CREATE TABLE pq_user_json (
ID INT NOT NULL,
title VARCHAR (32) NOT NULL,
user_list json NOT NULL,
create_time TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "user_json_pkey" PRIMARY KEY ("id")
);
定义一个数据库与实体对象的转换器,主要就是JSON数据和Java对象的转换。
@MappedTypes({Object.class})
public class JsonTypeHandler extends BaseTypeHandler