>[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}";
}
}
```
- 系统入门
- 系统简介
- 目录结构
- 系统配置
- 应用
- 应用
- 控制器
- 模板
- 自定义标签
- 用户信息
- 调试
- 调试模式
- 使用Vardump打印
- 访问数据库
- 数据库配置
- Dao模式
- BaseService模式
- 获取对象
- 插入
- 修改
- 删除
- 查询
- where方法
- column方法
- join方法
- 其他查询方法
- 操作集合
- sql方法
- 查询回调接口
- 使用别名
- 后台验证
- 同步表结构
- 使用事务
- 数据分页
- 通用视图模板
- CommonPageView
- CommonPageLayer
- CommonTreeView
- CommonEditView
- CommonEditLayer
- 日志管理
- 后台菜单
- 权限管理
- CMS
- CMS核心
- CMS仿站工具
- CMS采集工具
- websocket
- UI自动生成器
- 缓存
- 自定义缓存
- 生成静态页面
- 表单
- 上传文件
- 前端验证