文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Spring JdbcTemplate怎么用

2023-06-03 04:07

关注

这篇文章将为大家详细讲解有关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怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯