跟大家分享一下

用ShardingSphere实现数据脱敏

根据官网上的数据脱敏功能,添加依赖,我用的是4.1.0版本:

  <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-jdbc-core</artifactId>
            <version>4.1.0</version>
 </dependency>

然后用Java配置:
在这里插入图片描述

其中有一句代码是这样的:

DataSource getEncryptDataSource() throws SQLException {
        return EncryptDataSourceFactory.createDataSource(DataSourceUtil.createDataSource("demo_ds"), getEncryptRuleConfiguration(), new Properties());
    }

DataSourceUtil.createDataSource(“demo_ds”) 这里会报红~~~

因为这个DataSourceUtil类是要自己写的~~~

这个类如果没有写,这里就配置不了!!!!!

坑!!!!!!!!!

找了好久,才在网上找到这个类的代码,感谢那位分享的大佬!!!1

我贴一下这个类,免得大家踩坑
创建数据源的工具类:

package com.irisian.sharedjdbc.masterandslave;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSource;

public class DataSourceUtil {
    private static final String URL_PREFIX = "jdbc:mysql://localhost:3306/";

    private static final String USER_NAME = "root";

    private static final String PASSWORD = "123456";

    public static DataSource createDataSource(final String dataSourceName) {
    DruidDataSource result = new DruidDataSource();

        result.setDriverClassName(com.mysql.jdbc.Driver.class.getName());

        result.setUrl(URL_PREFIX + dataSourceName);

        result.setUsername(USER_NAME);

        result.setPassword(PASSWORD);

        return result;

    }

}

这样写了这个类,就可以用官网的代码进行Java配置了!

在开源的代码中看到这个类是这样写的:

import com.zaxxer.hikari.HikariDataSource;

import javax.sql.DataSource;

public final class DataSourceUtil {
    
    private static final String HOST = "localhost";
    
    private static final int PORT = 3306;
    
    private static final String USER_NAME = "root";
    
    private static final String PASSWORD = "";
    
    public static DataSource createDataSource(final String dataSourceName) {
        HikariDataSource result = new HikariDataSource();
        result.setDriverClassName("com.mysql.jdbc.Driver");
        result.setJdbcUrl(String.format("jdbc:mysql://%s:%s/%s?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8", HOST, PORT, dataSourceName));
        result.setUsername(USER_NAME);
        result.setPassword(PASSWORD);
        return result;
    }
}

参考:
shareding-jdbc实现读写分离最简单的容易理解示例

ShardingSphere官网_数据脱敏_JAVA配置

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐