首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

ibatis/Mybatis实战分享与议论

2012-10-08 
ibatis/Mybatis实战分享与讨论以前有类似讨论,互联网项目要用spring jdbc 或者ibatis 不然会有种种问题,神

ibatis/Mybatis实战分享与讨论
以前有类似讨论,互联网项目要用spring jdbc 或者ibatis 不然会有种种问题,神乎其神,到底是为啥呢?hibernate到底有啥不好,做互联网项目还是先看看ibatis是个什么东东吧
关于ibatis入门如何?
入门相对容易,好像没什么有他官方上那本pdf更好的,而且有中文版,看起来速度刷刷的

ibatis主要提供了什么?
数据库字段到model映射,这个通过强大的xml配置解决,可以做出类似hibernate的效果,但是sql语句是你自己书写,也没有面向对象建立数据库的压力,又比spring jdbc之类强大

模板配置sql到底多强大?
可以动态配置sql,可以使用ognl表达式,你的sql用广告词,叫做会跳舞的sql,以前看帖子,有哥们说他们项目自己该造,用freemarker搭建了一个模板,很强大,到底有那些好处,具体不太了解,我觉得现在的绝对够用,就是配置有些繁琐
比如我们ognl严重


public class Page<T> implements Serializable,Iterable<T>{protected List<T> result;protected int pageSize;protected int pageNumber;    /* added by xiajun 新增设置当前页数方法 2010-11-02*/public void setPageNumber(int pageNumber) {this.pageNumber = pageNumber;}protected int totalCount = 0;public Page(PageRequest p, int totalCount) {this(p.getPageNumber(),p.getPageSize(),totalCount);}public Page(int pageNumber,int pageSize,int totalCount) {this(pageNumber,pageSize,totalCount,new ArrayList(0));}public Page(int pageNumber,int pageSize,int totalCount,List<T> result) {if(pageSize <= 0) throw new IllegalArgumentException("[pageSize] must great than zero");this.pageSize = pageSize;this.pageNumber = PageUtils.computePageNumber(pageNumber,pageSize,totalCount);this.totalCount = totalCount;setResult(result);}


实际使用遇到的问题
1.关于灵活性的问题

你需要model中的几个属性值,你是调用自动生成的代码取得整个model,还是自己写一个,如果这个查询发生次数多,必须自己写
2.关于配置复杂的问题
看下官方文档高级映射,就知道这个难度不大,写着麻烦,配置很繁琐,为了一个特殊的查询是否有必要取那样做,前后端都hashmap,跨过model映射这个,如果要自己写,你的model要符合,我们的model不满足,全部直接都hashmap

热点排行