关于DBCP连接池效率的问题
public Static Connection getConnection() throws Exception{
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@xx.x.x.xxx:1521:sid";
String user = "user";
String passwd = "pwd";
return DriverManager.getConnection(url, user, passwd);
}
然后我尝试用dbcp,代码为:
public static Connection getConnection() throws SQLException{
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
bds.setUrl("jdbc:oracle:thin:@xx.x.x.xxx:1521:sid");
bds.setUsername("user");
bds.setPassword("pwd");
bds.setMaxActive(50);
bds.setMaxIdle(10);
bds.setMaxWait(100000);
return bds.getConnection();
}
对于连接效率的测试,我用的是如下的代码:
for (int i=0;i<100;i++){
ps = this.getConnection().prepareStatement(sql_test);
ps.setInt(1,i);
ps.execute();
ps.close();
}
结果为:
jdbc连接:平均10s插入一条数据
dbcp连接:平均10s插入一条数据
另外,我用spring+hibernate,连接也用dbcp(默认配置),在dao层通过session来取得connection来执行sql语句,效率非常高,插入1000条不需要1s.
请问:
1.是我的dbcp的使用有问题吗?为什么效率这么低?
2.为什么通过spring+hibernate来调用dbcp,效率会高n个数量级?
相关推荐
FlowReactor - High level visual scripting v2.0.4 高级视觉脚本编辑器
FlowReactor 是一款高级视觉脚本编辑器,专为 Unity 游戏开发设计,用于创建复杂的流程和逻辑。以下是其核心特性的简洁介绍: 高级流程创建:FlowReactor 允许开发者在专业节点编辑器中构建高级流程,包括 AI 行为、UI 流程、对话树、教程、关卡脚本、游戏机制、状态机和逻辑流程。 直观工作流程:支持无限嵌套子图和自定义输出 / 转换,配合 Eventboards 和 Blackboards 管理全局事件和变量。通过脚本对象工作流,资源文件中的一切都可以轻松管理。 自定义节点:开发者可以创建针对特定项目需求的自定义节点,简化节点创建过程,类似于创建新的 C# 文件。 专业编辑器体验:编辑器设计用于无缝融入 Unity 编辑器,提供专业和原生的外观与感觉。支持在多个图中复制粘贴节点,迷你地图导航,以及创建组和注释以保持组织性。
c++ hook 钩子的使用介绍
一、基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强
C++ HOOK实现全局键盘钩子的详细过程
1 简介 工具:VS2019 目的:写一个动态链接库(全局键盘钩子的注册和注销),然后在MFC项目中调用,MFC中有两个按钮,一个用于注册全局钩子,一个用于销毁全局钩子。注册全局钩子后,按下键盘的按钮,被按下的按钮会被记录到F:\key.txt 文件中。 2 编写DLL动态链接库 新建DLL项目 不要勾选【将解决方案和项目放在同一目录中(D)】 不要动建立好的项目中的其他文件 在项目中新建Keyboard.cpp文件 注意PROJECT_NAME这个宏,要和最后导出的DLL文件名一致 /
HOOK钩子技术1 inline HOOK内联钩子
内联钩子改变函数的第一条指令,通过跳板跳到伪造的函数上。 函数在使用过程中有时候要执行本身已经挂钩的函数,这样就需要先解钩。
【小白必看】什么是hook(钩子)?
钩子”是一种特殊的消息处理机制,它可以监视系统或者进程中的各种事件消息,截获发往目标窗口的消息并进行处理。我们可以在系统中自定义钩子,用来监视系统中特定事件的发生,完成特定功能,如屏幕取词,监视日志,截获键盘、鼠标输入等等。钩子的种类很多,每种钩子可以截获相应的消息,如键盘钩子可以截获键盘消息,外壳钩子可以截取、启动和关闭应用程序的消息等。钩子可以分为线程钩子和系统钩子,线程钩子可以监视指定线程的事件消息,系统钩子监视系统中的所有线程的事件消息。


Web 开发
