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 JDBC Template是Spring框架中用于简化JDBC操作的一个核心组件,它是Spring对JDBC API的封装,旨在提供一个更加简洁、健壮且可测试的数据库访问层。在这个实例工程中,我们...
### JdbcTemplate 的事务控制 #### 一、引言 在软件开发过程中,事务管理是非常重要的一个环节,尤其是在处理数据库操作时。事务能够确保一系列数据库操作要么全部成功,要么全部失败,从而保持数据的一致性和完整...
这篇博客文章的标题"打印JdbcTemplate执行sql"主要涉及如何在使用`JdbcTemplate`时,追踪并打印出执行的SQL语句,这对于调试和性能分析非常有帮助。接下来,我们将深入探讨`JdbcTemplate`的工作原理以及如何实现SQL...
在Java的Spring框架中,`JdbcTemplate`是一个非常重要的组件,它提供了数据库操作的简单抽象,使得开发者可以方便地执行SQL语句而无需编写复杂的DAO(数据访问对象)层。在处理大量数据时,传统的分页方法可能会导致...
`JdbcTemplate`是Spring框架中的一个核心组件,主要用于简化Java应用程序与关系数据库之间的交互。它提供了模板化的SQL执行方法,从而避免了繁琐的JDBC代码编写,提高了代码的可读性和可维护性。项目经理编写的这个`...
在Spring框架中,`jdbcTemplate`是一个非常重要的组件,它为数据库操作提供了便捷且安全的API,降低了SQL注入的风险。本篇文章将详细讲解`jdbcTemplate`的预编译使用,以及如何通过回调方法进行定制化的数据处理。 ...
SpringJdbcTemplate是Spring框架中用于简化Java数据库访问的工具,它是Spring JDBC模块的核心。这个封装工具类的出现是为了提供一种更简洁、易于使用的接口来执行SQL操作,减轻开发者处理数据库连接、事务管理以及...
Spring的JdbcTemplate是Spring框架中用于简化数据库操作的工具类,它是基于JDBC但又抽象出了一层,避免了直接与数据库驱动API交互,从而提高了代码的可读性和可维护性。本文将深入探讨Spring JdbcTemplate的常用方法...
### Spring中的JdbcTemplate #### JdbcTemplate概述 JdbcTemplate是Spring框架提供的一种用于简化JDBC编程的对象。通过封装原生的JDBC API,JdbcTemplate不仅提高了代码的可读性和可维护性,还帮助开发者避免了...
`JdbcTemplate`是Spring框架提供的一个用于简化数据库操作的工具,它使得数据库访问更为简洁且不易出错。在本教程中,我们将深入探讨如何在Spring Boot项目中配置和使用多数据源以及JdbcTemplate。 首先,让我们...
在Java Web开发中,Spring MVC和JdbcTemplate是两个非常重要的组件。Spring MVC作为一个强大的MVC框架,负责处理HTTP请求、视图渲染以及业务逻辑的组织。而JdbcTemplate则是Spring提供的一个简单易用的数据库访问...
本篇文章将探讨如何在Spring Boot中利用JPA(Java Persistence API)和JdbcTemplate来实现多数据源的管理,同时使用HikariCP作为高效的数据源连接池。 首先,让我们理解一下关键概念: 1. **Spring Boot**: 它是...
为了简化JDBC的使用,Spring框架提供了JDBCTemplate,它是一个基于模板方法设计模式的数据库访问类,能够帮助我们更安全、更高效地执行SQL语句。在这个"JDBCTemplate+JavaPOJO实现通用DAO"的项目中,我们将探讨如何...
标题中提到的"JdbcTemplate"是Spring框架中提供的一个用于简化数据库操作的JDBC抽象库。它是对Java标准数据库编程接口JDBC的一种封装,旨在简化JDBC编程,减少样板代码,使得开发者在使用Spring框架时能够更便捷地对...
在Spring框架中,`JdbcTemplate` 是一个非常重要的组件,它提供了一种简化数据库操作的API,使得开发者能够更安全、高效地与数据库交互。在本文中,我们讨论了如何利用`JdbcTemplate`来实现一个基类DAO(Data Access...
在IT行业中,SpringMVC、JdbcTemplate和MySQL是构建web应用程序的常见技术栈。这篇详细的说明将深入探讨这些技术以及如何使用注解方式将它们整合在一起。 **SpringMVC** SpringMVC是Spring框架的一个模块,专为创建...
在Java开发中,Spring框架的JdbcTemplate是连接和操作数据库的重要工具。JdbcTemplate提供了一种简单、安全的方式来执行SQL语句,避免了手动处理数据库连接、预编译语句、结果集等繁琐工作,从而降低了出错的可能性...
在本文中,我们将深入探讨Spring框架中的一个核心组件——JdbcTemplate。JdbcTemplate是Spring提供的一种数据库操作工具,它简化了数据库访问,使开发者能够编写出更健壮、更易于维护的代码,避免了手动处理JDBC连接...
在Spring MVC框架中,JdbcTemplate是一个非常重要的组件,它提供了对数据库操作的简化API,使得开发者可以更加方便地执行SQL语句,而无需过多关注事务管理、异常处理等底层细节。本文将深入探讨如何在Spring MVC中...