`

JdbcTemplate

    博客分类:
  • jdbc
 
阅读更多

JdbcTemplate:
导入jar包:
5个基本包+两个实现包+c3p0+dbcp:
实现包:
springJdbc操作:spring-framework-3.2.0.RELEASE\libs-->spring-jdbc-3.2.0.RELEASE.jar
spring事务:spring-framework-3.2.0.RELEASE\libs-->spring-tx-3.2.0.RELEASE.jar
c3p0:spring-framework-3.0.2dependencies\com.mchange.c3p0\com.springsource.com.mchange.v2.c3p0\0.9.1.2-->com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
dbcp:
spring-framework-3.0.2dependencies\org.apache.commons\com.springsource.org.apache.commons.dbcp\1.2.2.osgi-->com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar
spring-framework-3.0.2dependencies\org.apache.commons\com.springsource.org.apache.commons.pool\1.5.3-->com.springsource.org.apache.commons.pool-1.5.3.jar

api的使用:
        数据源(连接池)的创建--dbcp
  BasicDataSource dataSource = new BasicDataSource();
  dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  dataSource.setUrl("jdbc:mysql://localhost:3306/dbname");
  dataSource.setUsername("root");
  dataSource.setPassword("1234");
创建模板:
        JdbcTemplate jdbcTemplate = new JdbcTemplate();
  jdbcTemplate.setDataSource(dataSource);
使用模板:
  jdbcTemplate.update("insert into t_user(username,password,age) values(?,?,?)", "jack","1234",18);
 }

配置dbcp:
首先实现dao:
 spring注入模板实例
 private JdbcTemplate jdbcTemplate;
 public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
  this.jdbcTemplate = jdbcTemplate;
 }
 public User findById(Integer id){
  String sql = "select * from t_user where id = ?";
  //使用 ParameterizedBeanPropertyRowMapper 完成数据封装, 数据库表的字段必须javabean属性 一致
  RowMapper<User> rowMapper = ParameterizedBeanPropertyRowMapper.newInstance(User.class);
  return jdbcTemplate.queryForObject(sql, rowMapper, id);
 }
spring配置:
<!-- 配置数据源 dbcp -->
 <bean id="dataSourceId" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
  <property name="url" value="jdbc:mysql://localhost:3306/dbname"></property>
  <property name="username" value="root"></property>
  <property name="password" value="1234"></property>
 </bean>
 <!-- 创建模板 -->
 <bean id="jdbcTemplateId" class="org.springframework.jdbc.core.JdbcTemplate">
  <property name="dataSource" ref="dataSourceId"></property>
 </bean>
 <!-- dao -->
 <bean id="userDaoId" class="cn.itcast.b_dbcp.UserDao">
  <property name="jdbcTemplate" ref="jdbcTemplateId"></property>
 </bean>

配置c3p0:
dao和模板创建基本不变
注意:在使用c3p0时可以使用属性注入模板(如上面)也可以直接将数据源作为属性注入
c3p0编写时数据库驱动名、URL、用户名与dbcp不同。
 <!-- 配置数据源 c3p0 -->
 <bean id="dataSourceId" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
  <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/dbname"></property>
  <property name="user" value="root"></property>
  <property name="password" value="1234"></property>
 </bean>

JdbcDaoSupport:
dao:
继承JdbcDaoSupport;采用父类方法来操作数据:this.getJdbcTemplate().update(...)
public class UserDao extends JdbcDaoSupport{
 
 public User findById(Integer id){
  String sql = "select * from t_user where id = ?";
  //使用 ParameterizedBeanPropertyRowMapper 完成数据封装, 数据库表的字段必须javabean属性 一致
  RowMapper<User> rowMapper = ParameterizedBeanPropertyRowMapper.newInstance(User.class);
  return getJdbcTemplate().queryForObject(sql, rowMapper, id);
 }
 public List<User> findAll(){
  String sql = "select * from t_user";
  RowMapper<User> rowMapper = ParameterizedBeanPropertyRowMapper.newInstance(User.class);
  return this.getJdbcTemplate().query(sql, rowMapper);
 }

}
c3p0配置:
 <!-- 配置数据源 c3p0 -->
 <bean id="dataSourceId" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
  <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/dbname"></property>
  <property name="user" value="root"></property>
  <property name="password" value="1234"></property>
 </bean>
 <!-- dao 不需要模板
  * 将数据源注入给dao,UserDao没有setter,但父类提供
  * 当将数据源提供给JdbcDaoSupport之后,底层将自动的创建模板
 -->
 <bean id="userDaoId" class="cn.itcast.d_jdbcdaosupport.UserDao">
  <property name="dataSource" ref="dataSourceId"></property>
 </bean>

使用properties:
<!-- 加载properties配置
  * 之后通过 ${key}获得
 -->
 <context:property-placeholder location="classpath:cn/xxx/e_properties/jdbcInfo.properties"/>
 <!-- 配置数据源 c3p0 -->
 <bean id="dataSourceId" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  <property name="driverClass" value="${jdbc.driverClass}"></property>
  <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
  <property name="user" value="${jdbc.user}"></property>
  <property name="password" value="${jdbc.password}"></property>
 </bean>

  

分享到:
评论

相关推荐

    spring-jdbcTemplate实例工程

    《深入解析Spring JdbcTemplate》 Spring JDBC Template是Spring框架中用于简化JDBC操作的一个核心组件,它是Spring对JDBC API的封装,旨在提供一个更加简洁、健壮且可测试的数据库访问层。在这个实例工程中,我们...

    JdbcTemplate的事务控制.docx

    ### JdbcTemplate 的事务控制 #### 一、引言 在软件开发过程中,事务管理是非常重要的一个环节,尤其是在处理数据库操作时。事务能够确保一系列数据库操作要么全部成功,要么全部失败,从而保持数据的一致性和完整...

    打印JdbcTemplate执行sql

    这篇博客文章的标题"打印JdbcTemplate执行sql"主要涉及如何在使用`JdbcTemplate`时,追踪并打印出执行的SQL语句,这对于调试和性能分析非常有帮助。接下来,我们将深入探讨`JdbcTemplate`的工作原理以及如何实现SQL...

    jdbcTemplate分页彻底解决,使用游标滚动

    在Java的Spring框架中,`JdbcTemplate`是一个非常重要的组件,它提供了数据库操作的简单抽象,使得开发者可以方便地执行SQL语句而无需编写复杂的DAO(数据访问对象)层。在处理大量数据时,传统的分页方法可能会导致...

    jdbcTemplate

    `JdbcTemplate`是Spring框架中的一个核心组件,主要用于简化Java应用程序与关系数据库之间的交互。它提供了模板化的SQL执行方法,从而避免了繁琐的JDBC代码编写,提高了代码的可读性和可维护性。项目经理编写的这个`...

    spring自带的jdbcTemplate查询、插入预编译使用

    在Spring框架中,`jdbcTemplate`是一个非常重要的组件,它为数据库操作提供了便捷且安全的API,降低了SQL注入的风险。本篇文章将详细讲解`jdbcTemplate`的预编译使用,以及如何通过回调方法进行定制化的数据处理。 ...

    SpringJdbcTemplate封装工具类

    SpringJdbcTemplate是Spring框架中用于简化Java数据库访问的工具,它是Spring JDBC模块的核心。这个封装工具类的出现是为了提供一种更简洁、易于使用的接口来执行SQL操作,减轻开发者处理数据库连接、事务管理以及...

    Spring JdbcTemplate 常用方法整理

    Spring的JdbcTemplate是Spring框架中用于简化数据库操作的工具类,它是基于JDBC但又抽象出了一层,避免了直接与数据库驱动API交互,从而提高了代码的可读性和可维护性。本文将深入探讨Spring JdbcTemplate的常用方法...

    4.Spring中的JdbcTemplate,Spring中的的事务,

    ### Spring中的JdbcTemplate #### JdbcTemplate概述 JdbcTemplate是Spring框架提供的一种用于简化JDBC编程的对象。通过封装原生的JDBC API,JdbcTemplate不仅提高了代码的可读性和可维护性,还帮助开发者避免了...

    Spring Boot多数据源(JdbcTemplate)配置与使用

    `JdbcTemplate`是Spring框架提供的一个用于简化数据库操作的工具,它使得数据库访问更为简洁且不易出错。在本教程中,我们将深入探讨如何在Spring Boot项目中配置和使用多数据源以及JdbcTemplate。 首先,让我们...

    springmvc整合JdbcTemplate框架

    在Java Web开发中,Spring MVC和JdbcTemplate是两个非常重要的组件。Spring MVC作为一个强大的MVC框架,负责处理HTTP请求、视图渲染以及业务逻辑的组织。而JdbcTemplate则是Spring提供的一个简单易用的数据库访问...

    SpringBoot操作多数据源(JPA+JdbcTemplate)

    本篇文章将探讨如何在Spring Boot中利用JPA(Java Persistence API)和JdbcTemplate来实现多数据源的管理,同时使用HikariCP作为高效的数据源连接池。 首先,让我们理解一下关键概念: 1. **Spring Boot**: 它是...

    JDBCTemplate+JavaPOJO实现通用DAO

    为了简化JDBC的使用,Spring框架提供了JDBCTemplate,它是一个基于模板方法设计模式的数据库访问类,能够帮助我们更安全、更高效地执行SQL语句。在这个"JDBCTemplate+JavaPOJO实现通用DAO"的项目中,我们将探讨如何...

    Spring--JdbcTemplate.pdf

    标题中提到的"JdbcTemplate"是Spring框架中提供的一个用于简化数据库操作的JDBC抽象库。它是对Java标准数据库编程接口JDBC的一种封装,旨在简化JDBC编程,减少样板代码,使得开发者在使用Spring框架时能够更便捷地对...

    spring的jdbctemplate的crud的基类dao

    在Spring框架中,`JdbcTemplate` 是一个非常重要的组件,它提供了一种简化数据库操作的API,使得开发者能够更安全、高效地与数据库交互。在本文中,我们讨论了如何利用`JdbcTemplate`来实现一个基类DAO(Data Access...

    springmvc+jdbctemplate+mysql(采用注解方式)

    在IT行业中,SpringMVC、JdbcTemplate和MySQL是构建web应用程序的常见技术栈。这篇详细的说明将深入探讨这些技术以及如何使用注解方式将它们整合在一起。 **SpringMVC** SpringMVC是Spring框架的一个模块,专为创建...

    jdbcTemplate的jar包.rar

    在Java开发中,Spring框架的JdbcTemplate是连接和操作数据库的重要工具。JdbcTemplate提供了一种简单、安全的方式来执行SQL语句,避免了手动处理数据库连接、预编译语句、结果集等繁琐工作,从而降低了出错的可能性...

    spring的jdbcTemplate小案例

    在本文中,我们将深入探讨Spring框架中的一个核心组件——JdbcTemplate。JdbcTemplate是Spring提供的一种数据库操作工具,它简化了数据库访问,使开发者能够编写出更健壮、更易于维护的代码,避免了手动处理JDBC连接...

    spring mvc注解jdbctemplate

    在Spring MVC框架中,JdbcTemplate是一个非常重要的组件,它提供了对数据库操作的简化API,使得开发者可以更加方便地执行SQL语句,而无需过多关注事务管理、异常处理等底层细节。本文将深入探讨如何在Spring MVC中...

Global site tag (gtag.js) - Google Analytics