使用 ibatis 处理复杂对象数据关系的实例
?
在上面的 mapping 中,A_BELONGEDCATALOG 为查询结果中的一个字段,而 getArticleCatalogById 为一个返回结果为 Catalog 的查询。因此 ibatis 在调用时,将会把 A_BELONGEDCATALOG 作为参数传入 getArticleCatalogById 来生成一个 Catalog 实例的引用 , 并将改引用赋值给 belongedCatalog 属性。
?
?
上面的 getGroupByArticle 为一条根据 Article 查出 Group 的语句,该查询需要将关系表与 Groupe 表 join,返回结果为一个 Group 的列表。同样需要注意的是,在对应的增加 / 删除 / 修改操作中,也需要调用一个 SQL 语句来更新关系表,上面是删除的例子。
public Customer getCustomerById(String id) { String classKey=(String) sqlSession.queryForObject("getClassKeyByID", id); if(“COM”.equals(classKey)) return (Customer) sqlSession.queryForObject("getCompanyCustomerByID", id); else if(“PERSON”.equals(classKey)) return (Customer) sqlSession.queryForObject("getPersonCustomerByID", id); }
?
总结
本文介绍了关于 iBatis 开发中常用的映射的实现,由于 iBatis 的所有语句必须靠开发人员生成,上面描述的种种对象关系和给出的实现实例将对开发 iBatis 的应用具有非常大的指导意义。
?
分享到: <!--192.168.1.236-->