• 数据源加密-JDBC调用方式加密示例


    package test;

    import org.gjt.mm.mysql.Driver;

    import java.sql.*;
    import java.util.Properties;
    import java.util.logging.Logger;

    public class EncryptJDBC extends Driver{

    public static void main(String[] args) throws SQLException, ClassNotFoundException {

    Class.forName(EncryptJDBC.class.getName());
    DriverManager.registerDriver(new EncryptJDBC());
    Connection conn = DriverManager.getConnection("zpc:test1");
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(" select * from datasource_group_info ");
    while(rs.next())
    {
    System.out.println(rs.getInt(1)+" "+rs.getString(2) +rs.getString("type"));
    }
    conn.close();
    }

    public static String getURLByKey(String key)
    {
    if("zpc:test1".equals(key))
    return "jdbc:mysql://10.27.89.6:3306/mydb";
    else
    return null;
    }

    public static void getPropertiesByKey(String key,Properties props)
    {
    props.setProperty("user", "zzz");
    props.setProperty("password", "ppp");
    }

    public CryptedJDBC() throws SQLException {
    }

    public Logger getParentLogger() throws SQLFeatureNotSupportedException {
    return null;
    }

    @Override
    public boolean acceptsURL(String url) throws SQLException {
    if(url.startsWith("zpc:"))
    {
    return true;
    }
    return false;
    }

    @Override
    public Connection connect(String key, Properties info) throws SQLException {
    String realurl = getURLByKey(key);
    getPropertiesByKey(key, info);
    return super.connect(realurl, info);
    }
    }

  • 相关阅读:
    django 1.9.7 css控制模板样式
    python -- 判断给定的参数是否是地理位置的经度和纬度
    有恃无恐
    不知不觉
    vscode 编写Python走过的坑
    Python的从头再来
    【初赛】数学题错题总结
    【初赛】选择题总结
    20175317 《Java程序设计》第四周学习总结
    20175317 《Java程序设计》第三周学习总结
  • 原文地址:https://www.cnblogs.com/drawwindows/p/4884314.html
Copyright © 2020-2023  润新知