hibernate中一个更新方法
谁给我解释下下面代码的意思,详细点啊。一定要详细。谢谢了。publicvoidupdateByQuery(finalStringqueryString,finalObje...
谁给我解释下下面代码的意思,详细点啊。一定要详细。谢谢了。
public void updateByQuery(final String queryString, final Object... objects) {
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createQuery(queryString);
if (objects != null) {
for (int i = 0; i < objects.length; i++) {
query.setParameter(i, objects[i]);
}
}
query.executeUpdate();
return null;
}
});
} 展开
public void updateByQuery(final String queryString, final Object... objects) {
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createQuery(queryString);
if (objects != null) {
for (int i = 0; i < objects.length; i++) {
query.setParameter(i, objects[i]);
}
}
query.executeUpdate();
return null;
}
});
} 展开
2个回答
展开全部
getHibernateTemplate().execute() 执行数据库操作应该知道吧。
HibernateCallback()是一个回调方法,在hibernate框架下,对数据库的一种操作,其实它使用很简单的,用这个方法是为了方便,为了创建session,须要在回调方法里.
这个方法都需要一个HibernateCallback的实例,HibernateCallback实例可在任何有效的Hibernate数据访问中使用。
程序开发者通过HibernateCallback,可以完全使用Hibernate灵活的方式来访问数据库,解决Spring封装Hibernate后灵活性不足的缺陷。
HibernateCallback是一个接口,该接口只有一个方法doInHibernate(org.hibernate.Session session),
该方法只有一个参数Session。通常,程序中采用实现HibernateCallback的匿名内部类来获取HibernateCallback的实例,
方法doInHibernate的方法体就是Spring执行的持久化操作。
还有的就是采用:
HibernateTemplate.execute(HibernateCallback action)这种回调的方式,封装了对异常的处理和对事务的一些处理。
HibernateCallback()是一个回调方法,在hibernate框架下,对数据库的一种操作,其实它使用很简单的,用这个方法是为了方便,为了创建session,须要在回调方法里.
这个方法都需要一个HibernateCallback的实例,HibernateCallback实例可在任何有效的Hibernate数据访问中使用。
程序开发者通过HibernateCallback,可以完全使用Hibernate灵活的方式来访问数据库,解决Spring封装Hibernate后灵活性不足的缺陷。
HibernateCallback是一个接口,该接口只有一个方法doInHibernate(org.hibernate.Session session),
该方法只有一个参数Session。通常,程序中采用实现HibernateCallback的匿名内部类来获取HibernateCallback的实例,
方法doInHibernate的方法体就是Spring执行的持久化操作。
还有的就是采用:
HibernateTemplate.execute(HibernateCallback action)这种回调的方式,封装了对异常的处理和对事务的一些处理。
展开全部
直接给你解释参数就可以理解了
queryString 要执行的sql语句 里边可能会有?
objects 对应sql语句里的问号 objects[0] 对应第一个?依次类推
public void updateByQuery(final String queryString, final Object... objects) {//方法名
getHibernateTemplate().execute(new HibernateCallback() {//不太清楚 应该是定义执行回调方法
public Object doInHibernate(Session session) {//内部类
Query query = session.createQuery(queryString);//调用全局session创建query对象 并将sql语句赋予此对象
if (objects != null) {//判断参数
for (int i = 0; i < objects.length; i++) {
query.setParameter(i, objects[i]);//如果参数不为空 设置参数
}
}
query.executeUpdate();//用query执行更新
return null;
}
});
}
queryString 要执行的sql语句 里边可能会有?
objects 对应sql语句里的问号 objects[0] 对应第一个?依次类推
public void updateByQuery(final String queryString, final Object... objects) {//方法名
getHibernateTemplate().execute(new HibernateCallback() {//不太清楚 应该是定义执行回调方法
public Object doInHibernate(Session session) {//内部类
Query query = session.createQuery(queryString);//调用全局session创建query对象 并将sql语句赋予此对象
if (objects != null) {//判断参数
for (int i = 0; i < objects.length; i++) {
query.setParameter(i, objects[i]);//如果参数不为空 设置参数
}
}
query.executeUpdate();//用query执行更新
return null;
}
});
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询