`

hibernate利用dowork实现批量修改

阅读更多
public int[] dowork(final List<User> list) {
		final List<int[]> results = new ArrayList<int[]>();
		getSession().doWork(new Work(){
			public void execute(Connection connection) throws SQLException {
				final String sql="update test_user set user_name=? where id=?";
				PreparedStatement p = connection.prepareStatement(sql);
				for(int i=0;i<list.size();i++) {
					System.out.println(list.get(i).getUserName()+"---"+list.get(i).getId());
					p.setString(1, list.get(i).getUserName()+i);
					p.setInt(2, list.get(i).getId());
					p.addBatch();
				}
				results.add(p.executeBatch());
			}
		});
		return results.get(0);
	}

 

分享到:
评论

相关推荐

    hibernate实现动态表查询的多种解决方案

    本文介绍了三种利用Hibernate实现动态表查询的方法:自定义命名策略、使用拦截器以及利用Session的开放性。每种方法都有其适用场景,开发者可以根据实际需求选择最合适的一种。例如,在需要频繁更改表名的情况下,...

    hibernate中session对象的状态详解

    hibernate中session对象的状态详解

    基础操作1

    总结,通过在XML文件中配置Hibernate并利用其内置的JDBC支持,我们可以有效地实现批量更新和删除操作。理解并熟练掌握这些技术对于优化系统性能、减少资源消耗至关重要。在实际开发中,应当根据业务需求和数据库规模...

    hibernate 执行原生sql的几种方式

    在Java的持久化框架Hibernate中,执行原生SQL(Native SQL)是常见需求,尤其是在处理特定数据库...在大多数情况下,应尽量利用Hibernate的ORM能力,但在处理特定数据库特性和性能优化时,原生SQL是不可或缺的工具。

    hibernate环境搭建已经对应存储过程调用

    在IT行业中,Hibernate是一个非常流行的Java对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是底层SQL语句。...通过不断学习和实践,你将能更好地利用Hibernate这个强大的工具。

    hibernate query调用oracle存储过程

    在Hibernate中,调用存储过程通常通过Session对象的createNativeQuery()方法实现,这个方法用于创建原生SQL查询,可以方便地调用数据库的自定义SQL或者存储过程。以下是一个简单的示例,展示了如何调用一个不带参数...

    VS2008下批量拷贝文件,并实现进度条显示

    在本文中,我们将深入探讨如何在Visual Studio 2008环境下实现批量文件拷贝,并在拷贝过程中显示进度条,以提供用户友好的界面体验。这个功能在处理大量文件时非常有用,因为它可以让用户知道拷贝过程的状态,而不是...

    [尚硅谷]_佟刚_Hibernate面试题分析

    - 缺点涉及无法对SQL进行优化,框架配置复杂,执行效率可能低于原生JDBC,在批量处理方面性能偏差,且不支持批量修改、删除。 6. 大批量更新的操作建议: - 直接通过JDBC API或存储过程进行操作,这是处理大批量...

    Hibernate的demo

    通过`Session`对象的`doWork()`方法,我们可以传递一个实现了`Work`接口的实例,然后在其中执行自定义的SQL(包括存储过程)。这使得在需要复杂逻辑或高性能操作时,依然可以利用存储过程的优势,同时保持ORM的便利...

    hibernate 3.1 存储过程

    以下是对Hibernate 3.1中存储过程实现的一些关键知识点: 1. **配置存储过程**:在Hibernate的配置文件(如hibernate.cfg.xml)中,你需要指定JDBC驱动和URL,其中可能包含支持存储过程的特定参数。例如,对于MySQL...

    批量下载评书程序

    《批量下载评书程序》是一款基于C#编程语言开发的应用,其主要功能是利用WebClient类和BackgroundWorker组件实现从特定网站异步批量下载评书音频。这一程序为评书爱好者提供了一种高效便捷的方式,使得用户无需手动...

    hibernate调用存储过程[参考].pdf

    调用存储过程时,我们需要创建一个Hibernate的Session对象,然后利用Session的`createSQLQuery`方法来执行存储过程。例如,调用`getUserList`过程可以写成: ```java Session session = HibernateUtil....

    hibernate调用存储过程.docx

    在IT行业中,数据库操作是应用程序开发中的重要环节,而Hibernate作为一款流行的Java持久化框架,提供了方便的ORM(Object-Relational Mapping)功能,使得开发者能够更便捷地与数据库交互。在某些复杂场景下,比如...

    QT 利用继承Qobject实现多线程

    在QT中,通过继承`QObject`类并利用`moveToThread()`函数,我们可以方便地实现多线程操作,这对于处理耗时任务或避免阻塞主线程来说至关重要。下面我们将深入探讨如何使用这些技术以及`QMutex`来确保线程安全。 ...

    C#182利用ProgressBar控件实现进度控制 源代码

    本主题将深入探讨如何在C#中利用ProgressBar控件来实现进度控制,同时也会提供相关的源代码供参考。 一、ProgressBar控件简介 ProgressBar控件是Windows Forms的一部分,它用于显示任务的进度,如文件下载、数据...

    C#多线程实现进度条操作

    BackgroundWorker组件可以让我们轻松地实现多线程操作,并且提供了三个事件:DoWork、ProgressChanged和RunWorkerCompleted。 DoWork事件是后台工作的开始,RunWorkerCompleted事件是后台工作完成后的处理,...

    HibernateBatchUpdateExample

    在Hibernate中,可以通过Session的batch_size配置来实现批量更新,或者直接使用SQL批处理来批量处理多个更新语句。 首先,要进行批量更新,你需要创建一个实体类,该类映射到数据库中的表。实体类应包含所有需要...

    C#批量获取web网站html页面截图

    在批量获取网页截图的场景中,我们可以利用WebClient的DownloadString方法来获取HTML内容,然后通过HTML解析库(如HtmlAgilityPack)解析页面结构。 ```csharp using HtmlAgilityPack; // 获取HTML内容 string url ...

    c# 利用BackgroundWorker后台检测Internet连接是否可用

    - 虽然`BackgroundWorker`在后台线程运行,但不要在`DoWork`事件处理程序中直接修改UI,因为这可能会引发跨线程访问的异常。应通过调用UI控件的`Invoke`方法或使用`ProgressChanged`事件来更新UI。 - 记得检查`...

Global site tag (gtag.js) - Google Analytics