您的位置 首页 java

Druid连接池-Java访问API(自动登录方式)

Druid简介

Druid是阿里开源的 数据库连接池 ,作为后起之秀,性能比dbcp、c3p0更高,使用也越来越广泛。

当然Druid不仅仅是一个连接池,还有很多其他的功能。

Druid的优点

高性能。性能比dbcp、c3p0高很多。

只要是 jdbc 支持的数据库,druid都支持,对数据库的支持性好。并且Druid针对oracle、 mysql 做了特别优化。

提供监控功能。可以监控sql语句的执行时间、ResultSet持有时间、返回行数、更新行数、错误次数、错误堆栈等信息,来了解连接池、sql语句的工作情况,方便统计、分析SQL的执行性能。

为什么要自动登录:

  • 必须要有密码,否则别人直接访问项目地址+”/druid”就可以访问,不安全;
  • 业务上不允许人工登录;

代码实现:

  1. 调用方式:druid api ( request ,” basic .json”);
  2. 访问方式:OkHttpClient;

public String druidAPI(HttpServletRequest servletRequest, String typeName) {

String result = null;

try{

String serverPort = getServerPort(servletRequest);

OkHttpClient client = new OkHttpClient().new build er(). Cookie Jar(new CookieJar() {

private final HashMap<String, List<Cookie>> cookies tore = new HashMap<>();

@Override

public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {

cookieStore.put(url.host(), cookies);

}

@Override

public List<Cookie> loadForRequest(HttpUrl url) {

List<Cookie> cookies = cookieStore.get(url.host());

return cookies != null ? cookies : new ArrayList<Cookie>();

}

}).build();

// 登录api

RequestBody formBody = new FormBody.Builder()

.add(“loginUsername”, “druid账号”)

.add(“loginPassword”, “druid密码”)

.build();

Request requestLogin = new Request.Builder()

.url(serverPort + “druid/submitLogin”)

.post(formBody)

.build();

Response responseLogin = client.newCall(requestLogin).execute();

if(200 == responseLogin.code()){

// 具体API

Request requestType = new Request.Builder()

.url(serverPort + “druid/” + typeName)

.build();

Response responseType = client.newCall(requestType).execute();

result = responseType.body().string();

}

}catch(Exception e){

LOGGER.error(“调用druidAPI方法失败!”,e);

}

return result;

}

public String getServerPort(HttpServletRequest request) {

String url = request.getRequestURL(). toString ();

String uri = request.getRequestURI();

return url.substring(0, url.indexOf(uri)+1);

}

文章来源:智云一二三科技

文章标题:Druid连接池-Java访问API(自动登录方式)

文章地址:https://www.zhihuclub.com/183800.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图