第六章EL和JSTL 1-el表达式(2)

来源:互联网 发布:js实现多图上传 编辑:程序博客网 时间:2024/06/02 22:50

案例

    1. 数据库:

     学生:姓名、性别、生日、身高、所属班级(select选择)、是否特长生,民族(select选择)

     老师:姓名、电话、生日

     班级:班级名称、教室号、班主任老师(select选择)

     民族:名称

     课上实现老师、学生的增删改查。 Dao(Servlet中不出现SQL语句、ResultSet等JDBC):DAO返回的数据、接收的数据都用Model。我习惯Model类名以Info结束。

     作业:完成“老师、班级”的增删改查。给“老师”增加 “民族、性别、邮箱”三个字段。

     2.DAO的理由:1、Servlet中不出现数据库相关的东西。2、把所有和数据库相关的东西放到DAO中,Servlet只和DAO打交道。3、Servlet和DAO之间传递复杂数据用对象

    3. DAO的优点:各司其职:Servlet就是负责和用户交互(获取请求,处理请求,返回响应),到底数据是怎么样跟数据库搞出来的,Servlet不管;DAO只负责和数据库打交道,取出来的数据怎么用,为什么要addnew一条数据,DAO不管。

     4.有的老师的习惯:DAO和Model合一。


项目列表:

 

【TeacherDAO.java】

【TeacherInfo.java】

【RupengUtils.java】

【TeacherServlet.java】

【TeacherList.jsp】

【TeacherEdit.jsp】

【TeacherAddNew.jsp】

【Error.jsp】

 

建好数据库


建议:现在大家都习惯在catch里throw newRuntimeException了想处理就处理

很少throws 检查异常  spring基本都是遵循这个习惯  为了调用者方便

Dao有好多种写法

在Dao中封装一个方法toModel  把ResultSet转换为TeacherInfo对象

 

【TeacherDAO.java】

 

package com.rupeng.web3;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;/** * 对教师表的增删改查等进行封装 *  * @author yzk *  */public class TeacherDAO{// 方法的参数一般不要超过5个。// public void addnew(String name,String phoneNum,...)//spring/** * 新增数据 */public void addnew(TeacherInfo teacher){try{JdbcUtils.executeUpdate("Insert into T_Teachers(Name,PhoneNum,BirthDay) values(?,?,?)",teacher.getName(), teacher.getPhoneNum(), teacher.getBirthDay());} catch (SQLException e){//封装成RuntimeException主要为了调用者方便throw new RuntimeException(e);}}/** * 更新数据(要求id字段是确定,不被修改) * @param teacher */public void update(TeacherInfo teacher){try{JdbcUtils.executeUpdate("Update T_Teachers set Name=?,PhoneNum=?,BirthDay=? where Id=?",teacher.getName(),teacher.getPhoneNum(),teacher.getBirthDay(),teacher.getId());} catch (SQLException e){throw new RuntimeException(e);}}/** * 删除主键为id的老师 * @param id */public void delete(int id){try{JdbcUtils.executeUpdate("delete from T_Teachers where Id=?", id);} catch (SQLException e){throw new RuntimeException(e);}}/** * 查找逐渐为参数id值的老师 * @param id * @return 老师对象 */public TeacherInfo getById(int id){ResultSet rs = null;try{rs = JdbcUtils.executeQuery("select * from T_Teachers where Id=?", id);if(rs.next()){/*TeacherInfo info = new TeacherInfo();info.setId(rs.getInt("Id"));info.setName(rs.getString("Name"));info.setPhoneNum(rs.getString("PhoneNum"));info.setBirthDay(rs.getDate("BirthDay"));return info;*/return toModel(rs);}else{return null;//一条数据都没有,也就是没有找到id=id的数据}} catch (SQLException e){throw new RuntimeException(e);}finally{JdbcUtils.closeAll(rs);}}/** * 读取当前行的数据,然后形成一个对象返回 * @param rs * @return * @throws SQLException */private TeacherInfo toModel(ResultSet rs) throws SQLException{TeacherInfo info = new TeacherInfo();info.setId(rs.getInt("Id"));info.setName(rs.getString("Name"));info.setPhoneNum(rs.getString("PhoneNum"));info.setBirthDay(rs.getDate("BirthDay"));return info;}/** * 获得所有的老师对象 * @return */public List<TeacherInfo> getAll(){ResultSet rs = null;try{rs = JdbcUtils.executeQuery("select * from T_Teachers");List<TeacherInfo> list = new LinkedList<TeacherInfo>();while(rs.next()){/*TeacherInfo info = new TeacherInfo();info.setId(rs.getInt("Id"));info.setName(rs.getString("Name"));info.setPhoneNum(rs.getString("PhoneNum"));info.setBirthDay(rs.getDate("BirthDay"));list.add(info);*/list.add(toModel(rs));}return list;}catch(SQLException e){throw new RuntimeException(e);}finally{JdbcUtils.closeAll(rs);}}}

【TeacherInfo.java】

package com.rupeng.web3;import java.sql.Date;public class TeacherInfo{private int id;private String name;private String phoneNum;private Date birthDay;public int getId(){return id;}public void setId(int id){this.id = id;}public String getName(){return name;}public void setName(String name){this.name = name;}public String getPhoneNum(){return phoneNum;}public void setPhoneNum(String phoneNum){this.phoneNum = phoneNum;}public Date getBirthDay(){return birthDay;}public void setBirthDay(Date birthDay){this.birthDay = birthDay;}}

乱码处理 转到错误页

【RupengUtils.java】

package com.rupeng.web3;import java.io.IOException;import java.io.UnsupportedEncodingException;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class RupengUtils{/** * 从请求中获取名字为name的值,解决中文乱码问题 * @param req * @param name * @return */public static String getParameter(HttpServletRequest request, String name){try{String value = request.getParameter(name);byte[] bytes;bytes = value.getBytes("ISO-8859-1");return new String(bytes, "UTF-8");} catch (UnsupportedEncodingException e){throw new RuntimeException(e);}}/** * 在/Error.jsp中显示错误消息 * @param request * @param response * @param msg * @throws ServletException * @throws IOException */public static void showError(HttpServletRequest request,HttpServletResponse response,String msg)throws ServletException, IOException{request.setAttribute("msg", msg);request.getRequestDispatcher("/Error.jsp").forward(request, response);}}

【TeacherServlet.java】

package com.rupeng.web3;import java.io.IOException;import java.sql.Date;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TeacherServlet extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{String action = request.getParameter("action");if(action.equals("addnew")){request.getRequestDispatcher("/TeacherAddNew.jsp").forward(request, response);}else if(action.equals("addnewSubmit")){String name = RupengUtils.getParameter(request, "name");String phoneNum = request.getParameter("phoneNum");String birthDay = request.getParameter("birthDay");Date dateBirthDay = Date.valueOf(birthDay);//把"2008-08-08"这样的字符串解析为Date类型TeacherInfo teacher = new TeacherInfo();teacher.setName(name);teacher.setPhoneNum(phoneNum);teacher.setBirthDay(dateBirthDay);//看不到一行sql语句,看不到一个和JDBC相关的东西//在Servlet中不出现JDBC、不出现SQL语句//JDBC、SQL语句出现在DAO中//对于复杂的项目,引入DAO会让代码更清晰,可复用性更强TeacherDAO dao = new TeacherDAO();dao.addnew(teacher);response.sendRedirect("teacher?action=list");}else if(action.equals("edit")){int id = Integer.parseInt(request.getParameter("id"));//先查询修改前的数据TeacherInfo teacher = new TeacherDAO().getById(id);if(teacher==null){/*request.setAttribute("msg", "没有查询到id="+id+"的老师");request.getRequestDispatcher("/Error.jsp").forward(request, response);*/RupengUtils.showError(request, response, "没有查询到id="+id+"的老师");}else{request.setAttribute("teacher",teacher);request.getRequestDispatcher("/TeacherEdit.jsp").forward(request, response);}}else if(action.equals("editSubmit")){int id = Integer.parseInt(request.getParameter("id"));String name = RupengUtils.getParameter(request, "name");String phoneNum = request.getParameter("phoneNum");String birthDay = request.getParameter("birthDay");Date dateBirthDay = Date.valueOf(birthDay);//把"2008-08-08"这样的字符串解析为Date类型TeacherInfo teacher = new TeacherInfo();teacher.setId(id);teacher.setName(name);teacher.setPhoneNum(phoneNum);teacher.setBirthDay(dateBirthDay);new TeacherDAO().update(teacher);response.sendRedirect("teacher?action=list");}else if(action.equals("delete")){int id = Integer.parseInt(request.getParameter("id"));new TeacherDAO().delete(id);response.sendRedirect("teacher?action=list");}else if(action.equals("list")){TeacherDAO dao = new TeacherDAO();List<TeacherInfo> list = dao.getAll();request.setAttribute("teachers", list);request.getRequestDispatcher("/TeacherList.jsp").forward(request, response);}else{/*request.setAttribute("msg", "错误的action:"+action);request.getRequestDispatcher("/Error.jsp").forward(request, response);*/RupengUtils.showError(request, response,"错误的action:"+action);}}}

【TeacherList.jsp】

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>教师管理</title></head><body><p><a href="teacher?action=addnew">新建教师</a></p><table><tr><td>删除</td><td>修改</td><td>姓名</td><td>手机号</td><td>生日</td></tr><c:forEach items="${teachers}" var="t"><tr><td><a href="teacher?action=delete&id=${t.id}">删除</a></td><td><a href="teacher?action=edit&id=${t.id}">修改</a></td><td><c:out value="${t.name}"/></td><td><c:out value="${t.phoneNum}"/></td><td>${t.birthDay}</td></tr></c:forEach></table></body></html>

【TeacherEdit.jsp】

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>编辑教师</title></head><body><form action="teacher" method="post"><input type="hidden" name="action" value="editSubmit"/><input type="hidden" name="id" value="${teacher.id}"/>姓名:<input type="text" name="name" value="${teacher.name }"/>手机号:<input type="text" name="phoneNum" value="${teacher.phoneNum }"/>生日:<input type="text" name="birthDay" value="${teacher.birthDay }"/><input type="submit" value="保存"/></form></body></html>

【TeacherAddNew.jsp】

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>新建老师</title></head><body><form action="teacher" method="post"><input type="hidden" name="action" value="addnewSubmit"/>姓名:<input type="text" name="name"/>手机号:<input type="text" name="phoneNum"/>生日:<input type="text" name="birthDay"/><input type="submit" value="保存"/></form></body></html>

【Error.jsp】

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"  %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>错误</title></head><body>${msg}</body></html>

Student项目列表:

【StudentDAO.java】

【StudentInfo.java】

【StudentServlet.java】

【StudentList.jsp】

【StudentEdit.jsp】

【StudentList.jsp】

 

【StudentDAO.java】

package com.rupeng.web3;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;public class StudentDAO{public void addnew(StudentInfo student){try{JdbcUtils.executeUpdate("Insert into T_Students(Name,Gender,BirthDay,ClassId,TeChangSheng,MinZuId) values(?,?,?,?,?,?)",student.getName(), student.isGender(), student.getBirthDay(),student.getClassId(),student.isTeChangSheng(),student.getMinZuId());} catch (SQLException e){//封装成RuntimeException主要为了调用者方便throw new RuntimeException(e);}}public void update(StudentInfo student){try{JdbcUtils.executeUpdate("Update T_Students set Name=?,Gender=?,BirthDay=?,ClassId=?,TeChangSheng=?,MinZuId=? where Id=?",student.getName(),student.isGender(),student.getBirthDay(),student.getClassId(),student.isTeChangSheng(),student.getMinZuId(),student.getId());} catch (SQLException e){throw new RuntimeException(e);}}public void delete(int id){try{JdbcUtils.executeUpdate("delete from T_Students where Id=?", id);} catch (SQLException e){throw new RuntimeException(e);}}public StudentInfo getById(int id){ResultSet rs = null;try{rs = JdbcUtils.executeQuery("select * from T_Students where Id=?", id);if(rs.next()){return toModel(rs);}else{return null;//一条数据都没有,也就是没有找到id=id的数据}} catch (SQLException e){throw new RuntimeException(e);}finally{JdbcUtils.closeAll(rs);}}private StudentInfo toModel(ResultSet rs) throws SQLException{StudentInfo info = new StudentInfo();info.setId(rs.getInt("Id"));info.setName(rs.getString("Name"));info.setGender(rs.getBoolean("Gender"));info.setBirthDay(rs.getDate("BirthDay"));info.setClassId(rs.getInt("ClassId"));info.setTeChangSheng(rs.getBoolean("TeChangSheng"));info.setMinZuId(rs.getInt("MinZuId"));return info;}public List<StudentInfo> getAll(){ResultSet rs = null;try{rs = JdbcUtils.executeQuery("select * from T_Students");List<StudentInfo> list = new LinkedList<StudentInfo>();while(rs.next()){list.add(toModel(rs));}return list;}catch(SQLException e){throw new RuntimeException(e);}finally{JdbcUtils.closeAll(rs);}}}

【StudentInfo.java】

package com.rupeng.web3;import java.sql.Date;public class StudentInfo{private int id;private String haha;private boolean gender;private Date birthDay;private int classId;private boolean teChangSheng;private int minZuId;public int getId(){return id;}public void setId(int id){this.id = id;}public String getName(){//return "rupeng";return haha;}public void setName(String name){this.haha = name;}public boolean isGender(){return gender;}public void setGender(boolean gender){this.gender = gender;}public Date getBirthDay(){return birthDay;}public void setBirthDay(Date birthDay){this.birthDay = birthDay;}public int getClassId(){return classId;}public void setClassId(int classId){this.classId = classId;}//对于boolean类型的属性,获取方法既可以以get开头又可以以is开头//如果既有get方法又有is方法,则is方法优先级高//vip、gender(性别)。He is vip。He is Gender。His Gender is male。//isVIP、getGender()//isTeChangSheng///*public boolean isTeChangSheng(){return true;}*/public boolean isTeChangSheng()//public boolean getTeChangSheng(){return teChangSheng;}public void setTeChangSheng(boolean teChangSheng){this.teChangSheng = teChangSheng;}public int getMinZuId(){return minZuId;}public void setMinZuId(int minZuId){this.minZuId = minZuId;}}

【StudentServlet.java】

package com.rupeng.web3;import java.io.IOException;import java.sql.Date;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class StudentServlet extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{String action = request.getParameter("action");if (action.equals("addnew")){List<MinZuInfo> minzus = new MinZuDAO().getAll();request.setAttribute("minzus", minzus);//给到jsp中的民族下拉列表显示所有民族使用request.getRequestDispatcher("/StudentAddNew.jsp").forward(request,response);} else if (action.equals("addnewSubmit")){String name = RupengUtils.getParameter(request, "name");/*boolean gender = Boolean.parseBoolean(request.getParameter("gender"));*/boolean gender ="male".equals(request.getParameter("gender"));String birthDay = request.getParameter("birthDay");Date dateBirthDay = Date.valueOf(birthDay);int classId = Integer.parseInt(request.getParameter("classId"));boolean teChangSheng = "on".equalsIgnoreCase(request.getParameter("teChangSheng"));int minZuId = Integer.parseInt(request.getParameter("minZuId"));StudentInfo student = new StudentInfo();student.setBirthDay(dateBirthDay);student.setClassId(classId);student.setGender(gender);student.setMinZuId(minZuId);student.setName(name);student.setTeChangSheng(teChangSheng);new StudentDAO().addnew(student);response.sendRedirect("student?action=list");} else if (action.equals("edit")){int id = Integer.parseInt(request.getParameter("id"));StudentInfo student = new StudentDAO().getById(id);request.setAttribute("student", student);List<MinZuInfo> minzus = new MinZuDAO().getAll();request.setAttribute("minzus", minzus);//给到jsp中的民族下拉列表显示所有民族使用request.getRequestDispatcher("/StudentEdit.jsp").forward(request,response);} else if (action.equals("editSubmit")){int id = Integer.parseInt(request.getParameter("id"));String name = RupengUtils.getParameter(request, "name");boolean gender = Boolean.parseBoolean(request.getParameter("gender"));String birthDay = request.getParameter("birthDay");Date dateBirthDay = Date.valueOf(birthDay);int classId = Integer.parseInt(request.getParameter("classId"));boolean teChangSheng = "on".equalsIgnoreCase(request.getParameter("teChangSheng"));int minZuId = Integer.parseInt(request.getParameter("minZuId"));StudentInfo student = new StudentInfo();student.setId(id);student.setBirthDay(dateBirthDay);student.setClassId(classId);student.setGender(gender);student.setMinZuId(minZuId);student.setName(name);student.setTeChangSheng(teChangSheng);new StudentDAO().update(student);response.sendRedirect("student?action=list");} else if (action.equals("list")){List<StudentInfo> list = new StudentDAO().getAll();request.setAttribute("students", list);request.getRequestDispatcher("/StudentList.jsp").forward(request,response);} else if (action.equals("delete")){int id = Integer.parseInt(request.getParameter("id"));new StudentDAO().delete(id);response.sendRedirect("student?action=list");} else{RupengUtils.showError(request, response, "action错误" + action);}}}

【StudentAddNew.jsp】

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>新增学生</title></head><body><form action="student" method="post"><input type="hidden" name="action" value="addnewSubmit"/><table><tr><td>姓名:</td><td><input type="text" name="name"/></td><td>性别:</td><td><select name="gender"><option value="male">男</option><option value="female">女</option></select></td></tr><tr><td>出生日期:</td><td><input type="text" name="birthDay"/></td><td>班级:</td><td><input type="text" name="classId"/></td></tr><tr><td><input type="checkbox" name="teChangSheng" id="teChangSheng" /><label for="teChangSheng">特长生</label></td><td></td><td>民族:</td><td><select name="minZuId"><c:forEach items="${requestScope.minzus}" var="minzu"><option value="${minzu.id}">${minzu.name}</option></c:forEach></select></td></tr></table><input type="submit" value="保存"/></form></body></html>


【StudentEdit.jsp】

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>修改学生</title></head><body><form action="student" method="post"><input type="hidden" name="action" value="editSubmit"/><input type="hidden" name="id" value="${student.id }" /><table><tr><td>姓名:</td><td><input type="text" name="name" value="<c:out value='${student.name }'/>"/></td><td>性别:</td><td><select name="gender"><option value="male" ${student.gender?'selected':'' }>男</option><option value="female"${student.gender?'':'selected' }>女</option></select></td></tr><tr><td>出生日期:</td><td><input type="text" name="birthDay" value="${student.birthDay }"/></td><td>班级:</td><td><input type="text" name="classId" value="${student.classId }"/></td></tr><tr><td><input type="checkbox" name="teChangSheng" id="teChangSheng" ${student.teChangSheng?'checked':'' }/><label for="teChangSheng">特长生</label></td><td></td><td>民族:</td><td><select name="minZuId"><c:forEach items="${requestScope.minzus}" var="minzu"><option value="${minzu.id}" ${student.minZuId eq minzu.id?'selected':'' }>${minzu.name}</option></c:forEach></select></td></tr></table><input type="submit" value="保存"/></form></body></html>

【StudentList.jsp】

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>学生管理</title></head><body><p><a href="student?action=addnew">新增学生</a></p><table><thead><tr><td>删除</td><td>修改</td><td>姓名</td><td>性别</td><td>生日</td><td>是否特长生</td></tr></thead><tbody><c:forEach items="${students}" var="s"><tr><td><a href="student?action=delete&id=${s.id}">删除</a></td><td><a href="student?action=edit&id=${s.id}">修改</a></td><td><c:out value="${s.name}"/></td><td>${s.gender }</td><td>${s.birthDay }</td><td>${s.teChangSheng }</td></tr></c:forEach></tbody></table></body></html>

民族项目列表:

【MinZuDAO.java】

【MinZuInfo.java】

 

【MinZuDAO.java】

package com.rupeng.web3;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;public class MinZuDAO{public List<MinZuInfo> getAll(){List<MinZuInfo> list = new LinkedList<MinZuInfo>();ResultSet rs = null;try{rs = JdbcUtils.executeQuery("select * from T_MinZus");while(rs.next()){list.add(toModel(rs));}return list;} catch (SQLException e){throw new RuntimeException(e);} finally{JdbcUtils.closeAll(rs);}}private MinZuInfo toModel(ResultSet rs) throws SQLException{MinZuInfo info = new MinZuInfo();info.setId(rs.getInt("Id"));info.setName(rs.getString("Name"));return info;}}

【MinZuInfo.java】

package com.rupeng.web3;public class MinZuInfo{private int id;private String name;public int getId(){return id;}public void setId(int id){this.id = id;}public String getName(){return name;}public void setName(String name){this.name = name;}}

班级项目列表

【ClassDAO.java】

【ClassInfo.java】

 

【ClassDAO.java】

package com.rupeng.web3;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;public class ClassDAO{private ClassInfo toModel(ResultSet rs) throws SQLException{ClassInfo info = new ClassInfo();info.setId(rs.getInt("Id"));info.setName(rs.getString("Name"));info.setRoomNum(rs.getString("RootNum"));info.setTeacherId(rs.getInt("TeacherId"));return info;}public List<ClassInfo> getAll(){List<ClassInfo> list = new LinkedList<ClassInfo>();ResultSet rs = null;try{rs = JdbcUtils.executeQuery("select * from T_Classes");while(rs.next()){list.add(toModel(rs));}return list;} catch (SQLException e){throw new RuntimeException(e);} finally{JdbcUtils.closeAll(rs);}}}

【ClassInfo.java】

package com.rupeng.web3;public class ClassInfo{private int id;private String name;private String roomNum;private int teacherId;public int getId(){return id;}public void setId(int id){this.id = id;}public String getName(){return name;}public void setName(String name){this.name = name;}public String getRoomNum(){return roomNum;}public void setRoomNum(String roomNum){this.roomNum = roomNum;}public int getTeacherId(){return teacherId;}public void setTeacherId(int teacherId){this.teacherId = teacherId;}}

【总结】有的老师会把TeacherInfo类和TeacherDao类合成一个类

JavaBean规范  直接s.name  引用属性getName实际属性为name

boolean属性获取方法既可以以get开头也可以以is开头 都存在就is优先级高




0 0