浏览 11698 次
锁定老帖子 主题:ibatis 对象关系实现
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-16
而ibatis这方面就比较逊色了,不过对于也支持简单的关连查询,如1对1,和1对多。对于一般的情况来说,这两种已经足够了,当然不能层叠更新是一个缺陷,看了半天文档,也没有找到对象之间的层叠更新,估计是不支持。 以前的版本ibatis处理关连是通过执行两次sql来实现的,如下的实例: 一对多关联: xml 代码
这里通过在resultMap 中定义嵌套查询getAddressByUserId,我们实现了关联数据的读取。 需要注意的是,这里有一个潜在的性能问题,也就是所谓“n+1”Select问题。 一对一关联: 对于这种情况,我们可以采用一次Select两张表的方式,避免这样的性能开销(假设上面示例中,每个User 只有一个对应的Address记录): xml 代码
在现在的版本中,对于n+1问题,ibatis已经很好的解决了。如下的配置: 一对一 xml 代码
可以使用内在的resultMap来解决此问题。 同样一对多如下: xml 代码
注意,需要使用增加groupBy属性来分类 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-22
看了楼主的文章,,我有一个问题
那就是,,如果我想实现 延迟加载的情况,,应该怎么配置呢? |
|
返回顶楼 | |
发表时间:2007-01-23
<sqlMapConfig>
<settings lazyLoadingEnabled="true" ... |
|
返回顶楼 | |
发表时间:2007-01-25
请教:在运行当中,能否显示所执行的sql语句。就和HIBERNATE的show_sql一样
|
|
返回顶楼 | |
发表时间:2007-01-25
在日志中显示sql语句
log4j.logger.com.ibatis=DEBUG log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG |
|
返回顶楼 | |