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. myeclipse中配置maven

    1.myeclipse中已默认安装maven,首先在window-preferences-myeclipse-maven下找到maven插件,不同的版本位置可能不同,但都可以在window-prefe ...

  2. java提高篇之理解java的三大特性——多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  3. Android Studio中清单文件改versionCode和versionName没效果的原因

    在Android Studio中,项目的versionCode 和versionName 的控制不是在AndroidManifest.xml清单文件中更改的,而是在项目的build.gradle中更改 ...

  4. RabbitMQ的work queue(1)

    http://www.rabbitmq.com/tutorials/tutorial-two-java.html 在第一个教程中,我们通过一个命名队列来发送消息和接受消息.在这一节,我们将创建一个工作 ...

  5. Install Shield 打包教程

    我的是已经下载过打包工具InstallShield2013LimitedEdition,没有下载的只有下面那个灰色的的图标,不过没关系选中灰色的点确定直接跳到下载页面了.下载完成后再重新添加安装和部署 ...

  6. 如何自己编写Makefile

    如何自己编写Makefile   相信很多朋友都有过这样的经历,看着开源项目中好几页的makefile文件,不知所云.在日常学习和工作中,也有意无意的去回避makefile,能改就不写,能用ide就用 ...

  7. mvc DropDownList默认选项

    DDDContext db = new DDDContext(); List<SelectListItem> selectlistDistrict = new List<Select ...

  8. java中的那些坑

    最近准备换工作,为了少让人家鄙视,就要狠狠地藐视这些面试题目.找了本电子书,发了有好多坑,都是特别简单,但是很少有人做对的题目.面对这样的题目,我却有一种兴奋的感觉,也许是因为一直做着重复的工作没有新 ...

  9. 【转】MessageBox的常见用法

    网址:http://www.douban.com/note/40199603/ 一 函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PCh ...

  10. 试一下CANVAS

    // 此应用源代码如下: document.getElementById("codetext").innerHTML = document.getElementById(" ...