ibatis一对多数据库如何实现
这篇文章主要介绍了ibatis一对多数据库如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ibatis一对多数据库如何实现文章都会有所收获,下面我们一起来看看吧。
iBatis的多表关联。ibatis的表关联,和数据库语句无关,是在Java程序中,把若干语句的结果关联到一起。这种关联形式,虽然在大数据量时是很奢侈的行为,但是看起来很干净,用起来也很方便。这里用表lock和key为例,一个lock可以配多个key。CREATETABLElock(idint,lockNamevarchar);CREATETABLEkey(idint,lockIdint,keyNamevarchar);定义映射类packagezzcv.dao.domain;publicclassLock{privateintid;privateStringlockName;privateList<Key>keys=newArrayList<Key>();publicvoidgetId(){return.....//省略}packagezzcv.dao.domain;publicclassKey{privateintid;privateStringkeyName;privateLocklock;...//省略}表关联通过配置文件的resultMap实现,不需要关联的查询仍可用resultClass<sqlMapnamespace="test"><typeAliasalias="Key"="zzcv.dao.domain.Key"/><typeAliasalias="Lock"="zzcv.dao.domain.Lock"/><resultMapid="KeyResult"="Key"><resultproperty="id"="id"/><resultproperty="keyName"="keyName"/><resultproperty="lock"="lockId"="getLockById"/></resultMap><!----><resultMapid="LockResult"="Lock"><resultproperty="id"="id"/><resultproperty="lockName"="lockName"/><resultproperty="keys"="id"="getKeysByLockId"/></resultMap><!----><!----><selectid="selectAllkeys"="KeyResult"><![CDATA[selectid,lockId,keyNamefromkey]]></select><selectid="getLockById"="int"="Lock"><![CDATA[selectid,lockNamefromlockwhereid=#value#]]></select><selectid="selectAllLocks"="LockResult"><![CDATA[selectid,lockNamefromlock]]></select><selectid="getKeyByLockId"="int"="key"><![CDATA[selectid,lockId,keyNamefromlockwherelockId=#value#]]></select></sqlMap>现在可以代码中使用了.....try{Readerreader="mxd/dao/data/SqlMapConfig.xml");sqlMapper=SqlMapClientBuilder.buildSqlMapClient(reader);reader.close();}catch(IOExceptione){thrownew"SomethingbadhappenedwhilebuildingtheSqlMapClientinstance."+e,e);}Listlocks=sqlMapper.queryForList("selectAllLocks");//取一个Lock对象。=(Lock)locks.get(0);//从Lock对象取List<Key>。=lock.getKeys();//示例结束,取到结果了,剩余的一个关联是取对象Lock,其余操作差不多,就不写出了。...
关于“ibatis一对多数据库如何实现”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“ibatis一对多数据库如何实现”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。