1:系统配置文件:
spring: datasource: druid: url: jdbc:postgresql://localhiost:5432/test username: postgres password: 123456 driver-class-name: org.postgresql.Driver dBType: PostgreSQL
2:myBatis的循环insert
INSERT INTO USER_ROLE
(ID,"CREATED_ON","CREATED_BY","IS_DELETED","GROUP_CODE","NAME","ORG_ID","ROLE_ID","CODE","PARENT_ID","GROUP_ID")
VALUES
<foreach collection="userRoleListParam" item="e" index="index" separator="">
( #{e.ID}, #{e.CREATED_ON}, #{e.CREATED_BY}, #{e.IS_DELETED}, #{e.GROUP_CODE}, #{e.NAME}, #{e.ORG_ID}, #{e.ROLE_ID}, #{e.CODE}, #{e.PARENT_ID}, #{e.GROUP_ID} )
<if test="index != (userRoleListParam.size() - 1)">
,
</if>
<if test="index == (userRoleListParam.size() - 1)">
;
</if>
</foreach>
3:pg区分大小写,字符串和int,所以在传参时需要给定类型。
4:从oracle迁移到pg时,可以借助PDMan最新版本的:CHINER元数建模中的从数据库导入到工具,然后拿出PostGre脚本进行一下简单的修改或者直接执行。
4:将pg数据库的表和数据导出成sql语句。
(1:cmd进入pg安装的bin目录:C:\PostgreSQL\11\bin
(2:执行 :pg_dump -U postgres --column-inserts test> C:dum.sql
(postgres 账号名 test默认数据库名 C:dum.sql 导出的sql地址)
(3:navicat15 登录需要迁移进的pg数据库,直接执行sql即可。
5:如果系统需要同时兼容oracle和pg,建议建表时除了id字段使用小写外其余使用大写,然后统一将系统中的字段改成 带双引号的大写。如果涉及oracle的特殊语法的,可以根据数据库类型去使用不同的mapper.xml。