JDBC实例2 关于分包下不同表实体类的外键类型转换

来源:互联网 发布:360网页广告拦截软件 编辑:程序博客网 时间:2024/06/05 01:20

对于同时操作多个表的情况下 比如同时联合查询 那么会涉及到某些表中存在外键 该外键在一个表中却是另外一个类型的参数 那么就需要进行类型转换 比如在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();    }}
0 0
原创粉丝点击