Spring中使用GetHibernateTemplate

合成生物学中试:花钱只是开始,烧钱才是常态 2026年合成生物学行业面临严峻产业化挑战:多家企业终止发酵项目或延期投产,显示从实验室到工厂的转化困境。核心问题并非基因合成成本,而是工艺放大难题——67%项目在中试阶段因工艺问题失败。AI辅助无法替代工程经验,菌株-配方-工艺的三元适配需要长期数据积累。中试成本惊人,涉及设备折旧、原料消耗和稀缺工艺人才,而行业普遍回避讨论这些工程现实,导致认知偏差。建议创业者提前布局中试,将其视为核心竞争力而非简单成本项。合成生物学的真正瓶颈在于工程化能力,这需要时间沉淀而非技术叙事。 阅读详情

getHibernateTemplate

前提条件:你的类必须继承HibernateDaoSupport 
一: 
回调函数: 
public List getList(){
   return (List ) getHibernateTemplate().execute(
     new HibernateCallback() {
      public List doInHibernate(final Session s)
        throws HibernateException, SQLException {

     StringBuffer sb = new StringBuffer();
     Query query = s.createSQLQuery(sb.toString());//<STRONG>执行普通sql</STRONG>
     Query query = s.createQuery(sb.toString());// <STRONG>执行hql </STRONG>
     List list = query.list();
     return list ;
      }
     });   
}
采用这种做法的好处是:不用关心事务。session的创建和销毁,一切都在程序内部完成。看看名字doInHibernate就知道好处了。不好的是程序看起来比较乱!个人认为。 
二: 
getHibernateTemplate().find():
List list = getHibernateTemplate().find(String sql ):
这种的前提是sql必须是hql ,原始sql 不能执行。

三: 
自己获取session处理。 
获取session的两种方式:this.getSession();和this.getHibernateTemplate().getSessionFactory().openSession(); 
获取session以后再createQuery操作就一样了。但是这种做法,是需要自己去手动关闭session的。所以你需要配置openSessioninview,个人认为不推荐使用!

其他: 
getHibernateTemplate.delete(Object);

getHibernateTemplate.save(Object); 
getHibernateTemplate.update(Object);

总结:推荐使用回调函数。

HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。下面是HibernateTemplate的常用方法简介:

q void delete(Object entity):删除指定持久化实例

q deleteAll(Collection entities):删除集合内全部持久化类实例

q find(String queryString):根据HQL查询字符串来返回实例集合

q findByNamedQuery(String queryName):根据命名查询返回实例集合

q get(Class entityClass, Serializable id):根据主键加载特定持久化类的实例

q save(Object entity):保存新的实例

q saveOrUpdate(Object entity):根据实例状态,选择保存或者更新

q update(Object entity):更新实例的状态,要求entity是持久状态

q setMaxResults(int maxResults):设置分页的大小

下面是一个完整DAO类的源代码:

public class PersonDAOHibernate implements PersonDAO

{

 //采用log4j来完成调试时的日志功能

private static Log log = LogFactory.getLog(NewsDAOHibernate.class);

 //以私有的成员变量来保存SessionFactory。

private SessionFactory sessionFactory;

//以私有变量的方式保存HibernateTemplate

private HibernateTemplate hibernateTemplate = null;

 //设值注入SessionFactory必需的setter方法

 public void setSessionFactory(SessionFactory sessionFactory)

{

 this.sessionFactory = sessionFactory;

 }

 //初始化本DAO所需的HibernateTemplate

public HIbernateTemplate getHibernateTemplate()

{

 //首先,检查原来的hibernateTemplate实例是否还存在

 if ( hibernateTemplate == null)

 {

 //如果不存在,新建一个HibernateTemplate实例

 hibernateTemplate = new HibernateTemplate(sessionFactory);

 }

 return hibernateTemplate;

}

 //返回全部的人的实例

 public List getPersons()

 {

 //通过HibernateTemplate的find方法返回Person的全部实例

 return getHibernateTemplate().find("from Person");

 }

 public void savePerson(Person person)

 {

 getHibernateTemplate().saveOrUpdate(person);

 }

 /**

 * @ param personid 需要删除Person实例的主键

 * /

 public void removePerson(int personid)

 {

 //先加载特定实例

 Object p = getHibernateTemplate().load(Person.class, new Integer(personid));

 //删除特定实例

 getHibernateTemplate().delete(p);

 }

}

AUTOSAR从入门到精通-中间件通信DDS(一) 汽车开放系统架构(automotive open system architecture,autosar)是由全球各大汽车oem、零部件供应商、汽车电子软件公司联合建立的一套标准协议。该协议规范了一个符合汽车电子软件开发的、开放的以及标准化的软件架构。最初的autosar规范的制定只考虑传统汽车电子电器架构,基于硬件算力有限场景,提供确定的功能。 阅读详情

相关推荐

LabVIEW与三菱PLC通讯实战:ActiveX控件在FX5U上的应用技巧

本文深入探讨了如何利用三菱MX Component中的ActiveX控件,在LabVIEW中实现与FX5U系列PLC的高效、稳定通讯。文章从环境配置、ActiveX控件生命周期管理、数据读写性能优化及容错机制等实战角度,分享了构建工业级健壮通讯程序的核心技巧与架构设计思路。

qsc9012345的博客 888

getHibernateTemplate方法

getHibernateTemplate 前提条件:你的类必须继承HibernateDaoSupport  一:  回调函数:  public List getList(){    return (List )getHibernateTemplate().execute(     new HibernateCallback() {      public List doInHiber

i_mc_90的专栏 1322

保姆级教程:在RK3588开发板上驱动多路MIPI摄像头(从VICAP配置到ISP调优)

本文详细介绍了在RK3588开发板上驱动多路MIPI摄像头的完整流程,从VICAP配置到ISP调优的全方位解析。通过硬件架构分析、开发环境搭建、设备树配置、V4L2数据采集以及ISP图像调优等步骤,帮助开发者高效实现多路摄像头驱动,适用于工业检测和智能安防等领域。

weixin_42552315的博客 388

getHibernateTemplate().execute(new HibernateCallback())方法

1. HibernateCallback是一个接口,该接口只有一个方法doInHibernate(org.hibernate.Session session),该方法   只有一个参数 Session。   2. 方法 doInHibernate 的方法体就是 Spring执行的持久化操作。   3. 使用HibernateTemplate执行execute(new Hibernate...

zhangmiao12的专栏 359

SAP ABAP实战:手把手教你用BAPI_BILLINGDOC_CREATEMULTIPLE批量开票(附完整代码与避坑指南)

本文详细解析了SAP ABAP中BAPI_BILLINGDOC_CREATEMULTIPLE批量开票的全流程,包括参数配置、事务控制、错误处理及性能优化。通过实战案例和完整代码示例,帮助开发者高效处理大批量发票生成任务,避免常见陷阱,提升开发效率。

weixin_34101914的博客 265

计组实验5:cache大小测量与 cache line 大小测量

前言 今天做了实验5,通过 c 语言测 cache 参数。其实按理来说挺简单的,只是我们班没给代码,纯靠自己。听说别的班有给代码 emm 因为《深入理解计算机系统》这本书上面给的代码是 Linux 平台下的,而且需要一个 fcyc2 头文件,可以在 https://github.com/fabiensanglard/CpuCacheMountainViewer 这里找到。 ⚠ 我没有在 Linux 下试过课本上面的代码。。。 我是在 win10 下测试的。。。 所以 。。。 我并不确定我的代码是否正确。

AKGWSB 's blog 1万+

遇到异常Session/EntityManager is closed

使用struts2+hibernate遇到的问题 使用hibernate操作是数据库时遇到异常Session/EntityManager is closed 1、第一进行删除操作时,会调用dao层进行删除,但是 第二次在继续删除时就会报异常 原因:每次调用了session之后, 在事务提交了以后就会把session关闭 这是因为Hibernate会维护这个Session, 在我提交事务的时...

qq_38707216的博客 9572

如何实现MCGS与S7-200SMART PLC以太网多台通信控制?

第九步:(设备工具箱—设备管理—鼠标依次点击通用TCP/IP父设备—西门子_ Smart200到设备窗口里面去)数据类型:第0位(指PLC地址变量小数点后面的位数,例如我地址是M0.0,那么在数据类型应填写通道的第00位)第十步:(鼠标双击打开通用TCPIP父设备0--[通用TCP/IP父设备]进入通信配置)通道地址:0(指小数点前面起始字节的地址,例如我地址是M0.0,那么应在通道地填写0)。第七步:(选择通用TCP/IP父设备,点击新增,右侧选定设备就会自动添加进去。

u010670857的博客 6713

Hibernate hql getHibernateTemplate()常用方法汇总

getHibernateTemplate()常用方法 [b]一、find(String queryString);  [/b]       示例:[code="java"]this.getHibernateTemplate().find("from bean.User");[/code]         返回所有User对象   [b]二、find(String querySt...

zwdsmileface的专栏 401

海洋科学—物理海洋学 第五章 海洋环流

本章是基于《海洋科学导论》,但里面涉及到的重要的公式推导是专门拎出来推的,主要借鉴董昌明老师的《物理海洋学导论》,其中有一些多出来的推导,会在更新完整个物理海洋学之后重新拿出来一一讲解,最后开一个番外篇

qq_58518586的博客 1万+

企业微信API实战:解密external_userid的跨应用一致性管理

本文深入探讨企业微信API中external_userid的跨应用一致性管理问题,解析其本质及在不同应用场景下的ID不一致挑战。通过ID转换与统一管理方案,结合unionid实现跨应用客户数据整合,提供实战代码示例和架构设计,助力企业构建高效的客户管理系统。

weixin_29258297的博客 636

Hibernate 的getHibernateTemplate()方法使用

<br />getHibernateTemplate()spring 中获得由spring所配置的hibernate的操作对象,然后利用此对象进行,保存,修改和删除等操作,此方法是在配置了spring以后,hibernate由spring接管,不直接使用hibernate的session了 HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的

wintree的专栏 2万+

5.7 医疗 Agent 实战:构建一个懂“望闻问切”的智能医疗咨询助手

本文介绍了如何构建一个智能医疗咨询助手项目,通过LoRA微调和vLLM部署技术,将通用大模型改造为专业"AI皮肤科医生"。项目采用精简架构:Streamlit前端直接与vLLM推理服务通信,重点展示了微调模型在专业性、安全性和同理心方面的显著提升。实施步骤包括:部署微调模型、构建交互界面,并通过对比测试验证微调效果。项目强调AI仅作为咨询助手而非医生替代品,始终以引导用户寻求专业医疗帮助为核心目标,体现了负责任AI应用的关键原则。

yonggeit的博客 2959

spring框架中getSession与getHibernateTemplate的区别

一直都很疑惑在spring框架中getSession与getHibernateTemplate的区别。相同的地方不用说大家都是调用数据库返回结果的。但为什么要这样有二个不同的兄弟呢。认真学习了一下(其实还是很粗略的) 从使用上看 getHibernateTemplate必须继承或实例HibernateDaoSupport当然包括sessionFactory Java代码 @S...

Java-Jinguo 176

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Spring 的 getHibernateTemplate() 和getSession()的区别

1.使用getSession()方法你只要继承sessionFactory,而使用getHibernateTemplate()方法必须继承 HibernateDaoSupport当然包括sessionFactory,这点区别都不是特别重要的,下面这些区别就很重要了 2.getSession()方法是没有经过spring包装的,spring会把最原始的session给你,在使用完之后必须自己调用相...

lanmaokyle的专栏 155

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

spring+hibernate整合中HibernateTemplate对象的getHibernateTemplate()获取为空

在spring+hibernate整合中HibernateTemplate对象的getHibernateTemplate()获取为空,各路大侠请指教指教!!

livem 995

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Spring中常用的hql查询方法(getHibernateTemplate())

继承org.springframework.orm.hibernate3.support.HibernateDaoSupport类 getHibernateTemplate() spring 中获得由spring所配置的hibernate的操作对象,然后利用此对象进行,保存,修改和删除等操作, 此方法是在配置了spring以后,hibernate由spring接管,不直接使用hi

从来年少爱做梦,一心只想往前飞 885

getSession()与getHibernateTemplate()区别

getSession()与getHibernateTemplate()区别一直都很疑惑在spring框架中getSession与getHibernateTemplate的区别。相同的地方不用说大家都是调用数据库返回结果的。但为什么要这样有二个不同的兄弟呢。认真学习了一下(其实还是很粗略的)从使用上看getHibernateTemplate必须继承或实例HibernateDaoSupport当然包括sessionFactoryJava代码  @SuppressWarnings ( "unchecked" ) 

highwhite2009的专栏 637

getSession与getHibernateTemplate…

一直都很疑惑在spring框架中getSession与getHibernateTemplate的区别。相同的地方不用说大家都是调用数据库返回结果的。但为什么要这样有二个不同的兄弟呢。认真学习了一下(其实还是很粗略的) 从使用上看 getHibernateTemplate必须继承或实例HibernateDaoSupport当然包括sessionFactory Java代码   @Suppr

huangleijay的专栏 774

spring getHibernateTemplate() 返回null的问题

public class BasicDAOImpl extends HibernateDaoSupport implements BasicDAO{                public List findByHql(String hql)throws DataAccessException{      System.out.println("1111111111111"+getHi

chanllen的专栏 1807

在spring中 getHibernateTemplate 运用session

对应spring中数据库的访问,spring封装好了 HibernateTemplate。但有的时候还是回想用 session。 return (List)hibernateTemplate.execute( public Object doInHibernate(Session session) throws Hibernate Exception { List

wwwcomcn123的专栏 769

spring+hibernate 使用getHibernateTemplate实现分页

实现分页操作的代码: public List findPage(final int page ,final int pageSize){ //利用HibernateTemplate.execute()方法,以回调方式使用,不需要关闭session List costList = (List)getHibernateTemplate().exec

XiChuan的博客 5293

Spring HibernateTemplate getHibernateTemplate()

一、find(String queryString); 示例:this.getHibernateTemplate().find("from bean.User"); 返回所有User对象 二、find(String queryString , Object value); 示例:this.getHibernateTemplate().fin...

大漠孤烟 165

getHibernateTemplate()和getSession()的区别(转)

自动生成hibernate配置文件的时候,会在dao层用到getSession()方法来操作数据库记录,但是他还有个方法getHibernateTemplate(),这两个方法究竟有什么区别呢? 1.使用getSession()方法你只要继承sessionFactory,而使用getHibernateTemplate()方法必须继承 HibernateDaoSupport当然包括sessio...

先相信你自己,然后别人才会相信你。 227
上一篇: JAVA类中如何利用Comparator实现自定义排序
下一篇: 2014年影响Web前端发展的五类API
一博一言
博客等级 码龄15年 307粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值