- 浏览: 850406 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (379)
- struts (5)
- hibernate (16)
- spring (16)
- ssh (20)
- MySQL (16)
- 数据库脚本 (2)
- DownLoad (1)
- GAE (5)
- Java (103)
- LoadRunner (2)
- VF (1)
- 学习资料 (24)
- 软件使用 (21)
- 通信类 (4)
- 生活 (3)
- J2ME (1)
- 心理学 (1)
- Linux (26)
- Android (3)
- Oracle (1)
- 面向对象概念&面试准备 (11)
- ExtJs (2)
- Google Map (1)
- Flex (47)
- 算法研究 (1)
- share (20)
- python (1)
- MongoDB (7)
- centos6 (13)
- C++ (8)
- DB2 (3)
- C# (1)
- 代码片段 (24)
- Lucene (2)
- php (1)
- NodeJS (1)
- Express (1)
最新评论
-
shua1991:
已阅,我表示同意。
Eclipse统计代码行数 -
nakedou:
写的不错,挺详细的
在CentOS中使用 yum 安装MongoDB及服务器端配置 -
sjp524617477:
好方法
Eclipse统计代码行数 -
simpletrc:
<script>ale ...
Java写到.txt文件,如何实现换行 -
csdn_zuoqiang:
Apache Ftp Server,目前是1.0.4,非常好的 ...
Apache FtpServer在64位系统下服务不能启动解决方法
spring的Dao和JDBC
DAO(Data Access Object),我们开发的时候通常采用一接口一实现的方式。Dao所抛出的异常在spring中都是DataAccessException的子类,并且DataAccessException是RuntimeException,也就是说他属于unchecked Exception。
1、 DataSource注入:对于不同的数据连接来源需求,spring提供了javax.sql.DataSource注入,要更换数据源只要在bean的定义文件中修改,不需要修改任何一行程序代码
写法如下:
此处需要注意的是,一定要引入相关的数据库驱动jar包。并在配置文件中进行dao的数据源注入。 2、 置换DataSource数据源 置换数据源并不需要修改源代码程序,只需要更改下配置文件就ok了,同时记得相关jar包引入。这里我们想置换当前数据源连接策略为dbcp。 引入的jar为:commons-dbcp.jar,commons-pool.jar 写法如下:
大家可以看到只是bean的class改变了!! 3、 对jndi数据源的支持 如果你要设置jndi数据源,请引入相关的jar(spring-context.jar),同时在tomcat应用服务器上配置好jndi的数据源,在配置文件中引用 4、 Spring的jdbc封装功能(Template) Spring提供的jdbc的封装等功能是可以独立于spring来使用,除了JdbcTemplate类之外,spring还提供了其他的Template类,例如:hibernate,jdo,ibatis等的Template实现。这些都是线程安全的。 1)、JdbcTemplate的使用 我们将改写InsertUser方法,使用jdbcTemplate技术 核心代码如下: JdbcTemplate tmp = new JdbcTemplate(dataSource); tmp.execute("insert into tbl_user (name,pwd) values ('"+user.getName()+"','"+user.getPwd()+"')"); 2)、jdbcTemplate的查询 通过调用queryForInt方法来进行个数查询 例如: int total = tmp.queryForInt("select count(*) from tbl_user"); 通过调用queryForObject方法来对查询出的数据进行对象封装 例如: User user = (User) tmp.queryForObject("select * from tbl_user where id="+id, new UserRowMapper()); 通过调用query方法来对查询出的列表数据进行对象封装 例如: List<User> list= (List<User>) tmp.query("select * from tbl_user", new UserRowMapper()); 进行查询出的数据进行对象封装的关键点是封装类的实现:实现RowMapper接口 封装对象的写法如下: 5、 以对象的方式操作 就JdbcTemplate上的各种方法来看,它封装了JDBC的处理细节,让您不需要接触底层的数据库技术,然而JdbcTemplate的各种方法仍然需要熟悉如何使用sql语法,如果想让程序人员不用接触到sql的于案发或者是重用某些sql,在spring中,可以进一步建立可重用的操作对象,建立之后在数据库设计时,将设计完成的可重用对象给开发人员使用,他们就无须接触到sql的细节了。 Spring提供了org.springframework.jdbc.object包,只要继承它下边的已经提供的对象实例,就可以完成以对象为导向的数据库操作。这些类都被设计成线程安全的。 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/spring"></property>
<property name="username" value="root"></property>
<property name="password" value="spring_framework"></property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/spring"></property>
<property name="username" value="root"></property>
<property name="password" value="spring_framework"></property>
</bean>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/demo"></property>
</bean>
public class UserRowMapper implements RowMapper {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(new Integer(rs.getInt("id")));
user.setName(rs.getString("name"));
user.setPwd(rs.getString("pwd"));
return user;
}
}
1)、继承sqlFunction
public class UserFunction extends SqlFunction {
public UserFunction(DataSource dataSource){
super(dataSource,"select count(*) from tbl_user");
compile();
}
}
调用:
UserFunction uf = new UserFunction(dataSource);
total =uf.run();
2)、继承sqlUpdate
public class UserUpdate extends SqlUpdate {
public UserUpdate(DataSource dataSource){
super(dataSource,"insert into tbl_user (name,pwd) values (?,?)");
int[] types = {java.sql.Types.VARCHAR,java.sql.Types.VARCHAR};
setTypes(types);
compile();
}
}
调用:
UserUpdate uu = new UserUpdate(dataSource);
uu.update(new Object[]{user.getName(),user.getPwd()});
3)、继承MappingSqlQuery
public class UserQuery extends MappingSqlQuery {
public UserQuery(DataSource dataSource){
super(dataSource,"select * from tbl_user");
compile();
}
@Override
protected Object mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(new Integer(rs.getInt("id")));
user.setName(rs.getString("name"));
user.setPwd(rs.getString("pwd"));
return user;
}
}
调用:
UserQuery uq = new UserQuery(dataSource);
List<User> list=uq.execute();
6、 Spring2.0的NamedParameterJdbcTemplate类
在编写jdbc的sql陈述时就不必使用占位符’?’了,而是使用实际的命名参数来保留sql中会变动的数据部分。
例如:
String sql = “select * from tbl_user where id =:userId”;
SqlParameterSource params = new MapSqlParameterSource(“userId”,id);
NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(dataSource);
List rows = template.queryForList(sql,params);
7、 Spring2.0的SimpleJdbcTemplate
如果使用的是jdk1.5以上的版本,可以利用这个函数所提供的泛型的功能来查询数据。
发表评论
-
配置DAO代理 一个小错误
2010-09-01 16:24 1884在配置DAO代理的时候 <!-- 定义DAO代理 ... -
Spring依赖注入
2010-05-26 16:48 1029所谓依赖注入,是指在 ... -
spring 事务
2010-05-20 21:16 791声明式事务管理(在配置时,它是通用的,只需要改变 <ao ... -
springframework【13】
2010-05-20 20:34 908spring的事务管理 Spring提供了编程性事务管 ... -
springframework【11】
2010-05-20 20:24 818AOP之aop标签的支持 spring2.0提供了基于 ... -
springframework【10】
2010-05-20 20:20 1001Spring的Autoproxing (自动代理,注意必须使用 ... -
springframework【9】
2010-05-20 20:18 1080AOP之Pointcut、Advisor 上篇的所 ... -
springframework【8】
2010-05-20 20:16 1041Spring的AdvicesAdvices实现了Aspect的 ... -
springframework【7】
2010-05-20 20:13 909AOP的相关术语以及实现方式介绍 先介绍下使用spri ... -
springframe【6】
2010-05-20 20:11 942AOP之动态代理 AOP的原理就是动态代理,上一片介绍 ... -
springframework【5】
2010-05-20 20:08 915spring的AOP是基于代理的。java的事务控制是基于代理 ... -
springframework【4】
2010-05-20 20:05 1074这里说的国际化不是简 ... -
springframework【3】
2010-05-20 20:02 948Bean的依赖设置与集合对象的处理 Bean的依赖设 ... -
springframework【2】
2010-05-20 19:43 934Bean的基本管理 Bean的基本管理 1、Be ... -
springframework【1】
2010-05-20 19:27 950第一个spring程序 在这里我们使用xmlsche ...
相关推荐
Spring Framework。 官网 Spring Framework API。 Spring Framework 开发文档。
标题中的“maven仓库中org下的springframework”指的是在Maven的本地或远程仓库中,位于`org`组织下的`springframework`项目。Spring Framework是Java开发中的一个核心框架,由Pivotal Software公司维护,它为构建...
"Spring Framework 4 参考文档中文版" 以下是 Spring Framework 4 参考文档中文版的知识点总结: 一、Spring Framework 概览 * Spring Framework 是一个轻量级的解决方案,是一站式构建企业级应用的一种选择。 * ...
《Spring框架核心模块——org.springframework.core.jar深度解析》 在Java世界中,Spring框架以其卓越的灵活性、可扩展性和模块化设计,成为了企业级应用开发的首选。其中,`org.springframework.core.jar`是Spring...
spring framework 中文参考手册
Spring Framework 是一个广泛使用的开源Java应用框架,特别适用于企业级应用程序开发。它的最新版本v6.1.4为我们带来了许多新特性和改进,使得开发者能够更高效、更灵活地构建可维护的、高性能的应用程序。这个...
Spring Framework API文档。Spring是什么呢?首先它是一个开源的项目,而且非常活跃;它是一个基于IOC和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据...
org.springframework.flex-1.0.3.RELEASE.jar.zip用于JAR包,org.springframework.flex-1.0.3.RELEASE.jar.zip用于JAR包org.springframework.flex-1.0.3.RELEASE.jar.zip用于JAR包org.springframework.flex-1.0.3....
org.springframework.aop-3.0.4.RELEASE.jar org.springframework.asm-3.0.4.RELEASE.jar org.springframework.aspects-3.0.4.RELEASE.jar org.springframework.beans-3.0.4.RELEASE.jar org.springframework....
### Spring Framework 简介 #### 一、Spring Framework 的独特之处 在众多J2EE框架中,Spring Framework 自2003年发布以来一直备受瞩目。与其他框架相比,Spring Framework 的独特之处在于: 1. **专注于管理业务...
Spring Framework 是一个全面的Java应用开发框架,以其模块化、灵活的设计而闻名,它极大地简化了企业级Java应用的开发工作。Spring Framework v5.3.32是该框架的一个特定版本,它包含了修复的问题、性能优化以及...
Spring Framework 是Java开发中的核心框架,它以其强大的功能和易用性成为了许多开发者首选的工具。Spring Framework 6.0.8-SNAPSHOT 的中文文档是针对这一最新版本的详尽指南,旨在解决中文互联网上关于Spring框架...
Getting started with Spring Framework (4th Edition) is a hands-on guide to begin developing applications using Spring Framework 5. The examples (consisting of 88 sample projects) that accompany this ...
Spring Framework 5.1.0源码 The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. A key ...
《Spring核心模块详解:org.springframework.core_3.1.1.RELEASE.jar》 在Java开发领域,Spring框架无疑是最重要的框架之一,它以其强大的依赖注入、面向切面编程以及丰富的功能扩展,深受开发者喜爱。其中,`org....
Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本。 该框架基于 Expert One-on-One Java EE Design and Development(ISBN 0-...
org.springframework.aop-3.0.5.RELEASE.jar org.springframework.asm-3.0.5.RELEASE.jar org.springframework.aspects-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE.jar org.springframework....
Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本。 该框架基于 Expert One-on-One Java EE Design and Development(ISBN 0-...
Spring Framework 4.x Reference Documentation 中文翻译 Chinese translation of the Spring Framework 4.x Reference Documentation ...
在Java的Web开发领域,Spring框架是不可或缺的重要工具,其中`org.springframework.web.jar`文件是Spring框架的核心组成部分,主要用于处理Web应用程序的相关功能。这个JAR(Java Archive)文件包含了Spring Web模块...