Foxnic-SQL(十四)——DAO的服务扩展概述Foxnic-SQL中的Service有点像DDD中的Repository,只是没有Repository和RepositoryFoxnic系统Service是有区别的,所以它更像是两者的结合。但是,它们的组合和划分是灵活的,取决于业务场景的需要。在很多项目中,很多时候,Controller就是Service的setter,或许它也会成为Repository的第三个传递者。所以,是单pass还是二pass还是三pass,要看项目和场景。Foxnic-SQL中的服务是将数据操作的对象具体化,它最初的出现是一个单表单实体的数据操作符。使用Service时,需要代码生成工具,从数据表中生成Po和Vo对象,Service接口和接口实现。这些代码是如何生成的,本节我们不展开。这里我们主要了解如何使用Service为开发者提供的诸多功能。本文中的示例代码可以在https://gitee.com/LeeFJ/foxnic-samples项目中找到。服务方法图Foxnic-SQL提供的基础Service功能非常强大,几乎囊括了单表数据操作的方方面面。Service的实现分为两层。基本功能在SuperService基类中实现,具体表的Service继承SuperService。以下是SuperService的功能图:以下是模块Service的功能图:以上两个思维导图的详细介绍请到http://foxnicweb.com/docs/doc.html#0,4查看相关视频:模块服务层和SuperService的两个视频合集。简单示例下面是一个Service的简单示例,功能更多的朋友可以根据上面的思维导图和视频自行探索。公共类ServiceDemo{publicstaticvoidmain(String[]args){demo_1();}/***服务使用的示例**/publicstaticvoiddemo_1(){//获取服务对象IAddressServiceservice=DBInstance.DEFAULT.getService(AddressServiceImpl.class);//设置Po值地址address=newAddress();address.setRegionType("国内");address.setRegionLocation("华东地区");address.setAddress("宁波");address.setName("LeeFJ");地址.setPhoneNumber("13444025142");//插入对象结果r=service.insert(address);System.out.println("插入后:"+JSON.toJSON(r));//查询if(r.success()){地址addressInDB=service.getById(address.getId());System.out.println("来自数据库:"+JSON.toJSON(addressInDB));}//物理删除r=service.deleteByIdPhysical(address.getId());System.out.println("删除后:"+JSON.toJSON(r));}}总结本节主要介绍Foxni-SQLDAO中的Service扩展。在使用服务扩展之前,请先了解代码生成。当然,按示例代码应该是根据示例画葫芦最快的方法了。本节给出一个简单的例子,希望能起到参考作用。相关项目https://gitee.com/LeeFJ/foxnichttps://gitee.com/LeeFJ/foxnic-webhttps://gitee.com/lank/eamhttps://gitee.com/LeeFJ/foxnic-samples官方文档http://foxnicweb.com/docs/doc.html
