4 Spring对持久层的支持

Spring对持久层的支持:① JDBC,② O/R Mapping(Hibernate,TopLink等)

一、Spring对持久层支持采用的策略:

1、Spring对持久层“不发明重复的轮子”,即没有重新实现新的持久层方案,对现有持久层方案做封装,更利于使用。

2、采用DAO模式

3、提供了大量的模板类来简化编程(HibernateDaoSupport,JdbcTemplate等)

4、重新设计了一套完善的异常体系结构

① 类型丰富,细化异常类型

② 全都是运行时异常(RuntimeException)

二、Spring对JDBC的支持

1、配置数据源

方式一:采用Spring内置的数据源,Spring内置实现 DriverManagerDataSource

<bean id="dataSource"   class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName">

<value>com.mysql.jdbc.Driver</value>

</property>

<property name="url">

<value>jdbc:mysql://localhost:3306/hibdb</value>

</property>

<property name="username">

<value>root</value>

</property>

<property name="password">

<value>windows</value>

</property>

</bean>

方式二:采用开源数据库产品如DBCP

DBCP提供的BasicDataSource

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName">

<value>com.mysql.jdbc.Driver</value>

</property>

<property name="url">

<value>jdbc:mysql://localhost:3306/hibdb</value>

</property>

<property name="username">

<value>root</value>

</property>

<property name="password">

<value>windows</value>

</property>

</bean>

方式三: 直接使用容器提供的数据源(如Tomcat,Weblogic,Sun Application Server)

JNDI数据源:(mysql5,tomcat5.5)

step1:

在server.xml中:

<Resource name="jdbc/mydatasource" auth="Container" description="DB Connection"

type="javax.sql.DataSource" username="root" password="windows"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/tarena" maxActive="5" />

step2:

在context.xml中(conf\context.xml):

<ResourceLink   name="jdbc/mydatasource"       global="jdbc/mydatasource"   type="javax.sql.DataSourcer"/>

step3:

在beans-config.xml:

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName">

<value>java:comp/env/jdbc/mydatasource</value>

</property>

</bean>

2、配置JdbcTemplate模板类(封装了绝大多数数据库操作)

3、配置DAO

4、配置Service

编程步骤:

step1:  配置数据源

step2: 配置JdbcTemplate

<bean id="jdbcTemplate"

class="org.springframework.jdbc.core.JdbcTemplate">

<property name="dataSource">

<ref bean="dataSource" />

</property>

</bean>

step3:配置DAO

<bean id="orderDao" class="lab5.OrderDAOImpl">

<property name="jt"><ref bean="jdbcTemplate"/></property>

</bean>

注意:  查询时,使用RowMapper

三、Spring对Hibernate的支持

Step1:  配置数据源

Step2:  配置sessionfactory

<bean id="mySessionFactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="dataSource">

<ref bean="dataSource" />

</property>

<property name="mappingResources">

<list>

<value>lab6/Order.hbm.xml</value>

</list>

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">

org.hibernate.dialect.MySQLDialect

</prop>

<prop key="hibernate.show_sql">true</prop>

</props>

</property>

</bean>

Step3:  配置DAO

<bean id="orderDao" class="lab6.OrderDAOHibernateImpl">

<property name="sessionFactory">

<ref bean="mySessionFactory" />

</property>

</bean>

注意:以上配置是要求dao 继承HibernateDaoSupport

spring知识大全(3)的更多相关文章

  1. spring知识大全(4)

    5 Spring对事务的支持 一.AOP事务的含义: 事务当作一个切面,动态地织入到目标对象,形成一个代理对象. 二.Spring的事务机制 Spring支持声明式事务. Spring使用事务服务代理 ...

  2. PHP知识大全

    --------------------------------------------------------- PHP知识大全 ---------------------------------- ...

  3. python知识大全目录,想学的看过来!

    Python总结篇——知识大全   python装饰器   PyCharm安装与配置,python的Hello World   sort与sorted的区别及实例   我必须得告诉大家的MySQL优化 ...

  4. VC6.0调试知识大全

    VC6.0调试知识大全 分类: C++ 2010-09-06 21:33 7080人阅读 评论(5) 收藏 举报 debuggingmfcfunctionmenumicrosoftdll My Not ...

  5. .Net知识大全(个人整理)

    .Net知识大全 本章内容适用于对.NET有一定基础的或者是想通过本文章对.NET基础知识记不清楚的朋友,可以通过本文章进行回顾. 面试的时候可能也会遇到相应的题目,建议面试前进行回顾!!! 1.NE ...

  6. 使用所学Spring知识,实现简易的图书查询系统功能。实现查询全部图书。 根据书籍编号查询信息。 根据书名查询书籍信息。 根据状态查询书籍信息。

    相关 知识 >>> 相关 练习 >>> 实现要求: 使用所学Spring知识,实现简易的图书查询系统功能. 要求如下: 查询全部图书. 根据书籍编号查询信息. 根据 ...

  7. Spring注解大全,汇总版

    Spring使用的注解大全和解释 注解 解释 @Controller 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类 ...

  8. Spring 注解大全与详解

    Spring使用的注解大全和解释 注解 解释 @Controller 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类 ...

  9. [转]Spring 注解大全与详解

    Spring使用的注解大全和解释 注解 解释 @Controller 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类 ...

随机推荐

  1. prop和attr的区别

    在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. 对于 ...

  2. ubuntu 配置nginx+php+mysql 遇到的一些问题

    /* 公司内网打算配置一台ubuntu为主机的测试服务器.刚好手头有一个昂达的主机,装的windows 声音又大,还不如直接装ubuntu .声音又小,还占用资源少. */ 刚开始安装php5 结果提 ...

  3. Asp.Net 4.0 FormAuthentication 原理

    建立一个使用Asp.Net Membership管理登陆登出信息的网站 1. 创建一个Asp.Net Mvc 3 示例网站. 2. 创建自定义的MemberShipProvider,并在Web.CON ...

  4. firefox浏览器不支持复制粘贴(linux)

    在Linux主机下使用firefox在线编辑文章时,提示不支持复制粘贴选项,并给出了解决方法,记录一下 1.先找到本机firefox的配置文件的所在文件夹位置,不知道的请遵循以下步骤 点击菜单栏的帮助 ...

  5. Myeclipse中打开接口实现类的快捷键

    Myeclipse中打开接口实现类的快捷键-----Ctrl + T Myeclipse中 Open Type快捷键-----Ctrl + Shift + T

  6. Tomcat安装及配置教程

    工具/原料 Tomcat7.0 eclipse 百度经验:jingyan.baidu.com java环境的配置 1 java环境的配置应该都学过吧,这里简单的讲一下. 下载安装java JDK,注意 ...

  7. 3D旋转相册(适合新手)

    <!DOCTYPE HTML> <html onselectstart="return false"> <head> <meta char ...

  8. 使用FreePic2Pdf导出书签至Word建立层级目录——快速初始化Word笔记本目录

    使用FreePic2Pdf导出书签至Word建立层级目录 --快速初始化Word笔记本目录 文:安徽师范大学2014级计算机科学与技术 王昊 (Get Contact:441301158@qq.com ...

  9. [python] ORM 第一次注释

    不懂的东西还太多,就当是自己监督自己吧 #!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = 'Michael Liao' impor ...

  10. arduino编程语言Wiring参考手册API

    对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(based on Processing)来实现的. 通过编程,Arduino可以实现很多种功能. ...