




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ibatis blob字段处理这几天仔细看了一下ibatis的文档,发现2.2后,ibatis的改变还是挺大的。对于自定义类型支持的也不错,这样对于blob和clob数据的处理也就简单多了。 不过在spring 中已经提供了很好的实现,所以这又省去了很多的功夫,接下来看看ibatis是如何支持clob和blob的。 ibatis提供了TypeHandler接口,用于处理数据类型,基本的实现类为BaseTypeHandler 在spring 中,提供了AbstractLobTypeHandler作为基础类,并且提供了相应的模版方法,所有的工作由LobHandler处理。 BlobByteArrayTypeHandler 主要用于处理blob类型数据,使用byte来映射相应的blob ClobStringTypeHandler 用于处理clob类型数据,使用字符串来映射Clob 有一点需要注意的是,AbstractLobTypeHandler中实现了事务支持,需要用来释放相应的资源,所以一定需要在事务环境中进行。下面是一个简单的例子:java 代码1. public class Food 2. private String content; 3. 4. private String id; 5. 6. private byte image; 7. 8. private String name; 9. . 10. xml如下:说明一下,在resultMap中可以通过typeHandler来指定具体的handler.在inline变量中,可以通过handler来定义相应的typeHandlerxml 代码1. 2. 3. 4. 5. 6. 7. 9. 11. 12. select C_ID,C_NAME,C_CONTENT,C_IMAGE from T_FOOD 13. 14. 15. 16. 17. where C_ID=#id# 18. 19. insert into T_FOOD ( C_ID, 20. C_NAME,C_CONTENT, C_IMAGE) values ( #id#, 21. #name#,#content,handler=org.springframework.orm.ibatis.support.ClobStringTypeHandler#, 22. #image,handler=org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler#) 23. 24. 25. update T_FOOD set C_NAME = #name#, 26. C_CONTENT = 27. #content,handler=org.springframework.orm.ibatis.support.ClobStringTypeHandler#, 28. C_IMAGE = 29. #image,handler=org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler# 30. where C_ID = #id# 31. 32. delete from T_FOOD where C_ID = #id# 33. 34. 35. java 代码1. public interface FoodService 2. 3. 4. void save(Food food); 5. Food get(String id); 6. /* 7. * param food 8. */ 9. void update(Food food); 10. 11. 12. public class FoodServiceImpl implements FoodService 13. private FoodDAO foodDAO; 14. 15. private DaoCreator creator; 16. 17. public void setCreator(DaoCreator creator) 18. this.creator = creator; 19. 20. 21. protected FoodDAO getFoodDAO() 22. if (foodDAO = null) 23. foodDAO = (FoodDAO) creator.createDao(FoodDAO.class, Food.class); 24. 25. return foodDAO; 26. 27. 28. public Food get(String id) 29. return getFoodDAO().get(id); 30. 31. public void save(Food food) 32. getFoodDAO().save(food); 33. 34. public void update(Food food) 35. getFoodDAO().update(food); 36. 37. 38. spring xml 配置:xml 代码1. 。 2. 4. 5. 7. 8. 9. 10. 12. 13. 14. SqlMapConfig.xml 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 31. 32. 33. 34. 35. 36. 37. 简单的测试:java 代码1. save : 2. Food food = new Food(); 3. food.setPk(1); 4. food.setName(food1); 5. BufferedInputStream in = new BufferedInputStream(getClass() 6. .getResourceAsStream(/1.gif); 7. byte b = FileCopyUtils.copyToByteArray(in); 8. food.setImage(b); 9. in = new BufferedInputStream(getClass().getResourceAsStream( 10. /hibernate.cfg.xml); 11. b = FileCopyUtils.copyToByteArray(in); 12. food.setContent(new String(b); 13. foodService.save(food); 14. update: 15. Food food = foodService.get(1); 16. BufferedInputStream in = new BufferedInputStream(getClass() 17. .getResourceAsStream(/perties); 18. byte b = FileCopyUti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 6147-2025精密电阻合金热电动势率测试方法
- GB/T 45634-2025进境出境经虫媒传播传染病防控技术规范
- GB/T 33555-2025洁净室及相关受控环境静电控制技术要求
- 材料力学与智能材料性能拓展重点基础知识点
- 风电场草原火灾应急预案(3篇)
- 疼痛科火灾应急预案演练(3篇)
- 酒店厨房发生火灾的应急预案(3篇)
- 商铺燃气火灾应急预案(3篇)
- 企业在战略变化中的风险分析与决策试题及答案
- 产科新生儿火灾应急预案(3篇)
- 信息安全及保密意识培训
- 集成电路布图设计专有权转让合同
- 病种成本管理案例分享
- 网络施工服务合同范例
- 2024年无人机配件定制采购合同范本3篇
- 医院信息化建设与运维知识考核试卷
- 部编版五年级语文下册第二单元综合训练附答案
- 麻醉过程中的意外与并发症处理规范与流程
- 节约集约建设用地标准 DG-TJ08-2422-2023
- 危险化学品目录(2024版)
- 精密测量技术
评论
0/150
提交评论