公司想要把部分sqlserver的旧服务迁移到PG数据库,先写一个示例的demo,需要用docker部署postgresql数据库和整合springboot连接数据源
安装
下载最新镜像
docker pull postgres
创建并且启动容器
docker run -it --name postgres --restart always -e POSTGRES_PASSWORD='abc123@commonServer' -e ALLOW_IP_RANGE=0.0.0.0/0 -v /home/postgres/data:/var/lib/postgresql -p 55433:5432 -d postgres
进入容器内部
docker exec -it postgres bash
切换用户
su postgres
登录PG数据库,然后输入密码回车
psql -U postgres -W
这就是进来了
编辑/var/lib/pgsql/13/data/pg_hba.conf
增加:
host all all 0.0.0.0/0 password
保存后退出,重启容器即可
整合springboot
引入依赖
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.27</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency>
application.properties
spring.datasource.url=jdbc:postgresql://192.20.71.16:55433/postgres spring.datasource.username=postgres spring.datasource.password=abc123@commonServer spring.datasource.driverClassName=org.postgresql.Driver spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect spring.jpa.properties.hibernate.hbm2ddl.auto=update
注意
PG数据库
PostgreSQL在查询时,如果字段名中有大小写混合的情况且字段名首字母非大写,则在查询这样的字段时必须加双引号,否则汇报字段不存在的错误。
去除 with nolock
关键字,去掉中括号
大小写的字段,全部转为双引号字段