边做边学小型封装--利用主流框架进行Dao层通用化,Spring3.0+Hibernate3.3.2通用Dao层整合(四)...
了解Dao层的创建和HibernateSupportDao后,忘了要把Spring3.0的Jar包加进去lib文件夹里面,由于Spring3.0开始没有把所有需要有关联的Jar包跟功能整合包放在一起,所以我们需要一步一步的把Jar包加进去,首先先把Spring3.0必要的Jar包加进来,org.springframework.aop-3.0.0.RELEASE.jar、org.springframework.asm-3.0.0.RELEASE.jar、org.springframework.aspects-3.0.0.RELEASE.jar、org.springframework.beans-3.0.0.RELEASE.jar、org.springframework.context-3.0.0.RELEASE.jar、org.springframework.core-3.0.0.RELEASE.jar、org.springframework.expression-3.0.0.RELEASE.jar、org.springframework.jdbc-3.0.0.RELEASE.jar、org.springframework.orm-3.0.0.RELEASE.jar、org.springframework.transaction-3.0.0.RELEASE.jar 除了要上述包之外,还需要加入commons-collections-3.2.1.jar(对JDK的集合增强),commons-logging-1.1.1.jar,commons-logging-api-1.1.1.jar(日志记录),aopalliance.jar(aop切面jar.如果缺少会报错),jta-1.1.jar(Java事务),javassist-3.9.0.GA.jar(反编译.class文件快速动态生成类),把所有包都加入到lib后之前出现因为缺少包的错误信息就会消失,然后在applicationContext.xml文件中加入以下内容:
<context:annotation-config /><context:component-scan base-package="org.lxh" /><tx:annotation-driven transaction-manager="hibernateTransactionManager" /><bean id="hibernateTransactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref local="sessionFactory" /></property></bean>
context:annotation-config:是把Spring的Annotation(JPA)进行自动解释,
context:component-scan base-package="org.lxh" : 是对包的扫描,如果已经写了这个标签的话上面的context:annotation-config是可以不用再写入
hibernateTransactionManager:是我们BasicSupportDao注解中Resource所指向的id;这里先解释下Spring中几种常用的注解:
@Repository用于标注数据访问组件,即DAO组件
@Service用于标注业务层组件,即Service层
@Controller用于标注控制层组件(如struts中的action)
@Component泛指组件,当组件不好归类的时候可以使用这个注解进行标注
@Resource根据指定的名称进行反射获取所指向的bean
@Autowired对类成员变量、方法及构造函数进行标注,完成自动装配的工作
@Repository、@Service、@Component、@Service一般放在class上面进行注解,@Resource、@Autowired一般最好放在setter中,这样的话可以不会破坏其私有属性的,如果放在属性中的话会利用反射机制去获取对象。
Spring的配置完毕之后,接下来就是Service层的实现了Service层的设置就比较简单了,只是针对某个ORM进行,下面只是给出Service实现模块代码:
/** * 文件名:UserServiceImpl.java * * 版本信息: * 日期:2010-2-12 * Copyright 足下 Corporation 2010 * 版权所有 * */ package org.lxh.service.impl;import java.io.Serializable; import java.util.List; import javax.annotation.Resource; import org.lxh.bean.User; import org.lxh.dao.interfaces.BasicDaoIf; import org.lxh.service.interfaces.UserServiceIf; import org.springframework.stereotype.Service;@Service("userService") public class UserServiceImpl implements UserServiceIf {private BasicDaoIf<User, Integer> basicDao;public BasicDaoIf<User, Integer> getBasicDao() {return basicDao;}@Resource(name="basicDao")public void setBasicDao(BasicDaoIf<User, Integer> basicDao) {this.basicDao = basicDao;}@Overridepublic boolean clearAllUser(User user) {return basicDao.deleteAll(user);}@Overridepublic boolean clearUserById(Integer id) {return basicDao.deleteById(User.class, id);}@Overridepublic List<User> listAllUser() {return basicDao.findAll(User.class);}@Overridepublic User listUserById(Integer id) {return basicDao.findById(User.class, id);}@Overridepublic boolean modifyUser(User user) {return basicDao.update(user);}@Overridepublic boolean newUser(User user) {return basicDao.save(user);} }
在Service层中一般是要加上事务处理的,这里就偷了个懒,处理事务一般可以使用Spring自带的JPA实现使用@Transmission注解就可以了,而捕捉异常的话可以在Service层中加入TryCatch选项,BasicDaoIf<User, Integer> basicDao; 中的泛型约束是指当前的实体User,主键类型是Integer类型,一一对应于BasicDaoIf中的<T,t,PK extends Serializable>.创建完成后这样一个完整的Spring+Hibernate的基本的CRUD模块就实现完成了.
转载于:https://www.cnblogs.com/edwardlauxh/archive/2010/02/23/1918627.html
边做边学小型封装--利用主流框架进行Dao层通用化,Spring3.0+Hibernate3.3.2通用Dao层整合(四)...相关推荐
- 利用Spring框架封装的JavaMail现实同步或异步邮件发送
利用Spring框架封装的JavaMail现实同步或异步邮件发送 作者:张纪豪 J2EE简单地讲是在JDK上扩展了各类应用的标准规范,邮件处理便是其中一个重要的应用.它既然是规范,那么我们就可以通过J ...
- 利用Spring框架封装的JavaMail实现同步或异步邮件发送
J2EE简单地讲是在JDK上扩展了各类应用的标准规范,邮件处理便是其中一个重要的应用.它既然是规范,那么我们就可以通过JDK遵照邮件协议编写一个邮件处理系统,但事实上已经有很多厂商和开源组织这样做了. ...
- 0201小型封装ESD二极管,型号汇总
静电是电子产品中的"隐形破坏者",直接影响到产品的稳定性和可靠性.为此,静电防护成为了电子工程师必做的功课之一.那么,最有效的ESD静电防护方法是什么呢?那就是在电子设备的连接器或 ...
- 荣之学:如何利用大数据技术做好跨境电商
荣之学:跨国电子商务大数据技术综述. 大数据技术在电子商务跨境应用. (1)大数据技术.大容量指的是大容量的数据,无法用传统的数据获取方法.数据库和研究方法对数据集进行分析.在传统数据分析中,通常采用 ...
- 边做边学:《 Inter Planetary File System》简介
by Niharika Singh 由Niharika Singh 边做边学:< Inter Planetary File System>简介 (Learn by doing: a nic ...
- 迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践(1)
迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践 0.相关文章 1.导入所使用的包 2. 定义迷宫 3.定义迷宫动作 4.策略参数θ转换为行动策略π 5.定义随机移动函数 6.定义使智 ...
- 用C++做一个特小型恶意程序
用C++做一个特小型恶意程序 #include <windows.h> #include <ctime> #include <cstdlib> using name ...
- PJ331 PJ501超小型封装PFM DC/DC升压稳压器
PJXX1 超小型封装PFM DC/DC升压稳压器 PJXX1CP/M(输出电压2.7/2.8/3.0/3.3/3.6/3.7/3.8/4.0/4.2/4.5/5.0/5.6/5.7,300mA)这些 ...
- 做外贸究竟要怎么利用好海关数据?这里给你最好的方案
做外贸究竟要怎么利用好海关数据?这里给你最好的方案 在很久的一段时间,我认知我们外贸人使用海关数据的情况是直接查询产品然后查询公司等.主要是判断我们正在联系的客户是否有进出口记录,找到他的合作公司,分 ...
最新文章
- 【建站系列教程】3、建站基本技术介绍
- java jpa 字段 关联_jpaQuery中查询字段是关联表的查询方法以及@JoinEntity(joinEntityAlias =str)的作用和代码编写的规范...
- asp.net 按钮单击事件问题(自动弹出新窗口)
- C#Word转Html的类
- python 输出 GPU内存 最大使用率
- DCC-GARCH模型及动态CoVaR计算 案例与代码
- Exchange server 2007搭建私有邮件系统测试备忘
- jdbc mysql 存储过程查询数据_jdbc调用mysql存储过程实现代码
- tfhpple解析html中的图片,图文详解使用TFHpple解析html方法
- 第一冲刺阶段(第四天)
- Raki的读paper小记:LAMOL: LANGUAGE MODELING FOR LIFELONG LANGUAGE LEARNING
- 2020年实验室安全准入考试
- c语言仿宋gb2312字体,gb2312字体下载|仿宋gb2312字体 v2.0 官方版-520下载站
- Java编程练习题:Demo17-Demo32
- 并发,同步,异步以及事件驱动编程的相关技术
- 二元加权电容器阵列的构造性共质心布局与布线
- U盘修复“系统找不到指定文件”问题记录
- 2401C可解RFX2401C缺货的燃眉之急,也可直接诶替代CC2592/CC2591
- 零基础入门金融风控-贷款违约预测_Task1
- 解决报错:did not contain a valid NDK and couldn‘t be used
热门文章
- 修改docx表格_实例29_在Word表格中将上下行相同内容的单元格自动合并
- Android版本Oppo电视,OPPO 智能电视 R1
- 启动之后自己关闭_如何关闭Mac开机总是要输入密码?
- Windows7下VS2013+WDK8.1开发WDF驱动程序全过程
- RDP协议详细解析(二)
- 吴恩达深度学习5.3练习_Sequence Models_Trigger word detection
- PAT A1057 分块思想
- CentOS安装mariadb做为mysql的替代品
- HP 380 G5安装CentOS7时找不到P400 raid卡
- TCC-Transaction TCC 实现