Spring 对数据库的支持

DAO

  DAO是用于访问数据的对象,大多数时候,我们将数据保存在数据库中,但这不是唯一选择。

  用户也可以将数据保存在数据文件或者LDAP中

  DAO屏蔽了数据操作的具体细节

Spring本质上希望能够以统一的方式整合底层持久化技术,以统一的方式进行调用及事务管理,避免让具体的实现侵入业务代码中。

由于每个持久化实现技术都有各自的异常体系,所以Spring提供了统一的异常体系

统一数据访问模板

Spring为不同持久化技术提供了对应的模板类

如果直接使用模板类,一般需要在DAO中定义一个模板对象,并提供数据资源;或者在Spring配置文件中为模板类注入数据源,这样DAO中的模板对象就可以直接使用了。但是创建一个模板对象还是免不了的

举例:

    <!--注解注入-->
    <context:annotation-config/>
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${driverClassName}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
    </bean>
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    //Spring的JDBC模板
    @Resource
    private JdbcTemplate jdbcTemplate;
    /**
     * 获取用户数目
     *
     * @param userName 用户名
     * @param password 密码
     * @return 用户数
     */
    @Override
    public int getMatchCount(String userName, String password) {
        String sqlStr = " SELECT count(1) FROM t_user " +
                " WHERE user_name = ? AND password = ? ";
        int i = jdbcTemplate.queryForInt(sqlStr,new Object[]{userName,password}, new int[]{Types.VARCHAR,Types.VARCHAR});
        return i;
    }

Spring为每一个持久化技术提供了支持类,其中已经为我们完成了这样的功能,也就是说只要继承这些支持类,通过调用其中的方法就能够直接对数据库进行操作

时间: 2024-12-14 18:10:56

Spring 对数据库的支持的相关文章

Spring+Ibatis数据库水平分库

1.引言    笔者最近在做一个互联网的"类SNS"应用,应用中用户数量巨大(约4000万)左右,因此,简单的使用传统单一数据库存储肯定是不行的. 参考了业内广泛使用的分库分表,以及使用DAL数据访问层等的做法,笔者决定使用一种最简单的数据源路由选择方式来解决问题. 严格的说,目前的实现不能算是一个解决方案,只能是一种思路的简易实现,笔者也仅花了2天时间来完成(其中1.5天是在看资料和Spring/ibatis的源码).这里也只是为各位看官提供一个思路参考,顺便给自己留个笔记 2.系统

Spring的数据库开发

                            Spring JDBC框架操作mysql数据库 Spring中的JDBC为我们省去连接和关闭数据库的代码,我们着重关注对数据库的操作.Spring框架在数据库开发中的应用主要使用的是JDBCTemplate类,该类作为Spring对JDBC支持的核心,提供了所有对数据库操作功能的支持.我们将使用JDBCTemplate类完成对mysql数据库的增.删.改.查等操作. Spring框架提供JDBC支持主要由4个包组成,分别是core(核心包)

Spring框架学习六:Spring对JDBC的支持

JdbcTemplate简介 为了使JDBC更加易于使用,Spring 在 JDBC API 上定义了一个抽象层,以此建立一个 JDBC 存取框架 作为 Spring JDBC 框架的核心,JDBC 模板的设计目的是为不同类型的 JDBC 操作提供模板方法.每个模板方法都能控制整个过程,并允许覆盖过程中的特定任务.通过这种方式,可以在尽可能保留灵活性的情况下,将数据库存取工作量降到最低. #添加c3p0数据库连接池 jdbc.user=root jdbc.password=000 jdbc.jd

Spring对ORM的支持之集成Hibernate3

1  集成Hibernate3 Hibernate是全自动的ORM框架,能自动为对象生成相应SQL并透明的持久化对象到数据库. Spring2.5+ 版本支持Hibernate 3.1+ 版本,不支持低版本,Spring 3.0.5 版本提供对Hibernate 3.6.0 Final版本支持. 1.1.  如何集成 Spring通过使用如下Bean进行集成Hibernate: LocalSessionFactoryBean :用于支持XML映射定义读取: configLocation和conf

【j2ee spring】7、spring与数据库的连接的操作事务管理

spring与数据库的连接的操作事务管理 1.首先我们的知道spring管理事务的方式有两种 还是一种是以注解的方式 在service类前加上@Transactional,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务. Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚.这个例外是unchecked 如果遇到checked意外就不回滚. 1 让checked例外也回滚:在整个方法前加上 @Transactional(rollb

8 -- 深入使用Spring -- 8...1 Spring提供的DAO支持

8.8.1 Spring提供的DAO支持. DAO模式是一种标准的Java EE设计模式,DAO模式的核心思想是,所有的数据库访问都通过DAO组件完成,DAO组件封装了数据库的增.删.查.改等原子操作.业务逻辑组件依赖于DAO组件提供的数据库原子操作,完成系统业务逻辑的实现. 对于Java EE应用的架构,有非常多的选择,但不管细节如何变换,Java EE应用都大致可分为如下三层. ⊙ 表现层. ⊙ 业务逻辑层. ⊙ 数据持久层. 轻量级Java EE架构以Spring IoC容器为核心,承上启

由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持

由openSession.getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持 Spring和Hibernate的集成的一个要点就是对事务的支持,openSession.getCurrentSession都是编程式事务(手动设置事务的提交.回滚)中重要的对象,HibernateDaoSupport则提供了更方便的声明式事务支持. Hibernate中最重要的就是Session对象的引入,它是对jdbc的深度封装,包括对事务的处理,Session对

Spring访问数据库(oracle)配置

陈科肇:http://blog.csdn.net/u013474104/article/details/44279309 ================ 1.spring 对数据库访问的支持 当我们开发持久层的时候,我们面临着多种选择,比如使用JDBC.Hibernate.java持久化API或其它持久化框架.幸好的是spring能够支持所有这些持久化机制. DAO(data access boject)数据访问对象,这个名字就很形象描述了DAO在应用程序中所扮演的角色.DAO提供了数据的读取

(四)Spring 对DAO 的支持

第一节:Spring 对JDBC 的支持 1,配置数据源dbcp: 2,使用JdbcTemplate: 3,JdbcDaoSupport 的使用: 4,NamedParameterJdbcTemplate 的使用:支持命名参数变量: org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate 1,使用JdbcTemplate: T.java: 1 package com.wishwzp.test; 2 3 import