锁定老帖子 主题:初用Ibatis的一些疑惑
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-18
初用Ibatis有几点疑惑,欢迎指教。 在ibatis的配置文件中经常有这样的
<sqlMap namespace="xxx"> <typeAlias alias="xxx" type="xxxxxx" /> <resultMap id="xxxMap"> ........ </resultMap> </sqlMap > <select id="xx" resultMap= "xxxMap" parameterClass="java.util.HashMap"> select * from table </select>
如果是做单一查询,或者一对一的查询
<typeAlias alias="xxx" type="xxxxxx" /> <resultMap id="xxxMap"> ........ </resultMap>
这些映射完全是多余的啊
如果将查询改成<select resultClass="java.util.HashMap"></select>
这样返回的也是一个Map<String,Object>,用resultMap= "xxxMap" 也同样是一个map,这样的还要做一个<resultMap id="xxxMap">的映射 是不是又点多余。
当然这是在单表查询,和一对一查询的时候,而且查询结果很清晰的组装成了一个map,那么实体bean也可以不用了。在每次调用只需写 <select resultClass="java.util.HashMap" parameterClass="java.util.HashMap"> select 。。。。。 </select> 这样就可以解决所有的了。
如果实现一对多查询,这样<resultMap id="xxxMap">的映射还是有必要,但是我在问我同事的时候,他的解释是在用Ibatis的时候最好 不要再配置文件中关联,而是在java代码中实现表之间的关联。
<typeAlias alias="xxx" type="xxxxxx" /> <resultMap id="xxxMap"> ........ </resultMap>这样的配置是不是只有在一对多,或者多对多的时候才又用呢?
初用Ibatis 欢迎赐教。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-11-21
没有人来解答一下我的疑惑吗?
|
|
返回顶楼 | |
发表时间:2011-11-21
建议一般情况下不要用 hashmap 开发方便,维护痛苦
|
|
返回顶楼 | |
发表时间:2011-11-21
不是多余不多余,设置多种返回结果可以让程序员使用在不同的场景,如果整个ibatis就只有返回一个结果那么就显得不容易扩展。
即是说:我提供N个返回结果的方法,你只用你认为好用的一个 |
|
返回顶楼 | |
发表时间:2011-11-21
感谢以上两位仁兄回答。
|
|
返回顶楼 | |
发表时间:2011-11-22
用map 是拓展呀
我理解是 我之前用过ibatis2 现在是用mybatis 简化好多了 挺好用的这东西 嘿嘿 resultMap 和 parameterMap 都是拓展 比如说resultMap 可以放入一对一 多对多的配置 还可以解决映射属性问题 parameterMap 定义map形参数 对于高级查询,关联查询非常好 建议看看Mybatis3吧 挺好。 |
|
返回顶楼 | |
发表时间:2011-11-22
resultMap我就是在配置对象间级联关系的时候比较多用,比如用join语句一次从多个表中查询数据,并组装成级联对象的方式返回,这时候resultMap是绝对要配置的
|
|
返回顶楼 | |
发表时间:2011-11-22
写道
但是我在问我同事的时候,他的解释是在用Ibatis的时候最好
不要再配置文件中关联,而是在java代码中实现表之间的关联。 为什么不能在配置文件中关联呢 都返回map是个很不好的习惯,要不还要OO编程干嘛。 |
|
返回顶楼 | |
发表时间:2011-11-22
虽然未理解过ibatis的底层封装机制,但是不外乎反射成员变量filedType,既然这样还不如全部获取List<Object>获取,远比反射放入map中,好用的多
|
|
返回顶楼 | |
发表时间:2011-11-22
用map维护起来太麻烦了,建议能用对象的尽量用对象类型。
|
|
返回顶楼 | |