对于同时操作多个表的情况下 比如同时联合查询 那么会涉及到某些表中存在外键 该外键在一个表中却是另外一个类型的参数 那么就需要进行类型转换 比如在SRC目录下新一个新包 该包下的class文件实际上和entity下的表实体类一样 都是参数的getter和setter方法以及相关的带参数的构造函数 用这种方法来进行类型转换 如下例子 学生和年级两个实体类 但是在学生表中参数年级Grade 却是grade类型的 所以一种方法可以在service中讲grade封装在Grade类中 再将其中的需要的参数遍历进学生类中 同时注意 在new Grade类的时候 要放在遍历函数while(rs.next())之外 不然的话 只会出现与搜速出的数据条目相等的同一结果 同时得到的数个结果 而且数个结果都将和最后一个结果的内容相同
dao包下的grade
package com.cissst.entity;
public class Grade {
private Integer id;
private String gradeNumber;
private String gradeName;
private String creatTime;
private String gradeDesc;
private String remark;
public Grade(String gradeNumber, String gradeName,
String creatTime, String gradeDesc, String remark) {
this.gradeNumber = gradeNumber;
this.gradeName = gradeName;
this.creatTime = creatTime;
this.gradeDesc = gradeDesc;
this.remark = remark;
}
public Grade() {
}
public Integer getId() {
return id;
}
public String getGradeNumber() {
return gradeNumber;
}
public void setGradeNumber(String gradeNumber) {
this.gradeNumber = gradeNumber;
}
public void setId(Integer id) {
this.id = id;
}
public String getGradeName() {
return gradeName;
}
public void setGradeName(String gradeName) {
this.gradeName = gradeName;
}
public String getCreatTime() {
return creatTime;
}
public void setCreatTime(String creatTime) {
this.creatTime = creatTime;
}
public String getGradeDesc() {
return gradeDesc;
}
public void setGradeDesc(String gradeDesc) {
this.gradeDesc = gradeDesc;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
dao包下的student
package com.cissst.entity;
public class Student {
private int id;
private String stuName;
private Grade grade;//此处为grade类型
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public Grade getGrade() {
return grade;
}
public void setGrade(Grade grade) {
this.grade = grade;
}
public Student(String stuName, Grade grade) {
super();
this.stuName = stuName;
this.grade = grade;
}
public Student() {
super();
}
}
新建转换student的类response包
package com.cissst.response;
public class StudentResponse {
private Integer id;
private String stuName;
private String gradeName;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getGradeName() {
return gradeName;
}
public void setGradeName(String gradeName) {
this.gradeName = gradeName;
}
}
通过转换类在后台进行数据类型转换
package com.cissst.servlet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.cissst.entity.Grade;
import com.cissst.entity.Student;
import com.cissst.response.StudentResponse;
import com.cissst.service.BaseService;
import com.cissst.service.BaseServiceImpI;
import com.cissst.utils.CommUtils;
import com.google.gson.Gson;
public class BaseServlet extends HttpServlet {
private BaseService baseService=new BaseServiceImpI();
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req,resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setCharacterEncoding("utf-8");
String method=req.getParameter("m");
if("login".equals(method)){
String username=req.getParameter("username");
String email=req.getParameter("email");
if(baseService.login(username,email)){
resp.getWriter().print("true");
}else{
resp.getWriter().print("false");
}
}else if("findWithPage".equals(method)){
List<Grade>list=baseService.findWithPage(Integer.parseInt(req.getParameter("page")),
Integer.parseInt(req.getParameter("rows")),req.getParameter("gnumber"),req.getParameter("gname"));
Map<String,Object>map=new HashMap<String,Object>();
map.put("rows", list);//传递的数据
map.put("total", baseService.getCount());
resp.getWriter().print(new Gson().toJson(map));
}else if("saveGradeInfo".equals(method)){
Grade grade=new Grade(CommUtils.getGradeNumber(), req.getParameter("gName"),
req.getParameter("creatTime"), req.getParameter("gDesc"), req.getParameter("remark"));
resp.getWriter().print(baseService.saveGradeInfo(grade));
}else if("deleteGradeInfo".equals(method)){
String ids[]= req.getParameterValues("gids[]");
int count=0;
if(ids.length>0){
for(String id: ids){
baseService.deleteGradeInfo(Integer.parseInt(id));
count++;
}
resp.getWriter().print(count);
}
}else if("findGradeInfoById".equals(method)){
String fId=req.getParameter("fId");
resp.getWriter().print(new Gson().toJson(baseService.getGradeInfo(Integer.parseInt(fId))));
}else if("updateGradeInfo".equals(method)){
Grade grade=new Grade(req.getParameter("gradeNumber"), req.getParameter("gradeName"),
req.getParameter("creatTime"), req.getParameter("gradeDesc"), req.getParameter("remark"));
resp.getWriter().print(baseService.updateGradeInfo(grade));
}else if("findStudentWithPage".equals(method)){
List<Student>listStudent=baseService.findStudentWithPage(0, 10, null, null);
List<StudentResponse>studentResponseList=new ArrayList<StudentResponse>();
for(Student stu:listStudent){
StudentResponse studentResponse=new StudentResponse();
studentResponse.setId(stu.getId());
studentResponse.setStuName(stu.getStuName());
studentResponse.setGradeName(stu.getGrade().getGradeName());
studentResponseList.add(studentResponse);
}
resp.getWriter().print(new Gson().toJson(studentResponseList));
}else if("findGradeAllInfo".equals(method)){
resp.getWriter().print(new Gson().toJson(baseService.findGradeAllInfo()));
}else if("saveStudentInfo".equals(method)){
Student student=new Student();
Grade grade=new Grade();
grade.setId(Integer.parseInt(req.getParameter("gradeId")));
student.setStuName(req.getParameter("stuName"));
student.setGrade(grade);
resp.getWriter().print(baseService.saveStudent(student));
}
resp.getWriter().flush();
resp.getWriter().close();
}
}