上一节,我们说到,我们已经可以将我们数据库里面的内容,通过我们的mybatis去映射到我们的前端
这个时候,细心的同学就会发现了,我们把所有信息都显示给我我们的前端用户了,这样子肯定是不行的!但是我又不可以去修改我们的类,这样子,又会导致我们接收到Mysql的语句有所缺失,于是就有了我们的端口集成。
基本思路:就是重新创建一个我们想给别人看到的类,然后去把我们的值给他复制进去
一、创建前端显示类
这里话,我们之前数据库的承接类是一样的,只不过这一次,我们只去写我们想要别人看到的类容。为了更好的区分前后端获取的内容,我们在domain下面创建出我们前端显示类
可以看到我们相较与之前少了我们的password(密码)
package com.example.test.domain.dto; public class Test1dto { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getClass().getSimpleName()); sb.append(" ["); sb.append("Hash = ").append(hashCode()); sb.append(", id=").append(id); sb.append(", name=").append(name); sb.append("]"); return sb.toString(); } }
二、判断类
因为我们重新去把我们的值给了我们的前端显示类,这个时候我们会担心有的时候他会发生错误,所以,我们还要一个判断类,来保证我们可以正常地返回
一般地构造都是
然后就是来规矩,tostring ,get方法,set方法,这里还有一个要注意地地方,因为我们到时候可能会根据不同地人来显示不同地信息,所以我们要在这个函数前加一个范型
package com.example.test.resp; public class CommonResp<T> { private boolean success=true; private String message; private String codo; private T content; public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String getCodo() { return codo; } public void setCodo(String codo) { this.codo = codo; } public T getContent() { return content; } public void setContent(T content) { this.content = content; } @Override public String toString() { return "CommonResp{" + "success=" + success + ", message='" + message + '\'' + ", codo='" + codo + '\'' + ", content=" + content + '}'; } }
三、改写Service层
这里我们以list()为例,因为我们要将我们写好的list封装进我们刚刚的判断类,所以先将我们的的放回类型改写成CommonResp然后在里面进行我们的后端获取的数据向前端转化,我们看看具体代码
public CommonResp list()//改写获取判断类 { CommonResp commonResp=new CommonResp(); List<Test1> test1s= test1Mapper.selectByExample(new Test1Example());//获取到我们后台数据 ArrayList<Test1dto> test1dtos=new ArrayList<>();//我们前台显示类链表 for(int i=0,l=test1s.size();i<l;i++) { Test1 test1=test1s.get(i); Test1dto test1dto=new Test1dto();//单个前台显示类 BeanUtils.copyProperties(test1,test1dto);//复制给我们的类 test1dtos.add(test1dto);//加进去 } commonResp.setContent(test1dtos);//返还给我们的判断类 return commonResp;//返回 }
由于我们的在我们控制层那里,函数类型记得进行修改
四、效果
这个就是我们一开始编写的判断类