这篇文章将为大家详细讲解有关Spring JdbcTemplate怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
声明一下,我的spring包是1.2.6的版本。
Spring 有很多很好的开源数据源,连接池。我们来一起学习一下。
(1) DBCP连接池
DBCP连接池是Apache软件基金组织下的一个开源连接池实现。
需要: commons-dbcp-1.2.1.jar //连接池的实现
commons-pool.jar //连接池实现的倚赖库
commons-collection.jar //连接池实现的倚赖库
代码:
package wyd.spring.datasource.dbcp;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
public class DBCPDataSource {
private static BasicDataSource dataSource=null;
private static final String driver="com.mysql.jdbc.Driver";
private static final String url="jdbc:mysql://localhost:3306/wyd";
private static final String userName="root";
private static final String password="root";
public static DataSource getDataSource(){
if(dataSource==null){
dataSource=new BasicDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(userName);
dataSource.setPassword(password);
}
return dataSource;
}
public static Connection getConnection() throws SQLException{
return DBCPDataSource.getDataSource().getConnection();
}
}
(2) C3PO 连接池
C3PO 连接池是一个优秀的连接池,推荐使用。C3PO实现了JDBC3.0规范的部分功能,因而性能更加突出。
需要的jar包: c3po0.902.jar
代码:
package wyd.spring.datasource.c3po;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import wyd.spring.datasource.dbcp.DBCPDataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3PODataSource {
private static ComboPooledDataSource dataSource=null;
private static final String driver="com.mysql.jdbc.Driver";
private static final String url="jdbc:mysql://localhost:3306/wyd";
private static final String userName="root";
private static final String password="root";
public static DataSource getDataSource(){
if(dataSource==null){
dataSource=new ComboPooledDataSource();
try {
dataSource.setDriverClass(driver);
} catch (PropertyVetoException e) {
System.out.println("DataSource Load Driver Exception!!");
e.printStackTrace();
}
dataSource.setJdbcUrl(url);
dataSource.setUser(userName);
dataSource.setPassword(password);
//设置连接池最大连接容量
dataSource.setMaxPoolSize(20);
//设置连接池最小连接容量
dataSource.setMinPoolSize(2);
//设置连接池最大statements对象容量
dataSource.setMaxStatements(100);
}
return dataSource;
}
public static Connection getConnection() throws SQLException{
return DBCPDataSource.getDataSource().getConnection();
}
}
(3)SmartDataSource 连接池
SmartDataSource 继承DataSource接口。让除了提供DataSource的基本方法之外,还提供一个额外的功能,在恰当的时候关闭连接。也就是说,通过SmartDataSource获得的连接是无须关闭连接的。
当程序中需要不断重用某个连接的时候,SmartDataSource对提高非常有用。SmartDataSource判断数据库是否需要关闭,通过如下方法体现。
boolean shouldClose(Connection con)
该方法由smartDataSource的实现类提供实现。当该方法返回true时,SmartDataSource实例子在该方法返回true时关闭连接。
SmartDataSource 接口的一个实现类是: SingleConnectionDataSource 类
它是单连接的DataSource,可以认为 MaxPoolSize=1,MinPoolSize=1
需要 jar 包: spring-jdbc.jar
spring-beans.jar
spring-dao.jar
spring-core.jar
commons-logging.jar
代码:
package wyd.spring.datasource.smart;
import java.sql.Connection;
import java.sql.SQLException;
import org.springframework.jdbc.datasource.SingleConnectionDataSource;
import org.springframework.jdbc.datasource.SmartDataSource;
public class SCDataSource {
private static SingleConnectionDataSource datasource=null;
private static final String driver="com.mysql.jdbc.Driver";
private static final String url="jdbc:mysql://localhost:3306/ws";
private static final String userName="root";
private static final String password="root";
public static SmartDataSource getDataSource(){
if(datasource==null){
datasource=new SingleConnectionDataSource();
datasource.setDriverClassName(driver);
datasource.setUrl(url);
datasource.setUsername(userName);
datasource.setPassword(password);
datasource.setSuppressClose(false);
}
return datasource;
}
public static Connection getConnection() throws SQLException{
return SCDataSource.getDataSource().getConnection();
}
}
关于“Spring JdbcTemplate怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。