论坛首页 Java企业应用论坛

初用Ibatis的一些疑惑

浏览 12161 次
精华帖 (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 欢迎赐教。

 

 

   发表时间:2011-11-21  
没有人来解答一下我的疑惑吗?
0 请登录后投票
   发表时间:2011-11-21  
建议一般情况下不要用 hashmap 开发方便,维护痛苦
0 请登录后投票
   发表时间:2011-11-21  
不是多余不多余,设置多种返回结果可以让程序员使用在不同的场景,如果整个ibatis就只有返回一个结果那么就显得不容易扩展。

即是说:我提供N个返回结果的方法,你只用你认为好用的一个
0 请登录后投票
   发表时间:2011-11-21  
感谢以上两位仁兄回答。
0 请登录后投票
   发表时间:2011-11-22  
用map 是拓展呀

我理解是  我之前用过ibatis2 现在是用mybatis 简化好多了  挺好用的这东西 嘿嘿

resultMap 和 parameterMap 都是拓展

比如说resultMap  可以放入一对一 多对多的配置 还可以解决映射属性问题

parameterMap 定义map形参数 对于高级查询,关联查询非常好

建议看看Mybatis3吧 挺好。
0 请登录后投票
   发表时间:2011-11-22  
resultMap我就是在配置对象间级联关系的时候比较多用,比如用join语句一次从多个表中查询数据,并组装成级联对象的方式返回,这时候resultMap是绝对要配置的
0 请登录后投票
   发表时间:2011-11-22  

 写道
但是我在问我同事的时候,他的解释是在用Ibatis的时候最好
不要再配置文件中关联,而是在java代码中实现表之间的关联。

 为什么不能在配置文件中关联呢

都返回map是个很不好的习惯,要不还要OO编程干嘛。

0 请登录后投票
   发表时间:2011-11-22  
虽然未理解过ibatis的底层封装机制,但是不外乎反射成员变量filedType,既然这样还不如全部获取List<Object>获取,远比反射放入map中,好用的多
0 请登录后投票
   发表时间:2011-11-22  
用map维护起来太麻烦了,建议能用对象的尽量用对象类型。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics