今天工作
app不支持kingbase
金仓的修改并不麻烦,现在看只是要改一下Druid的配置类DruidConfig就可以了,增加以下修改即可
// KingBase8 基于 PostgreSQL,Druid WallFilter 不识别 kingbase8 类型,需单独配置 if (filters != null && filters.contains("wall")) { // 移除wall过滤器,因为我们将单独配置 String[] filterArray = filters.split(","); StringBuilder newFilters = new StringBuilder(); for (String filter : filterArray) { if (!"wall".equalsIgnoreCase(filter.trim())) { if (newFilters.length() > 0) { newFilters.append(","); } newFilters.append(filter.trim()); } } druidDataSource.setFilters(newFilters.toString()); // 单独配置WallFilter WallFilter wallFilter = new WallFilter(); wallFilter.setDbType("postgresql"); druidDataSource.setProxyFilters(Collections.singletonList(wallFilter));那这个wallFilter是做什么的呢?在druid中,wallfilter是用于数据库保护的,主要的功能就是限制sql注入,恶意删除或批量查询等对数据库造成影响的操作。因为它本身是不识别kingbase的,所以需要手工增加这部分的代码。并且kingbase和postgresql是一致的,所以增加的时候就用postgresql就可以了,在使用kingbase的时候也是,把他简单的理解为pg就行了。可能有一些不同,但是目前我的接触中还不涉及,如有涉及了,我再补充。
app启动的时候会报使用老环境的信息?
已经修改了nacos中的配置,有可能是文件使用错了。
这个问题很简单,已经处理好了,说一下原因吧,是因为我马虎了,虽然把nacos的配置迁移到了我的本地环境,但是内容没有修改,所以从nacos获取的配置文件中还指向了之前的服务器,因此出现了这个问题。也是提醒自己,修改的时候不要着急,慢慢做,要了解自己每一步都在做什么。避免出错。
这块还有个注意事项,搞不懂,这什么在老环境下是服务名就可以了,但是在新环境下要服务名.yaml。如果没有的话就不行。
sql报错问题处理
哎,我现在的作用也就是写写记录了,查bug的活,基本都交给ai了。真的是个好帮手呀。
问题很快就找到了,这次不是代码的问题,还是配置的问题,因为改nacos里的数据库配置,只改了数据库的地址,但是defaultschema没有修改,还用的另一个项目的shcema所以报找不到表的错误,修改后再试一下,问题成功解决了。
今天就到这里了,因为今天领导都不在,能摸一会儿还是要把握的,鱼来该摸直须摸,莫待无鱼空余恨。