ibatis-blob字段处理_第1页
ibatis-blob字段处理_第2页
ibatis-blob字段处理_第3页
ibatis-blob字段处理_第4页
ibatis-blob字段处理_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论