Hebernate-hql 插入一条 和 批量插入多条记录
2016-12-05 20:33
417 查看
插入一条 和 批量插入多条记录
注意关闭session的二级缓存:在 hibernate.cfg.xml 中设置
<property name="hibernate.cache.use_second_level_cache">false</property>
//插入一条记录 public void testcaseInsert(Testcasebpel t){ Session session = getSession(); Transaction tran = session.beginTransaction(); session.save(t); //执行 tran.commit(); //提交 session.close(); } //批量插入,此处是插入一个Map public void testcaseInterAll(Map<Testpathbpel, ArrayList> testCaseListMap){ Session session = getSession(); Transaction tran = getSession().beginTransaction(); int i=0; boolean flag = false; //记录要插入的数据是否超过20条 if(testCaseListMap.size()>20){ flag = true; } for (Map.Entry<Testpathbpel, ArrayList> en: testCaseListMap.entrySet()) { ArrayList list = en.getValue(); for (Object obj : list) { String str =(String)obj; //得到测试路径对应的id Testpathbpel tpath = en.getKey(); //插入测试用例 Testcasebpel tcase = new Testcasebpel(); tcase.setTestpathbpel(tpath); tcase.setTestcase("("+str+")"); session.save(tcase); //执行 i++; //手动将Session处的缓存数据写入数据库,并手动提交事务 if (i % 20 == 0){ //超过20条,每20条提交1次,注意要关闭session的二级缓存 session.flush(); session.clear(); tran.commit(); tran = session.beginTransaction(); } } } if(flag == false) //未超过20条,最后提交1次 tran.commit(); session.close(); }
相关文章推荐
- 【BZOJ】1012 [JSOI2008] 最大数maxnumber
- 第14周项目1-(2)验证分块查找算法
- shell脚本中整数型变量自增(加1)的实现方式
- precision和recall
- matlab提升(1):用matlab求图像的均值和方差
- Android工程gen already exists but is not a source folder. Convert to a source folder or rename it问题的解决
- POJ 2387 Til the Cows Come Home (裸SPFA)
- 基本概念学习(9013)---通用寄存器、机器字长、数据通路
- ArrayList和C++的vector
- 第十五周项目1 (1)——验证哈希表相关算法
- MySQL数据库事务剖析
- mongodb基本概念解析
- Tomcat 6 --- 你很少使用的安全管理SecurityManager
- Linux Deepin系统下安装jdk
- Unity 屏幕坐标
- 你看,那个人好像一只狗耶。(转)
- kali下 VirtualBox “不能为虚拟电脑 * 打开一个新任务”的解决办法
- 【HPU 1195 Mod 】+ 思维 +DFS + 区间剖分
- 酷炫的Activity切换动画,打造更好的用户体验
- async 函数的含义和用法