1. 问题背景
分布式的项目,需求使用同一个数据库,根据schema的不同,用于区分不同的微服务数据。
schema,就是PG数据库下面的不同模式:任何一个PG数据库,创建后,都会有一个默认的模式:public:
schema给用户提供了很多方便!
使用时,通过SQL语句指定schema,操作指定的数据库:
SELECT * from test.hello
2. 出现问题
mybatis逆向工程生成的代码中, xml文件的SQL语句,并没有指定schema;
笨方法,自己手动修改xml文件!
3. 解决问题
a. 万事优先查阅官方文档:这个地方会说明链接PG数据时,可配置的所有参数! Connecting to the Databasehttps://jdbc.postgresql.org/documentation/head/connect.html
b. 查阅文档,发现 :currentSchema:参数可以指定schema
c. 首先我们在mybatis逆向工程中测试,是否能根据指定的schema生成对应的实体:
注意: currentSchema=test 参数一定放在最前面,否则不会起作用!!!
运行:可以看到逆向工程已经找到指定schema下面的表并生成代码:
d. 同样的道理,我们在项目链接数据库的地方,同样指定schema:
e.写接口进行测试:
插入:
查询:
至此,指定 PG数据库schema的应用需求搞定!!!
你的努力,终将成为你最有力的资本!