java mysql in参数_java后端通过数据库地址等信息访问第三方数据库,以及JdbcTemplate的in语法参数解决办法...

本文介绍了如何使用Java后端通过数据库信息访问第三方数据库,包括密码加密解密、数据库连接以及JdbcTemplate的使用。同时,针对JdbcTemplate无法处理IN语法的问题,提出了使用NamedParameterJdbcTemplate的解决方案,并给出了示例代码。
摘要由CSDN通过智能技术生成

一、通过数据库信息访问第三方数据库

本例子是从一张存储数据库信息表中查出第三方数据库信息,再进行访问的

1、 对数据库密码的加密、解密类

public classSecretHelper {public byte[] random(intlen) {byte[] buf = new byte[len];

random.nextBytes(buf);returnbuf;

}public byte[] password(byte[] plain) throwsGeneralSecurityException {

Mac mac= macKeysetHandle.getPrimitive(Mac.class);returnmac.computeMac(plain);

}public boolean verify(byte[] cipher, byte[] plain) {try{

Mac mac= macKeysetHandle.getPrimitive(Mac.class);

mac.verifyMac(cipher, plain);return true;

}catch(GeneralSecurityException e) {

logger.error("fail on verify password ", e);

}return false;

}public byte[] encrypt(byte[] plain, byte[] salt) throwsGeneralSecurityException {

Aead aead= aesKeysetHandle.getPrimitive(Aead.class);returnaead.encrypt(plain, salt);

}public byte[] decrypt(byte[] cipher, byte[] salt) throwsGeneralSecurityException {

Aead aead= aesKeysetHandle.getPrimitive(Aead.class);returnaead.decrypt(cipher, salt);

}

@PostConstructvoid init() throwsIOException, GeneralSecurityException {

random= newRandom();final var aes = new File("aes.json");if(aes.exists()) {

logger.info("load aes key from {}", aes);

aesKeysetHandle=CleartextKeysetHandle.read(JsonKeysetReader.withFile(aes));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值