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
- JDBC实例2 关于分包下不同表实体类的外键类型转换
- springmvc实体类类型转换
- 实体类型的转换? Automapper OR 自定义
- 关于实体类对象与XML的转换
- 关于实体类对象与XML的转换
- 关于实体类对象与XML的转换
- 转换实体类型
- 关于类型的转换
- JDBC操作实例 前台与数据分包实例1
- Struts2的类型转换实例
- struts2的类型转换实例
- C++关于类的强制类型转换
- 不同数字类型之间的转换
- 不同数字类型之间的转换
- Thinkphp不同数据库类型之间的转换
- 关于实体为不同角色访问的问题
- spring整合hibernate扫描多个不同包下的实体类
- SpringMVC ResponseBody的实体类中含有Date类型转换-简单方式
- linux下安装和配置DNS服务器
- 常用sql
- 黑马程序员——JAVA笔记——装饰设计模式
- Java并发编程-32-带有延迟元素的队列-DelayQueue
- Linux-shell基础-1
- JDBC实例2 关于分包下不同表实体类的外键类型转换
- 交换排序-冒泡排序
- 剑指offer第三题:二维数组中查找
- OpenCV+C++ 视频图片相互转换
- uva6511 强连通分量
- poj 2388 Who's in the Middle
- VS2013快捷键
- tableView的刷新
- Zookeeper集群环境搭建实践