首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

iBatis入门例证

2012-10-11 
iBatis入门例子?java 代码?package?com.ctgusec.zhupan ?? ?? import?java.sql.SQLException ?? import?

iBatis入门例子

?
iBatis入门例证
iBatis入门例证

java 代码?
  1. package?com.ctgusec.zhupan; ?? ??
  2. import?java.sql.SQLException; ?? import?java.util.List; ??
  3. ?? import?com.ctgusec.zhupan.model.User; ??
  4. import?com.ibatis.sqlmap.client.SqlMapClientBuilder; ?? ??
  5. /** ? ?*? ?
  6. ?*?@author?zhupan ? ?*/??
  7. public?class?ExampleMain?{ ?? ??
  8. ????public?static?void?update()?{ ?? ????????//首先初始化iBatis获得一个SqlMapClient对象 ??
  9. ????????String?resource?=?"com/ctgusec/zhupan/maps/SqlMapConfig.xml"; ?? ????????com.ibatis.sqlmap.client.SqlMapClient?sqlMap?=?null; ??
  10. ????????try?{ ?? ????????????java.io.Reader?reader?=?com.ibatis.common.resources.Resources ??
  11. ????????????????????.getResourceAsReader(resource); ?? ????????????sqlMap?=?SqlMapClientBuilder.buildSqlMapClient(reader); ??
  12. ????????}?catch?(Exception?e)?{ ?? ????????????e.printStackTrace(); ??
  13. ????????} ?? ????????//?sqlMap系统初始化完毕,开始执行update操作 ??
  14. ????????try?{ ?? ????????????sqlMap.startTransaction(); ??
  15. ????????????User?user?=?new?User(); ?? ????????????user.setId(new?Integer(1)); ??
  16. ????????????user.setName("zhupan"); ?? ????????????user.setSex(new?Integer(1)); ??
  17. ????????????sqlMap.update("updateUser",?user); ?? ????????????sqlMap.commitTransaction(); ??
  18. ????????}?catch?(SQLException?e)?{ ?? ????????????System.out.println(e.getMessage()); ??
  19. ????????}?finally?{ ?? ????????????try?{ ??
  20. ????????????????sqlMap.endTransaction(); ?? ????????????}?catch?(SQLException?e)?{ ??
  21. ????????????????e.printStackTrace(); ?? ????????????} ??
  22. ????????} ?? ????} ??
  23. ????public?static?List?getUser()?{ ?? //??????首先初始化iBatis获得一个SqlMapClient对象 ??
  24. ????????String?resource?=?"com/ctgusec/zhupan/maps/SqlMapConfig.xml"; ?? ????????com.ibatis.sqlmap.client.SqlMapClient?sqlMap?=?null; ??
  25. ????????List?user=null; ?? ????????try?{ ??
  26. ????????????java.io.Reader?reader?=?com.ibatis.common.resources.Resources ?? ????????????????????.getResourceAsReader(resource); ??
  27. ????????????sqlMap?=?SqlMapClientBuilder.buildSqlMapClient(reader); ?? ????????}?catch?(Exception?e)?{ ??
  28. ????????????e.printStackTrace(); ?? ????????} ??
  29. ????????//?sqlMap系统初始化完毕,开始执行getAllUser操作 ?? ????????try?{ ??
  30. ????????????sqlMap.startTransaction();?????????????? ?? ????????????user=sqlMap.queryForList("getAllUser",?null); ??
  31. ????????????sqlMap.commitTransaction(); ?? ????????}?catch?(SQLException?e)?{ ??
  32. ????????????System.out.println(e.getMessage()); ?? ????????}?finally?{ ??
  33. ????????????try?{ ?? ????????????????sqlMap.endTransaction(); ??
  34. ????????????}?catch?(SQLException?e)?{ ?? ????????????????e.printStackTrace(); ??
  35. ????????????} ?? ????????} ??
  36. ????????return?user; ?? ????} ??
  37. ????public?static?void?main(String[]?args)?{ ?? ????????update(); ??
  38. ????????List?user=getUser();???? ?? ????????for(int?i=0;i
  39. ????????{ ?? ????????????System.out.println(((User)user.get(i)).getName()); ??
  40. ????????} ?? ??
  41. ????} ?? }??

总结:iBatis确实简单灵活,上手容易,代码很少,配置稍嫌复杂。动态SQL的确是个强点,熟悉后感觉很不错。iBatis中所有的DAO方法都只传一个值对象,复杂查询当然也不例外。另外对常见的1:1,1:N关系的支持不如Hibernate。使用iBatis2.0和1.0有较大区别,主要体现在配置文件上,iBatis2.0新增了DAO框架,不需要Spring提供的DAO也能很方便地实现DAO模式。持久层使用了iBatis后,团队中以前乱七八糟的jdbc包装不见了,大家的编码风格统一了,可以集中精力进行业务组件的编写!?

源文件下载见附件

Ps :结合《 ibatis 开发指南》会更容易明白!

ibatisJavaTest.rar (1.5 MB)原文地址:http://www.iteye.com/topic/26433

1 楼 oppovaan 2010-04-30   学习了,很好的例子

热点排行