HibernateTemplate的用法以及作用
HibernateTemplate作用:从字面上意思我们就知道他是一个模板,然后我们又知道hibernate是一个对象关系映射的框架,所以我们很容易联想到他的功能就是将Hibernate 的持久层访问模板化。或者我们直接叫他为hibernate的持久化模板。
HibernateTemplate用法:
1、直接用,在实现类中继承HibernateDaoSupport类,然后this.getHibernateTemplate()直接获取到HibernateTemplate对象,就可以调用HibernateTemplate中封装的一些方法了。
2、不过这样用起来在系统中比较麻烦,每次都要在DAO的实现类中继承HibernateDaoSupport,我们可以对HibernateTemplate进行再次封装,java嘛都是这样封装 封装 继承 继承 抽象抽象 然后就多态了 。
下面我就直接上代码了 --对HibernateTemplate的再次封装实现公用的增删改查调用
<!--导入的架包-->
import java.io.Serializable;
import java.util.List;
public interface GenericDAO<T, ID extends Serializable> {
List<T> find(T var1);
ID save(T var1);
void remove(T var1);
void update(T var1);
/。。。。。。可以写其它一些系统业务需要的方法 ,这里我就只写增删改查。。。。。。。/
}
<!--实现类-->
<!--架包-->
import java.io.Serializable;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import java.util.List;
public class GenericDAOSpringImpl<T, ID extends Serializable> extends HibernateDaoSupport implements GenericDAO<T, ID> {
public ID save(T newInstance) {
Serializable id = this.getHibernateTemplate().save(newInstance);
this.getHibernateTemplate().flush();//强行的写入数据库
return id;
}
public void remove(T instance) {
this.getHibernateTemplate().delete(instance);
this.getHibernateTemplate().flush();
}
public void update(T instance) {
this.getHibernateTemplate().update(instance);
this.getHibernateTemplate().flush();
}
public List<T> find(T instance) {
return this.getHibernateTemplate().findByExample(instance);
}
}
HibernateTemplate的用法以及作用的更多相关文章
- GCD中的dispatch_apply的用法及作用
GCD中的dispatch_apply的用法及作用 (一)dispatch_apply的基本用法 dispatch_apply函数是dispatch_sync函数和Dispatch Group的关联A ...
- mysql关于视图的用法以及作用
关于视图的用法以及作用. 作用一: 提高了重用性,就像一个函数.如果要频繁获取user的name和goods的name.就应该使用以下sql语言.示例: select a.name as userna ...
- 【private HibernateTemplate template;】 的作用
[private HibernateTemplate template;] 的作用 这个是在spring中定义了一个bean,它是org.springframework.orm.hibernate3. ...
- C/C++中关键字static的用法及作用
本文将主要从static在C和C++共有的作用及C++特有的作用两个方面进行解析. 在C和C++中共有的作用 隐藏(对变量.函数均可) 当同时编译多个文件时,所有未加static前缀的全局变量或全局函 ...
- memset()函数用法及其作用
memset()函数原型是: extern void *memset(void *buffer, int c, int count) //buffer:为指针或是数组, //c:是赋给buffer的值 ...
- mysql游标的用法及作用
1当前有三张表A.B.C其中A和B是一对多关系,B和C是一对多关系,现在需要将B中A表的主键存到C中:常规思路就是将B中查询出来然后通过一个update语句来更新C表就可以了,但是B表中有2000多条 ...
- C# Eval在asp.net中的用法及作用
Eval( " ")和Bind( " ") 这两种一个单向绑定,一个双向绑定,bind是双向绑定,但需数据源支持 ASP.NET 2.0改善了模板中的数据绑定操 ...
- C# Eval在aspx页面中的用法及作用
Eval( " ")和Bind( " ") 这两种一个单向绑定,一个双向绑定,bind是双向绑定,但需数据源支持 ASP.NET 2.0改善了模板中的数据绑定操 ...
- hash在URL上的用法及作用
阅读目录 1. # 2. ? 3. & 回到顶部 1. # 10年9月,twitter改版.一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为http ...
随机推荐
- 微信js sdk的使用初步理解
第一步引入js文件 在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.2.0.js 备注:支持使用 AMD/C ...
- windows更改命令行cmd的字体为conlosas+微软雅黑
windows更改命令行cmd的字体为conlosas+微软雅黑 动力来源于对美孜孜不倦的追求~ 下载conlosas+微软雅黑字体 谢谢支持. 将解压后的YaHei.Consolas.1.12.tt ...
- 卷积在深度学习中的作用(转自http://timdettmers.com/2015/03/26/convolution-deep-learning/)
卷积可能是现在深入学习中最重要的概念.卷积网络和卷积网络将深度学习推向了几乎所有机器学习任务的最前沿.但是,卷积如此强大呢?它是如何工作的?在这篇博客文章中,我将解释卷积并将其与其他概念联系起来,以帮 ...
- 进程池、tornado、字体
协程: import grequests from fake_useragent import UserAgent urls=[f'http://bir删d.so/search?page={p ...
- Build.gradle的详细配置说明
转自:http://blog.csdn.net/u012246458/article/details/51722624 apply plugin: 'com.android.application'/ ...
- android启动画面隐藏状态栏全屏显示
1.在根部局给一个id,然后直接设置就行了layout.setSystemUiVisibility(View.INVISIBLE); 状态栏就没有了. 2.如果你只是想改变状态栏颜色的也可以 //5. ...
- Learning WCF:Life Cycle of Service instance
示例代码下载地址:WCFDemo1Day 概述 客户端向WCF服务发出请求后,服务端会实例化一个Service对象(实现了契约接口的对象)用来处理请求,实例化Service对象以及维护其生命周期的方式 ...
- Swift5 语言指南(十一) 结构和类
结构和类是通用的,灵活的结构,它们成为程序代码的构建块.您可以使用与定义常量,变量和函数相同的语法来定义属性和方法,以便为结构和类添加功能. 与其他编程语言不同,Swift不要求您为自定义结构和类创建 ...
- zookeeper常用指令
zk服务 bin 目录下常用的脚本解释 zkCleanup 清理 Zookeeper 历史数据,包括日志文件和快照数据文件 zkCli Zookeeper 的一个简易客户端 zkEnv 设置 Zook ...
- python常用库 - NumPy 和 sklearn入门
Numpy 和 scikit-learn 都是python常用的第三方库.numpy库可以用来存储和处理大型矩阵,并且在一定程度上弥补了python在运算效率上的不足,正是因为numpy的存在使得py ...