基于HibernateTemplate关于Hibernate 增删改查

深入排查127.0.0.1拒绝连接:从端口占用到Tomcat服务启动的完整解决方案 本文针对开发者访问127.0.0.1时遭遇“拒绝连接”的常见问题,提供了一套完整的排查与解决方案。文章从端口占用检查入手,详细讲解了使用netstat命令识别进程,并深入分析了服务监听地址、IPv6配置、防火墙以及Tomcat服务安装与启动等核心环节。通过实战演练,指导读者系统性地解决从网络层到应用层的各类连接问题,最终确保本地服务成功运行并可通过本地回环地址正常访问。 阅读详情

转自:微点阅读 https://www.weidianyuedu.com

Hibernate 增删改查

package com.abin.ssh.bean;

import java.util.List;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.hibernate.LockMode;

import org.springframework.context.ApplicationContext;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class UsersDAO extends HibernateDaoSupport {undefined

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

// property constants

public static final String FAMILY = "family";

public static final String NAME = "name";

public static final String AGE = "age";

protected void initDao() {undefined

// do nothing

}

public void save(Users transientInstance) {undefined

log.debug("saving Users instance");

try {undefined

getHibernateTemplate().save(transientInstance);

log.debug("save successful");

} catch (RuntimeException re) {undefined

log.error("save failed", re);

throw re;

}

}

public void delete(Users persistentInstance) {undefined

log.debug("deleting Users instance");

try {undefined

getHibernateTemplate().delete(persistentInstance);

log.debug("delete successful");

} catch (RuntimeException re) {undefined

log.error("delete failed", re);

throw re;

}

}

public Users findById(java.lang.Integer id) {undefined

log.debug("getting Users instance with id: " + id);

try {undefined

Users instance = (Users) getHibernateTemplate().get(

"com.abin.ssh.bean.Users", id);

return instance;

} catch (RuntimeException re) {undefined

log.error("get failed", re);

throw re;

}

}

public List findByExample(Users instance) {undefined

log.debug("finding Users instance by example");

try {undefined

List results = getHibernateTemplate().findByExample(instance);

log.debug("find by example successful, result size: "

+ results.size());

return results;

} catch (RuntimeException re) {undefined

log.error("find by example failed", re);

throw re;

}

}

public List findByProperty(String propertyName, Object value) {undefined

log.debug("finding Users instance with property: " + propertyName

+ ", value: " + value);

try {undefined

String queryString = "from Users as model where model."

+ propertyName + "= ?";

return getHibernateTemplate().find(queryString, value);

} catch (RuntimeException re) {undefined

log.error("find by property name failed", re);

throw re;

}

}

public List findByFamily(Object family) {undefined

return findByProperty(FAMILY, family);

}

public List findByName(Object name) {undefined

return findByProperty(NAME, name);

}

public List findByAge(Object age) {undefined

return findByProperty(AGE, age);

}

public List findAll() {undefined

log.debug("finding all Users instances");

try {undefined

String queryString = "from Users";

return getHibernateTemplate().find(queryString);

} catch (RuntimeException re) {undefined

log.error("find all failed", re);

throw re;

}

}

public Users merge(Users detachedInstance) {undefined

log.debug("merging Users instance");

try {undefined

Users result = (Users) getHibernateTemplate().merge(

detachedInstance);

log.debug("merge successful");

return result;

} catch (RuntimeException re) {undefined

log.error("merge failed", re);

throw re;

}

}

public void attachDirty(Users instance) {undefined

log.debug("attaching dirty Users instance");

try {undefined

getHibernateTemplate().saveOrUpdate(instance);

log.debug("attach successful");

} catch (RuntimeException re) {undefined

log.error("attach failed", re);

throw re;

}

}

public void attachClean(Users instance) {undefined

log.debug("attaching clean Users instance");

try {undefined

getHibernateTemplate().lock(instance, LockMode.NONE);

log.debug("attach successful");

} catch (RuntimeException re) {undefined

log.error("attach failed", re);

throw re;

}

}

public static UsersDAO getFromApplicationContext(ApplicationContext ctx) {undefined

return (UsersDAO) ctx.getBean("UsersDAO");

}

}

================================================================================================

/**

* 向数据库添加一条对应于一个业务对象实例的记录

*

* @param entity

* 业务对象实例

*/

public Entity create(Entity entity) throws DaoException {undefined

try {undefined

getHibernateTemplate().save(entity);

return entity;

} catch (DataAccessException e) {undefined

throw new DaoException("保存 " + entity.getClass().getName()

+ " 实例到数据库失败", e);

}

}

/**

* 向数据库更新一条对应于一个业务对象实例的记录

*

* @param entity

* 业务对象实例

*/

public void update(Entity entity) throws DaoException {undefined

try {undefined

getHibernateTemplate().update(entity);

} catch (DataAccessException e) {undefined

throw new DaoException("更新 " + entity.getClass().getName()

+ " 实例到数据库失败", e);

}

}

/**

* 从数据库删除一条对应于一个业务对象的记录

*

* @param entity

* 业务对象实例

*/

public void delete(Entity entity) throws DaoException {undefined

try {undefined

getHibernateTemplate().delete(entity);

} catch (DataAccessException e) {undefined

throw new DaoException("从数据库删除 " + entity.getClass().getName()

+ " 实例失败", e);

}

}

/**

* 从数据库删除所有对应于一个业务对象的记录

*

* @param clazz

* 指定类型的业务对象

*/

public void deleteAll(Class clazz) throws DaoException {undefined

try {undefined

List result = getHibernateTemplate().loadAll(clazz);

//如果这里的clazz里面有其他对象的引用则不可以这样直接删除,必须先把里面的引用删除掉之后才可以删除该对象

getHibernateTemplate().deleteAll(result);

} catch (DataAccessException e) {undefined

log.error("从数据库删除 " + clazz.getName() + " 的所有记录失败", e);

throw new DaoException("从数据库删除 " + clazz.getName() + " 的所有记录失败", e);

}

}

public void deleteAll(Collection entities) throws DaoException {undefined

try {undefined

getHibernateTemplate().deleteAll(entities);

} catch(DataAccessException e) {undefined

throw new DaoException(e);

}

}

/**

* 根据关键字从数据库加载指定类型的业务对象。

*

* @param clazz

* 业务对象的Class

* @param keyName

* 指定关键字对应的字段名称

* @param keyValue

* 指定关键字的值

* @return <ul>

* <li>当关键字唯一并存在该记录时,返回该记录对应的业务对象</li>

* <li>当关键字不唯一,返回查询结果的第一条记录所对应的业务对象</li>

* <li>当不存在该记录时,返回null</li>

*/

public Object loadByKey(Class clazz, String keyName, Object keyValue)

throws DaoException {undefined

try {undefined

List result = getHibernateTemplate().find(

"from " + clazz.getName() + " where " + keyName + " = ?",

keyValue);

if (result != null && result.size() > 0) {undefined

return result.get(0);

} else {undefined

return null;

}

} catch (DataAccessException e) {undefined

throw new DaoException("加载 " + keyName + " 为 " + keyValue + " 的 "

+ clazz.getName() + " 实例失败", e);

}

}

/**

* 从数据库加载指定类型的业务对象的所有记录。

*

* @param clazz

* 业务对象的Class

* @return 返回数据库中对应该业务对象的所有记录的集合

*/

public List loadAll(Class clazz) throws DaoException {undefined

try {undefined

return getHibernateTemplate().loadAll(clazz);

} catch (DataAccessException e) {undefined

throw new DaoException("加载所有 " + clazz.getName() + " 实例时失败", e);

}

}

/**

* 根据查询语句查询数据库并返回查询结果所包含的业务对象集合。

*

* @param queryString

* 指定查询语句

* @return 返回查询结果包含的业务对象集合

*/

public List find(String queryString) throws DaoException {undefined

try {undefined

return getHibernateTemplate().find(queryString);

} catch (DataAccessException e) {undefined

throw new DaoException("执行查询 " + queryString + " 失败", e);

}

}

/**

* 根据带一个参数的查询语句查询数据库并返回查询结果所包含的业务对象集合。

*

* @param queryString

* 指定查询语句

* @param param

* 指定所带参数

* @return 返回查询结果包含的业务对象集合

*/

public List find(String queryString, Object param) throws DaoException {undefined

try {undefined

return getHibernateTemplate().find(queryString, param);

} catch (DataAccessException e) {undefined

throw new DaoException("执行参数为 " + param + " 的查询 " + queryString

+ " 失败", e);

}

}

/**

* 根据带多个参数的查询语句查询数据库并返回查询结果所包含的业务对象集合。

*

* @param queryString

* 指定查询语句

* @param params

* 指定参数数组

* @return 返回查询结果包含的业务对象集合

*/

public List find(String queryString, Object[] params) throws DaoException {undefined

try {undefined

return getHibernateTemplate().find(queryString, params);

} catch (DataAccessException e) {undefined

StringBuffer paramString = new StringBuffer("");

for (int i = 0; i < params.length; i++) {undefined

paramString.append(params[i]);

paramString.append(" ");

}

throw new DaoException("执行参数为 " + paramString + "的查询 "

+ queryString + " 失败", e);

}

}

/**

* 根据已定义的查询语句查询数据库并返回查询结果所包含的业务对象集合。

*

* @param queryName

* 已定义查询语句的名称

* @return 返回查询结果包含的业务对象集合

*/

public List findByNamedQuery(String queryName) throws DaoException {undefined

try {undefined

return getHibernateTemplate().findByNamedQuery(queryName);

} catch (DataAccessException e) {undefined

throw new DaoException("执行命名为 " + queryName + " 的查询失败");

}

}

/**

* 根据已定义的带一个参数的查询语句查询数据库并返回查询结果所包含的业务对象集合。

*

* @param queryName

* 已定义查询语句的名称

* @param param

* 指定的参数

* @return 返回查询结果包含的业务对象集合

*/

public List findByNamedQuery(String queryName, Object param)

throws DaoException {undefined

try {undefined

return getHibernateTemplate().findByNamedQuery(queryName, param);

} catch (DataAccessException e) {undefined

throw new DaoException("执行参数为 " + param + " 命名为 " + queryName

+ " 的查询失败");

}

}

/**

* 根据已定义的带多个参数的查询语句查询数据库并返回查询结果所包含的业务对象集合。

*

* @param queryName

* 已定义查询语句的名称

* @param params

* 指定的参数数组

* @return 返回查询结果包含的业务对象集合

*/

public List findByNameQuery(String queryName, Object[] params)

throws DaoException {undefined

try {undefined

return getHibernateTemplate().findByNamedQuery(queryName, params);

} catch (DataAccessException e) {undefined

StringBuffer paramString = new StringBuffer("");

for (int i = 0; i < params.length; i++) {undefined

paramString.append(params[i]);

paramString.append(" ");

}

throw new DaoException("执行参数为 " + paramString + "命名为 " + queryName

+ " 的查询失败");

}

}

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) :设置分页的大小

Java代码 

Hibernate 的复杂用法 HibernateCallback

HibernateTemplate 还提供一种更加灵活的方式来操作数据库,通过这种方式可以完全使用 Hibernate 的操作方式。 HibernateTemplate 的灵活访问方式是通过如下两个方法完成:

q      Object execute(HibernateCallback action)

q      List execute(HibernateCallback action)

这两个方法都需要一个 HibernateCallback 的实例, HibernateCallback 实例可在任何有效的 Hibernate 数据访问中使用。程序开发者通过 HibernateCallback ,可以完全使用 Hibernate 灵活的方式来访问数据库,解决Spring 封装 Hibernate 后灵活性不足的缺陷。 HibernateCallback 是一个接口,该接口只有一个方法doInHibernate(org.hibernate.Session session) ,该方法只有一个参数 Session 。

通常,程序中采用实现 HibernateCallback 的匿名内部类来获取 HibernateCallback 的实例,方法doInHibernate 的方法体就是 Spring 执行的持久化操作

避开这些坑!baostock获取股票数据时最容易犯的5个错误(Python实战) 本文针对使用Python和baostock库获取股票历史数据时常见的五大陷阱,提供了实战解决方案。重点剖析了登录状态验证、参数配置、数据解析、批量操作效率及数据一致性校验等关键环节,帮助开发者构建稳健高效的数据获取流程,避免因细节疏忽导致的数据错误或性能瓶颈。 阅读详情

相关推荐

FPGA工程师必看:JESD204B同步机制实战指南(含SYSREF信号调试技巧)

本文为FPGA工程师提供了一份JESD204B同步机制的实战指南,重点聚焦于SYSREF信号的调试技巧。文章从同步的核心逻辑出发,深入剖析了时钟、SYSREF与对齐序列这“三驾马车”的协作,并详细阐述了硬件PCB布局、FPGA IP核配置、状态机监控以及使用示波器进行波形分析等关键实战步骤,旨在帮助工程师解决多通道高速系统中的同步难题,确保链路的稳定与确定性延迟。

weixin_29239661的博客 308

Hibernate.gethibernatetemplate 实现增、删、改、查 方法

1. find(String hql);  //普通查询    示例:this.gethibernateTemplate().find("from User");   2. find(String hql,Object value);//一个查询条件    示例:this.gethibernateTemplate().find("from User u where u.

solobear的专栏 3262

高通Camx功能feature分析之十:高通NCS服务之注册和启动

本文介绍了高通NCS(非相机传感器)服务的注册与启动流程。NCS通过QMI接口访问陀螺仪等传感器,为相机EIS/AEC等功能提供辅助数据。文章详细解析了服务注册时的QueryCapabilites能力查询、RegisterService注册流程,以及通过StartNCSService启动服务线程的过程。重点包括:1)AF/EIS等节点通过NCSService创建传感器对象;2)注册时需校验传感器类型和接口;3)首次注册成功后会启动NCS服务线程;4)采样率变化时需重新配置会话。通过线程池管理实现传感器数据的

1218

7. Spring Hibernate 整合

XML配置反向生成cn.po实体类package cn.po; /** * Bank entity. @author MyEclipse Persistence Tools */ public class Bank implements java.io.Serializable { // Fields private Integer bid; private String una...

Class雷 228

java.lang.UnsupportedOperationException: Not supported by BasicDataSource

<br />find by property name failed<br />java.lang.UnsupportedOperationException: Not supported by BasicDataSource<br /> at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:899)<br /> at org.springframework.jdbc.datasource.User

什么windows,linux,Mac OS 4140

HibernateTemplateHibernateDaoSupport两种方法实现增删改查Good

首先,定义一个Customer的bean类,设置好Customer.hbm.xml文件。再定义好一个Dao接口。准备好一个jdbc.properties文件。 第一种方法: 在dao类中定义一个HibernateTemplate类的对象,用该对象调用HibernateTemplate模板封装好的方法,如下: /***  * hibernateTemplate的转配模式 

u010417178的博客 2094

HibernateTemplate删除数据小结

删除 DAO代码: public void delete(Integer lid) { log.debug("deleting Login instance"); try { Login login=(Login)this.getHibernateTemplate().load(Login.class,lid); ge

jazywoo_在路上 1258

Hibernate 增删改查 基于HibernateTemplate

转载自品略图书馆http://www.pinlue.com/article/2020/03/2617/2710056856318.html Hibernate增删改查 package com.abin.ssh.bean; import java.util.List; import org.apache.commons.logging.Log; import org.apach...

yihuliunian的博客 496

javaEE SSH三大框架整合,Spring整合HibernateHibernateTemplate实现增删改查,Dao层基类

  BaseDaoImpl.java(Dao层基类,HibernateTemplate实现增删改查): package cn.xxx.dao.impl; import java.io.Serializable; import java.lang.reflect.ParameterizedType; import java.util.List; import org.hibernate.c...

houyanhua1的专栏 562

[Hibernate]HibernateTemplateHibernateDaoSupport两种方法实现增删改查

spring+hibernate两种方法实现增删改查首先,定义一个Customer的bean类,设置好Customer.hbm.xml文件。再定义好一个Dao接口。准备好一个jdbc.properties文件。 第一种方法:在dao类中定义一个HibernateTemplate类的对象,用该对象调用HibernateTemplate模板封装好的方法,如下: /*** * hibern

马叔叔的积累之路 795

Hibernate访问数据库,HibernateTemplate操作数据库,实现增删改查

1、首先创建封装Hibernate的Dao类 import java.io.Serializable; import java.util.List; import javax.annotation.Resource; import org.springframework.orm.hibernate5.HibernateTemplate; import org.springframework....

meixi_android的博客 962

spring入门(11)-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象)

今天是spring的最后一节课,这节课老师讲了spring与hibernate整合完成增删改查的操作,这是很重要的一节课,这也是第一次真正的实现spring结合Hibernate和数据库连接上,下面是这次课的过程实现: 首先是数据库建表:采用Oracle数据库,在Scott用户里新建USERS表, 所用jar包: 实现源码如下: Users.java package ww

国旭 的专栏 8386

HibernateTemplate的用法

HibernateTemplate作用:从字面上意思我们就知道他是一个模板,然后我们又知道hibernate是一个对象关系映射的框架,所以我们很容易联想到他的功能就是将Hibernate 的持久层访问模板化。或者我们直接叫他为hibernate的持久化模板。 HibernateTemplate用法: 1、直接用,在实现类中继承HibernateDaoSupport类,然后this.getHibernateTemplate()直接获取到HibernateTemplate对象,就可以调用H...

weixin_57763462的博客 776

spring入门-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象)

spring入门-spring与hibernate整合完成增删改查的操作(封装HibernateTemplate模版类对象) 今天是spring的最后一节课,这节课老师讲了spring与hibernate整合完成增删改查的操作,这是很重要的一节课,这也是第一次真正的实现spring结合Hibernate和数据库连接上,下面是这次课的过程实现: 首先是数据库建表:采用Oracle数据库,

bestlove12345的博客 1790

HibernateTemplate的用法以及作用

HibernateTemplate作用:从字面上意思我们就知道他是一个模板,然后我们又知道hibernate是一个对象关系映射的框架,所以我们很容易联想到他的功能就是将Hibernate 的持久层访问模板化。或者我们直接叫他为hibernate的持久化模板。 HibernateTemplate用法: 1、直接用,在实现类中继承HibernateDaoSupport类,然后this.g...

weixin_30386713的博客 366

HibernateTemplate类的使用

HibernateTemplate 提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。 1. .find(String queryString);  queryString:hql查询语句 Stri...

weixin_34390105的博客 361

J2EE进阶(十六)Hibernate 中getHibernateTemplate()方法使用

Hibernate封装了对数据库的例行操作,比单纯的jdbc的DAO,开发效率要高很多了。提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。结合struts2的事件过滤规则,需要添加额外的参数,但是这又与POST的提交方式相违背(POST与GET提交方式的区别,详见博文《的操作对象,然后利用此对象进行,保存,修改和删除等操作,此方法是在配置了。经查看代码,发现果然是数据库中userId为空导致问题的出现。...

IT全栈 华强工作室 4万+

Spring+Hibernate实现增删改查的两种方法

                                        Spring+Hibernate实现增删改查的两种方法 Spring+Hibernate实现增删改查的两种方法,一是用HibernateTemplate类,另一种方法是用HibernateDaoSupport类来实现的,两种方法的不同之处在于:HibernateTemplate类是在xml中配置,在dao层直接调用

hongmeikaile的专栏 1500

hibernateTemplate 与session的区别 HibernateTemplateHibernateDaoSupport两种方法实现增删改查

HibernateTemplate与session的区别如下: 1.使用HibernateTemplate,很重要的原因不想直接控制事务,不想直接去获取,打开Session,开始一个事务,处理异常,提交一个事务,最后关闭一个,SessionHibernateTemplateHibernate操作进行封装,我们只要简单的条用HibernateTemplate 对象,传入hql和参数,就获得

lucky 6360

信用卡欺诈检测-数据集(被标记为欺诈或真实的匿名信用卡交易)

关于 Dataset上下文信用卡公司能够识别欺诈性信用卡交易非常重要,这样客户就不会为他们没有购买的商品付费。内容该数据集包含欧洲持卡人在 2013 年 9 月通过信用卡进行的交易。此数据集显示了两天内发生的交易,其中 284,807 笔交易中有 492 笔欺诈。数据集高度不平衡,正类(欺诈)占所有交易的 0.172%。它仅包含作为 PCA 转换结果的数值输入变量。遗憾的是,由于机密性问题,我们无法提供有关数据的原始特征和更多背景信息。功能 V1、V2、...V28 是使用 PCA 获得的主成分,唯一未使用 PCA 转换的特征是 'Time' 和 'Amount'。特征 'Time' 包含数据集中每个事务与第一个事务之间经过的秒数。功能 'Amount' 是交易金额,此功能可用于依赖于成本的学习。特征 'Class' 是响应变量,在欺诈的情况下取值 1,否则取值 0。鉴于类别不平衡比率,我们建议使用精度-召回率曲线下面积 (AUPRC) 来测量准确性。混淆矩阵准确性对于不平衡分类没有意义。

2024华为研发质量管理.pptx

2024华为研发质量管理.pptx

上一篇: 关于PHP常用的缓存技术
下一篇: 关于Winxp U盘无法复制磁盘写保护解决办法
ysds20211402
博客等级 码龄5年 72粉丝 79原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值