jdbcTemplate + proxool
只使用jdbcTemplate, 连接池用proxool.
1.下载地址
proxool:
http://proxool.sourceforge.net/
2.导入的包
asm-3.3.1.jar
cglib-2.2.2.jar
commons-logging-1.1.1.jar
log4j-1.2.16.jar
mysql-connector-java-5.1.8-bin.jar
org.springframework.beans-3.1.1.RELEASE.jar
org.springframework.core-3.1.1.RELEASE.jar
org.springframework.jdbc-3.1.1.RELEASE.jar
org.springframework.transaction-3.1.1.RELEASE.jar
proxool-0.9.1.jar
proxool-cglib.jar
3.配置文件 /WEB-INF/proxool.xml
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
<proxool>
<alias>dbname</alias>
<driver-url>jdbc:mysql://118.186.210.242:447/wucaiju?user=root&password=root&useUnicode=true&characterEncoding=utf-8</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="root" />
<property name="password" value="root" />
</driver-properties>
<maximum-connection-count>100</maximum-connection-count>
<minimum-connection-count>10</minimum-connection-count>
<house-keeping-sleep-time>30000</house-keeping-sleep-time>
<maximum-new-connections>10</maximum-new-connections>
<prototype-count>5</prototype-count>
</proxool>
</something-else-entirely>
4.web.xml
<servlet>
<servlet-name>ServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>datasource_dbname</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>datasource_dbname</servlet-name>
<url-pattern>/datasource_dbname</url-pattern>
</servlet-mapping>
<!-- 配置受保护域,只有Tomcat管理员才能察看连接池的信息 -->
<security-constraint>
<web-resource-collection>
<web-resource-name> proxool </web-resource-name>
<url-pattern>/datasource_dbname</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>proxool manager Application</realm-name>
</login-config>
<security-role>
<description>
The role that is required to log in to the Manager
Application
</description>
<role-name> manager </role-name>
</security-role>
5.测试类
public class TestDao {
public void test()throws Exception{
Context context = new InitialContext();
//DataSource ds = (DataSource)context.lookup("java:/comp/env/jdbc/mysql");
//DataSource ds = (DataSource)context.lookup("proxool.dbname");
DataSource ds = new ProxoolDataSource("dbname") ; //此处是alias的名称,而不是"proxool.别名"
JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);
jdbcTemplate.afterPropertiesSet();
System.out.println(jdbcTemplate);
String sql = "select * from t_pic";
List list = jdbcTemplate.queryForList(sql);
for(int i=0; i<list.size(); i++){
Map map = (Map)list.get(i);
System.out.println(map.get("createTime"));
}
}
}
6.直接jdbc用proxool
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.logicalcobwebs.proxool.ProxoolException;
import org.logicalcobwebs.proxool.ProxoolFacade;
import org.logicalcobwebs.proxool.admin.SnapshotIF;
import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;
public class PoolManager{
private static int activeCount = 0 ;
public PoolManager(){
}
/**
* 获取连接
* getConnection
* @param name
* @return
*/
public Connection getConnection() {
try {
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver" ); //proxool驱动类
Connection conn = DriverManager.getConnection("proxool.dbname" ); // 注意,此处用的是proxool + 别名
//此处的datasource1是在proxool.xml中配置的连接池别名,当然根据需要可以用datasource2
showSnapshotInfo();
return conn;
}catch (Exception ex){
ex.printStackTrace();
}
return null ;
}
/**
* 此方法可以得到连接池的信息
* showSnapshotInfo
*/
private void showSnapshotInfo(){
try {
SnapshotIF snapshot = ProxoolFacade.getSnapshot("dbname" , true );
int curActiveCount=snapshot.getActiveConnectionCount(); //获得活动连接数
int availableCount=snapshot.getAvailableConnectionCount(); //获得可得到的连接数
int maxCount=snapshot.getMaximumConnectionCount() ; //获得总连接数
if (curActiveCount!=activeCount) //当活动连接数变化时输出的信息
{
System.out.println("活动连接数:" +curActiveCount+ "(active) 可得到的连接数:" +availableCount+ "(available) 总连接数:" +maxCount+ "(max)" );
activeCount=curActiveCount;
}
}catch (ProxoolException e){
e.printStackTrace();
}
}
/**
* 获取连接
* getConnection
* @param name
* @return
*/
public Connection getConnection(String name){
return getConnection();
}
/**
* 释放连接
* freeConnection
* @param conn
*/
public void freeConnection(Connection conn){
if (conn!= null ){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 释放连接
* freeConnection
* @param name
* @param con
*/
public void freeConnection (String name,Connection con){
freeConnection(con);
}
public void getQuery() {
try {
Connection conn = getConnection();
if (conn != null ){
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("select * from t_pic" );
int c = rs.getMetaData().getColumnCount();
while (rs.next()){
System.out.println();
for ( int i= 1 ;i<=c;i++){
System.out.print(rs.getObject(i));
}
}
rs.close();
}
freeConnection(conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String args[]){
PoolManager pm = new PoolManager();
pm.getQuery();
}
}
分享到:
相关推荐
基于java+Spring+SpringMVC+JDBCTemplate+JSP开发的博客论坛系统+源码+开发文档+视频演示,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于java+Spring+...
Spring Security 3.1 +Spring +Servlet+JdbcTemplate 自己找的资料,并开发成功
jdbctemplate+druid连接池 亲测可用 不可用请私信
采用springmvc+jdbctemplate+mysql注解方式搭建,中小型项目首选!包含mysql数据库.
struts2+hibernate+spring+jdbctemplate+EXT集成实例
Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA+JdbcTemplate一个简单的DEMO
工程实现的是Spring+SpringMVC+JDBCTemplate简单用户管理功能,界面十分粗糙,只是演示功能。
我用maven + spring mvc +JDBCTEMPLATE + 由Slf4j实现Common-Logging+Log4j的日志控制 (数据库用MySQL)简单编写的注册功能模块 附:项目搭建中的完整步骤和说明
SpringMVC+jdbcTemplate+easyUI+ztree(增删改查)
前期项目 Spring+Spring MVC+JDBC Template 增删改查,包含建库,前端加后台
SpringMvc+JdbcTemplate+oracle的小项目实例,自己也是初学java,摸索着做的一个登陆,注册小程序,带服务器和客户端验证.
springmvc+jdbctemplate+mchange+multidatasource http://knight-black-bob.iteye.com/blog/2254761
spring boot + JdbcTemplate 使用druid数据源
Spring框架中jdbcTemplate 的使用
一套完成的使用Idea开发环境,采用springboot、jdbcTemplate实现的mysql读取webService完成程序。其中,封装了数据读、写、删除的各种操作;访问webservice时,需要使用token认证。 一套很实用、很难得的的基于java...
1. Oracle 存储过程分页 2. Java 调用 Oracle 存储过程 3. Flex 分页
使用Spring的JdbcTemplate实现分页功能
strut2+spring+springjdbctemplate做的简易登录系统
使用Spring JdbcTemplate+Druid数据源+FreeMarker 开发的代码生成器。 您可以根据自己的实际,修改一下FreeMarker的模版文件,直接按目录生成Java代码。 生成了就能用,节省大量重复工作的时间。 您也可以用来学习...
本系统是基于Maven+JSP+Servlet+JdbcTemplate+Redis+Mysql实现的旅游网站,使用的技术偏多,但是网站内容很简单,容易理解。包含:景点门票,酒店预订,出境游,国内游,港澳游,报团,自由行等功能.登录,注册,后台管理...