1. 概述

  • Spring 框架提供了很多持久层的模板类来简化编程;
  • Spring 框架提供的JDBC模板类: JdbcTemplate 类;
  • Spring 框架提供的整合 Hibernate 框架的模板类: HibernateTemplate 类

2. 环境搭建

2.1 创建数据库表结构

CREATE TABLE t_account(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20),
money DOUBLE
);

2.2 导入 jar 包

  • Spring 框架的基本开发包(6个);
  • Spring 的传统AOP的开发包
    • spring-aop-4.3.10.RELEASE
    • org.aopalliance-1.10.0 (在 Spring 依赖包中)
  • aspectJ 的开发包
    • org.aspectj.weave-1.6.8.RELEASE.jar (在 Spring 依赖包中)
    • spring-aspects-4.3.10.RELEASE.jar
  • JDBC 模板所需 jar 包
    • mysql-connector-java.jar: MySql 驱动包;
    • Spring-jdbc.jar;
    • Spring-tx.jar: Spring 事务包;

2.3 编写测试代码

// 第一种方式: 采用 new 对象的方式完成
@Test
public void fun(){
// 使用 Spring 内置的连接池,创建连接池
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb2");
dataSource.setUsername("root");
dataSource.setPassword("root"); // 创建模板类
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); // 完成数据添加
JdbcTemplate.update("INSERT INTO t_account VALUES(null,?,?)","张三",1000);
} // 第二种方式: 采用 IOC 的方式
// applicationContext.xml 配置
<!-- 配置连接池 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb2"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</beaen> <!-- 配置 JDBC 的模板类 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean> // 测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class Demo2{ @Resource(name="jdbcTemplate")
private JdbcTemplate jdbcTemplate; @Test
public void fun(){
// update(String sql, Object...params); 可以完成增删改操作
jdbcTemplate.update("INSERT INTO t_account VALUES(null,?,?)","张三",1000);
} @Test
public void fun2(){
// 查询
// 第一种方式: 通过主键查询一条记录
// queryForObject(String sql, RowMapper<T> rowMapper, Object... params) Account ac = jdbcTemplate.queryForObject("SELECT * FROM t_account WHERE id=?",
new BeanMapper(),1);
} @Test
public void fun3(){
// 查询
// 第二种方式: 查询所有
// query(String sql, RowMapper<T> rowMapper, Object... params) List<Account> ac = jdbcTemplate.query("SELECT * FROM t_account",new BeanMapper());
}
} // 自己手动的来封装数据(一行一行的封装)
public class BeanMapper implements RowMapper<Account>{ public Account mapRow(ResultSet rs, int rowNum) throws SQLException{
Account ac = new Account();
ac.setId(rs.getInt("id"));
ac.setName(rs.getString("name"));
ac.setMoney(rs.getDouble("money"));
return ac;
}
} // javaBean 用于封装查询到的结果
public class Account{
private Integer id;
private String name;
private Double money; get 和 set 方法...
}

3. Spring 框架管理开源的连接池

3.1 管理 DBCP 连接池

  1. 引入 DBCP 的 jar 包

    • org.apache.commong.dbcp-1.2.2.osgi.jar
    • org.apache.commons.pool-1.5.3.jar
  2. 编写配置文件
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb2"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>

3.2 管理 C3P0 连接池

  1. 引入 c3p0 的 jar包

    • com.mchange.v2.c3p0-0.9.1.2.jar
  2. 编写配置文件
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mydb2"/>
<property name="user" value="root"/>
<property namem="password" value="root"/>
</bean>

参考资料

Spring 框架的JDBC模板技术的更多相关文章

  1. Spring框架的JDBC模板技术和事物

    Spring框架的JDBC模板技术         技术分析之Spring框架的JDBC模板技术概述  1. Spring框架中提供了很多持久层的模板类来简化编程,使用模板类编写程序会变的简单     ...

  2. Spring框架的JDBC模板技术概述

    1. Spring框架中提供了很多持久层的模板类来简化编程,使用模板类编写程序会变的简单 2. 提供了JDBC模板,Spring框架提供的 * JdbcTemplate类 3. Spring框架可以整 ...

  3. 演示Spring框架的JDBC模板的简单操作

    1. 步骤一:创建数据库的表结构 create database spring_day03; use spring_day03; create table t_account( id int prim ...

  4. spring框架总结(04)----介绍的是Spring中的JDBC模板

    1.1  Jdbc模板概述 它是spring框架中提供的一个对象,是对原始Jdbc API对象的简单封装.spring框架为我们提供了很多的操作模板类,入下图所示: 我们今天的主角在spring-jd ...

  5. 解析Spring第四天(Spring中的事物、Spring框架来管理模板类)

    JDBC模板技术: Spring框架中提供了很多持久层的模板类来简化编程,使用模板类编写程序会变的简单 template 模板 都是Spring框架提供XxxTemplate 提供了JDBC模板,Sp ...

  6. Spring框架之jdbc源码完全解析

    Spring框架之jdbc源码完全解析 Spring JDBC抽象框架所带来的价值将在以下几个方面得以体现: 1.指定数据库连接参数 2.打开数据库连接 3.声明SQL语句 4.预编译并执行SQL语句 ...

  7. Spring中的JDBC模板类入门

    1.Spring框架中提供了很多持久层的模板类来简化编程,使用模板类编写程序会变的简单 2.提供了JDBC模板,Spring框架提供的 *JdbcTemplate类 3.Spring框架可以整合Hib ...

  8. 使用Spring框架来管理模板类

    1. 刚才编写的代码使用的是new的方式,应该把这些类交给Spring框架来管理. 2. 修改的步骤如下 applicationContext.xml中<beans>标签的开头配置为: * ...

  9. spring: 使用Spring提供的JDBC模板(使用profiles选择数据源/使用基于JDBC驱动的数据源)

    Spring提供的JDBC框架负责管理资源和异常处理,从而可以简化开发者的JDBC代码.开发者只需要编写写入和读取数据库相关的代码即可. 正如在之前的小节中论述过的,Spring将数据库访问过程中的模 ...

随机推荐

  1. log4j使用示例

    ### set log levels ### log4j.rootLogger = INFO , D #INFO , C , D , E ### console ### #log4j.appender ...

  2. 最全面的 Sublime Text 使用指南

    最全面的 Sublime Text 使用指南   摘要(Abstract) 本文系统全面的介绍了Sublime Text,旨在成为最优秀的Sublime Text中文教程. 前言(Prologue) ...

  3. 文件上传之 commons-fileupload(二)

    对commons fileupload上传组件的简单封装 在上一篇文章<利用Jakarta commons fileupload组件实现多文件上传>中,我介绍了commons fileup ...

  4. Unity中使用ulua的个人经验总结

    热度 286052 2015-3-15 14:32 |个人分类:技术类| Lua Lua代码都是运行时才编译的,不运行的时候就如同一张图片.一段音频一样,都是文件:所以更新逻辑只需要更新脚本,不需要再 ...

  5. IDEA2017 导入 SVN上的 Myeclipse或Eclipse 项目

    从SVN上检出项目,不用打开. 关闭IDEA后选择 import project,导入后按F4 (改成eclipse按键模式后 按ctrl alt shift F4)进入 project struct ...

  6. uGUI Anchor

    Anchor定位:inspector面板的Rect Transform组件中PosX左边的方框图标就是设置锚点的,做界面自适应时可定位控件在视图中的位置,与NGUI类似.Anchor+Canvas的C ...

  7. tf命令总结

    $/AutoBuild/WpfApp/WpfApp/MainWindow.xaml 发现tf workspaces /collection:http://192.168.175.117:8080/tf ...

  8. mogndb 慢查询

    0  摘要 在MySQL中,慢查询日志是经常作为我们优化查询的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是开启Profiling功能.该工具在运行的实例上收集有关MongoDB的 ...

  9. HBase MemStore与HStoreFile 的大小分析

    Sumary: MemStore结构 KeyValue构成细节 HFile分析 Maven 项目例子使用了Maven来管理Dependency,要运行例子,需要有maven环境,后面提到的HFile, ...

  10. [转]NBehave行为驱动测试关于story和scenarios

    原文: Behavior-Driven Development with NBehave 这里模拟了一个"银行账户"的类 一个余额属性,一个存款方法,一个撤销账户的方法,一个转账的 ...