ibatis一对多数据库如何实现

64次阅读
没有评论

共计 1972 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章主要介绍了 ibatis 一对多数据库如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇 ibatis 一对多数据库如何实现文章都会有所收获,下面我们一起来看看吧。

iBatis 的多表关联。ibatis 的表关联, 和数据库语句无关, 是在 Java 程序中, 把若干语句的结果关联到一起。这种关联形式, 虽然在大数据量时是很奢侈的行为, 但是看起来很干净, 用起来也很方便。这里用表 lock 和 key 为例, 一个 lock 可以配多个 key。CREATETABLE lock(
 id int,
 lockName varchar
CREATETABLEkey(
 id int,
 lockId int,
 keyName varchar
); 定义映射类
package zzcv.dao.domain;
publicclass Lock
 privateint id;
 private String lockName;
 private List Key  keys = new ArrayList Key 
 
 publicvoid getId(){
 return..
 ...
 // 省略
package zzcv.dao.domain;
publicclass Key
 privateint id;
private String keyName;
 private Lock lock; ...
 // 省略
} 表关联通过配置文件的 resultMap 实现, 不需要关联的查询仍可用 resultClass
 sqlMap namespace= test  
  typeAlias alias= Key = zzcv.dao.domain.Key /  
  typeAlias alias= Lock = zzcv.dao.domain.Lock /  
 
  resultMap id= KeyResult = Key  
  result property= id = id /  
  result property= keyName = keyName /  
  result property= lock = lockId = getLockById /  
  /resultMap 
  !---- 
 
  resultMap id= LockResult = Lock  
  result property= id = id /  
  result property= lockName = lockName /  
  result property= keys = id = getKeysByLockId /  
  /resultMap 
  !---- 
 
  !---- 
 
  select id= selectAllkeys = KeyResult  
  ![CDATA[ 
 select id,lockId,keyName from key
 ]]  
  /select  
 
  select id= getLockById = int = Lock  
  ![CDATA[ 
 select id,lockName from lock where id = #value# 
 ]]  
  /select 
 
  select id= selectAllLocks = LockResult  
  ![CDATA[ 
 select id,lockName from lock
 ]]  
  /select  
 
  select id= getKeyByLockId = int = key  
  ![CDATA[ 
 select id,lockId,keyName from lock where lockId = #value# 
 ]]  
  /select 
 /sqlMap   现在可以代码中使用了
 ...
 ..
 try{
 Reader reader = mxd/dao/data/SqlMapConfig.xml 
 sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
 reader.close(); }
 catch(IOException e){ thrownew Something bad happened while building the SqlMapClient instance. + e, e);}
 List locks=sqlMapper.queryForList( selectAllLocks 
 // 取一个 Lock 对象。=(Lock)locks.get(0);
 // 从 Lock 对象取 List Key。=lock.getKeys();
 // 示例结束, 取到结果了, 剩余的一个关联是取对象 Lock, 其余操作差不多, 就不写出了。 ...

关于“ibatis 一对多数据库如何实现”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“ibatis 一对多数据库如何实现”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计1972字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)