ibatis一对多数据库如何实现

网友投稿 747 2023-11-12

ibatis一对多数据库如何实现

这篇文章主要介绍了ibatis一对多数据库如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇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一对多数据库如何实现”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:mysql数据库迁移的方法是什么
下一篇:弹性容量调度:提升效率的未来之举
相关文章