企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
>[info]Dao模式遵守SSM注入规范,这方面的教程太多了 #### 第一步,创建dao接口文件与对应的xml文件,当然xml文件可以省略 ├─应用 │ ├─bean │ ├─controller │ ├─service │ │ ├─dao │ │ │ ├─TestDao.java │ │ │ ├─TestDao.xml ``` package cn.lcfms.app.admin.service.Dao; import java.util.List; import org.apache.ibatis.annotations.Select; public interface TestDao { @Select("select * from demo") public List<HashMap<String, Object>> select(); } ``` #### 第二步①,如果返回的数据你不需要做什么处理,建议直接在controller层注入 >[danger](有些人非要按部就班的写一个service接口,再写一个service实现,然后在方法里就写一句return结果的语句,我认为纯属脑子进水了,学东西学死了,不懂得变通) ``` package cn.lcfms.app.admin.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import cn.lcfms.app.BaseController; import cn.lcfms.app.admin.service.Dao.TestDao; import cn.lcfms.utils.Vardump; @Controller("index.TestController") @RequestMapping("/index/test") public class TestController extends BaseController{ @Autowired private TestDao td; @RequestMapping("/name") public String name() { List<?> list = td.select(); Vardump.print(list); return "{\"code\":1}"; } } ``` #### 第二步②,如果返回的数据你需要处理,且同样的处理会被重复多次,建议将处理抽象出来写到serivce里。 >[danger]这里涉及到一个问题,要不要写service接口,规范一点的话可以写,但个人建议,如果这个接口有多态的需求,必须写接口,接口有利于使用spring切面编程来做一些统一的处理,后期扩展也很方便。如果没有这个需求,则不必写接口。 这里是service层 ``` package cn.lcfms.app.admin.service; import java.util.HashMap; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.lcfms.app.admin.service.Dao.TestDao; @Service public class TestService { @Autowired private TestDao td; public void doservice() { List<HashMap<String, Object>> select = td.select(); //...更多业务逻辑 } } ``` 这里是controller层 ``` package cn.lcfms.app.admin.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import cn.lcfms.app.BaseController; import cn.lcfms.app.admin.service.TestService; @Controller("index.TestController") @RequestMapping("/index/test") public class TestController extends BaseController{ @Autowired private TestService ts; @RequestMapping("/name") public String name() { ts.doservice(); return "{\"code\":1}"; } } ```