<!-- [if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing>
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
<w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:SpaceForUL/>
<w:BalanceSingleByteDoubleByteWidth/>
<w:DoNotLeaveBackslashAlone/>
<w:ULTrailSpace/>
<w:DoNotExpandShiftReturn/>
<w:AdjustLineHeightInTable/>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:UseFELayout/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><!-- [if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]-->
<!-- [if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
<!-- [if !supportLists]-->节 1.01
<!-- [endif]-->HQL
更新
/
删除大批量数据
Transaction transaction =
session
.beginTransaction();
String hql =
"UPDATE UserInfo user set
user.username=:username,user.password=:password"
;
Query query =
session
.createQuery(hql);
query.setString(paramsName[0], paramsValue
[0]);
query.executeUpdate();
transaction.commit();
注:使用
HQL
处理大批量数据会直接执行
DML
语句,从而绕过
Hibernate
的上下文和所有高速缓存。
<!-- [if !supportLists]-->节 1.02
<!-- [endif]-->HQL
创建大批量数据
Query q = session.createQuery(
"INSERT INTO LostCreditCard(type,number) SELECT
c.type,c.number FROM CreditCard c join c.user u"
);
int
createdObjects = q.executeUpdate();
<!-- [if !supportLists]-->节 1.03
<!-- [endif]-->批量更新数据
在
Hibernate.xml
文件中添加以下内容
<
property
name
=
"hibernate.jdbc.batch_size"
>
20
</
property
>
Session session =
sessionFactroy.openSession();
Transaction tx = session.beginTransaction();
Query query =
session.createQuery()
ScrollableResults cursor = query.scroll(
"FROM SettleEnterRecord"
).scroll();
int
count = 0;
while
(cursor.next()) {
SettleEnterRecord record = (SettleEnterRecord) cursor.get(0);
record.setIsValid(
"2"
);
if
(++count % 100 ==
0) {
session.flush();
session.clear();
}
}
tx.commit();
session.close();
<!-- [if !supportLists]-->节 1.04
<!-- [endif]-->批量插入数据
Session session =
sessionFactroy.openSession();
Transaction tx = session.beginTransaction();
for
(
int
i = 0 ; i < 100000; i ++){
Item
item =
new
Item
();
session.save(item);
if
(i%100 == 0){
session.flush
();
session.clear
();
}
}
tx.commit();
session.close
();
分享到:
相关推荐
使用Hibernate将大量记录插入到数据库
很多人都对Java在批量数据的处理方面是否是其合适的场所持有怀疑的念头,由此延伸,...下面以Hibernate为例来做为说明,假如我们真的不得不在Java中使用Hibernate来对数据进行批量处理的话。 向数据库插入100 000条数据
HIBERNATE FOR NETBEANS 数据操作方法 还有的是,这是对HIBERNATE 的简单使用的介绍..
Hibernate配置各种数据源 <hibernate-configuration> <!– 各属性的配置–> <!—为true表示将Hibernate发送给数据库的sql显示出来 –> ”show_sql”>true <!– SQL方言,这边设定的是MySQL –> ”dialect”>...
适合初学者使用。使用Hibernate做查询数据库,代码为eclipse项目,直接导入即可使用,只供参考。
在Java SE中使用Hibernate处理数据
hibernate入门数据简单插入
spring+hibernate解决多数据源问题3.pdf
2022年Hibernate下数据批量处理Java教程.docx
Hibernate中数据类型,涵盖了所有数据库的字段类型与Java基本类型间的映射关系
hibernate常见问题及处理。
JDBC+Hibernate将Blob数据写入Oracle
spring boot 2多数据源,里面有hibernate和mybatis的多数据源代码。代码拿过去即可集成使用。
Spring+Hibernate多数据源的整合实现demo
Spring Hibernate 事务处理 详细说明 Spring Hibernate 事务处理 详细说明
关于Hibernate的基本数据类型与Java中基本数据类型的映射关系
Hibernate进行数据查询
spring 集成hibernate实现多数据的动态切换功能,有详细的代码 可以参考 基于maven工程
Hibernate基本数据操作方法 java struts hibernate
hibernate数据源 详解