标签:
iBatis的多表关联。
ibatis的表关联,和数据库语句无关,是在Java程序中,把若干语句的结果关联到一起。
这种关联形式,虽然在大数据量时是很奢侈的行为,但是看起来很干净,用起来也很方便。
这里用表lock和key为例,一个lock可以配多个key。
定义映射类
package zzcv.dao.domain;
public class Lock
{
private int id;
private String lockName;
private List<Key> keys = new ArrayList<Key>();
public void getId(){
return..
...
//省略
}
package zzcv.dao.domain;
public class Key
{
private int id;
private String keyName;
private Lock lock;
...
//省略
}
表关联通过配置文件的resultMap实现,不需要关联的查询仍可用resultClass
现在可以代码中使用了
...
..
try{
Reader reader = Resources.getResourceAsReader("mxd/dao/data/SqlMapConfig.xml");
sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close(); }
catch(IOException e){
throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e);}
List locks=sqlMapper.queryForList("selectAllLocks");
//取一个Lock对象。
Lock lock=(Lock)locks.get(0);
//从Lock对象取List<Key>。
List keys=lock.getKeys();
//示例结束,取到结果了,剩余的一个关联是取对象Lock,其余操作差不多,就不写出了。
...
标签:
原文地址:http://www.cnblogs.com/wang3680/p/4391618.html