MyBatis小demo

一套MyBatis+oracle+servlet+jQuery+tomcat实现的增、删、改、查、分页、动态条件查询,希望能够给初学者带来便利,提高新手的能力。

一、项目结构



二、配置文件

1、 MyBatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="org.yuntu.entity.Emp" alias="Emp"/>
<typeAlias type="org.yuntu.entity.Dept" alias="Dept"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="username" value="scott"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/yuntu/dao/EmpDaoMapper.xml"/>
<mapper resource="org/yuntu/dao/DeptDaoMapper.xml"/>
</mappers>
</configuration>

2、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>DeptServlet</servlet-name>
    <servlet-class>org.yuntu.web.DeptServlet</servlet-class>
  </servlet>
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>EmpServlet</servlet-name>
    <servlet-class>org.yuntu.web.EmpServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>DeptServlet</servlet-name>
    <url-pattern>/DeptServlet.do</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>EmpServlet</servlet-name>
    <url-pattern>/EmpServlet.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

三、实体类

1、emp

package org.yuntu.entity;
import java.util.Date;
public class Emp {

private Integer empno;
private String ename;
private String job;
private Integer mgr;
private Date hiredate;
private Double sal;
private Double comm;
private Integer deptno;
private Dept dept;

public Dept getDept() {
return dept;
}
public void setDept(Dept dept) {
this.dept = dept;
}
public Integer getEmpno() {
return empno;
}
public void setEmpno(Integer empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public Integer getMgr() {
return mgr;
}
public void setMgr(Integer mgr) {
this.mgr = mgr;
}
public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}
public Double getSal() {
return sal;
}
public void setSal(Double sal) {
this.sal = sal;
}
public Double getComm() {
return comm;
}
public void setComm(Double comm) {
this.comm = comm;
}
public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptno) {
this.deptno = deptno;
}
public Emp(Integer empno, String ename, String job, Integer mgr,
Date hiredate, Double sal, Double comm, Integer deptno) {
super();
this.empno = empno;
this.ename = ename;
this.job = job;
this.mgr = mgr;
this.hiredate = hiredate;
this.sal = sal;
this.comm = comm;
this.deptno = deptno;
}
public Emp() {
super();
}

}

2、dept

package org.yuntu.entity;
public class Dept {

private Integer deptno;
private String dname;
private String location;
private Emp emps;

public Emp getEmps() {
return emps;
}
public void setEmps(Emp emps) {
this.emps = emps;
}
public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptno) {
this.deptno = deptno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public Dept(Integer deptno, String dname, String location) {
super();
this.deptno = deptno;
this.dname = dname;
this.location = location;
}
public Dept() {
super();
}

}


四、dao接口

1、EmpDao

package org.yuntu.dao;


import java.util.List;
import java.util.Map;


import org.yuntu.entity.Emp;




public interface EmpDao {

public abstract List<Emp> findAllEmps();

public abstract Emp findOneEmp(Integer empno);

public abstract boolean addEmp(Emp emp);

public abstract boolean delete(Integer empno);

public abstract boolean update(Emp emp);

public abstract List<Emp> findByQuery(Map<String,Object> map);

public abstract Integer maxEmpNo();

public abstract Integer count(Map<String,Object> map);


}

2、EmpDao 接口映射   EmpDaoMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.yuntu.dao.EmpDao">
 <!-- resultMap:给实体类加载映射 -->
  <resultMap type="org.yuntu.entity.Emp" id="EmpResultMap">
  <id property="empno" column="EMPNO"/>
  <result property="ename" column="ENAME"/>
  <result property="job" column="JOB"/>
  <result property="mgr" column="MGR"/>
  <result property="hiredate" column="HIREDATE"/>
  <result property="sal" column="SAL"/>
  <result property="comm" column="COMM"/>
  <result property="deptno" column="DEPTNO"/>
  <association property="dept" javaType="org.yuntu.entity.Dept">
  <id property="deptno" column="DEPTNO"/>
  <result property="dname" column="DNAME"/>
  <result property="location" column="LOC"/>
  </association>
  </resultMap>
  <select id="count" resultType="Integer">
  select count(*) from emp e inner join dept d on e.deptno=d.deptno
  <where>
  <if test="eename!=null">
  e.ename LIKE #{eename}
  </if>
  <if test="ehiredate!=null">
  and e.hiredate<![CDATA[>]]>to_date(#{ehiredate},'yyyy-MM-dd')
  </if>
  <if test="edname!=null">
  and d.dname LIKE CONCAT(CONCAT('%',#{edname}),'%')
  </if>
    </where>
  </select>
  <select id="maxEmpNo" resultType="Integer">
  select max(empno) from emp
  </select>
  <!-- parameterType="map" map大写小写都可以 -->
  <select id="findByQuery" parameterType="map" resultMap="EmpResultMap">
  SELECT * FROM (
SELECT ed.*,ROWNUM rn FROM
(SELECT *  FROM emp e INNER JOIN dept d ON e.deptno=d.deptno
<where>
  <if test="eename!=null">
  e.ename LIKE #{eename}
  </if>
  <if test="ehiredate!=null">
  and e.hiredate<![CDATA[>]]>to_date(#{ehiredate},'yyyy-MM-dd')
  </if>
  <if test="edname!=null">
  and d.dname LIKE CONCAT(CONCAT('%',#{edname}),'%')
  </if>
    </where>
) ed) de
WHERE de.rn<![CDATA[>]]>#{pageIndex1} AND de.rn<![CDATA[<]]>=#{pageIndex2}
 
  </select>
  <select id="findAllEmps" resultMap="EmpResultMap">
  select*from emp
  </select>
  <select id="findOneEmp" parameterType="Integer" resultMap="EmpResultMap">
  select*from emp where empno=#{empno}
  </select>
  <insert id="addEmp" parameterType="Emp">
  insert into emp 
  (empno,ename,job,mgr,hiredate,sal,comm,deptno)
  values (#{empno},#{ename},#{job},#{mgr},#{hiredate},#{sal},#{comm},#{deptno})
  </insert>
  <delete id="delete" parameterType="Integer">
  DELETE FROM emp WHERE empno=#{empno} 
  </delete>
  <!-- 为避免修改时,将为传入的参数在数据库变成空值:
  1、在update使用<Set>
  <if test=""></if>
  </set>
     2、把数据传到实体类
      -->
  <update id="update" parameterType="Emp">
  update emp
  <set>
  <if test="ename!=null">ename=#{ename},</if>
  <if test="job!=null">job=#{job},</if>
  <if test="mgr!=null">mgr=#{mgr},</if>
  <if test="hiredate!=null">hiredate=#{hiredate},</if>
  <if test="sal!=null">sal=#{sal},</if>
  <if test="comm!=null">comm=#{comm},</if>
  <if test="deptno!=null">deptno=#{deptno}</if>
  </set>
  where empno=#{empno}
 
  <!--update emp 
  set ename=#{ename},job=#{job},mgr=#{mgr},hiredate=#{hiredate},sal=#{sal},
  comm=#{comm},deptno=#{deptno}
  where empno=#{empno}
 
  --></update>
 </mapper>


3、DeptDao

package org.yuntu.dao;
import java.util.List;
import org.yuntu.entity.Dept;
public interface DeptDao {

public abstract List<Dept> findAllInfo();


}


4、DeptDao映射文件     DeptDaoMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.yuntu.dao.DeptDao">
<resultMap type="Dept" id="DeptResultMap">
  <id property="deptno" column="DEPTNO"/>
  <result property="dname" column="DNAME"/>
  <result property="location" column="LOC"/>
  <collection property="emps" ofType="org.yuntu.entity.Emp">
  <id property="empno" column="EMPNO"/>
  <result property="ename" column="ENAME"/>
  <result property="job" column="JOB"/>
  <result property="mgr" column="MGR"/>
  <result property="hiredate" column="HIREDATE"/>
  <result property="sal" column="SAL"/>
  <result property="comm" column="COMM"/>
  <result property="deptno" column="DEPTNO"/>
  </collection>
  </resultMap>
  <select id="findAllInfo" resultType="Dept">
  select*from dept
  </select>
</mapper>


5、EmpDaoImpl   接口实现类

package org.yuntu.dao.Impl;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.transaction.Transaction;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.yuntu.dao.EmpDao;
import org.yuntu.entity.Emp;
import org.yuntu.util.MyBatisUtil;
public class EmpDaoImpl implements EmpDao{

public List<Emp> findAllEmps() {
String resource="MyBatis-config.xml";
InputStream in;
SqlSessionFactoryBuilder builder;
SqlSessionFactory sf;
SqlSession session = null;
List<Emp> list=null;
try {
in=Resources.getResourceAsStream(resource);
builder=new SqlSessionFactoryBuilder();
sf=builder.build(in);
session=sf.openSession();
list=session.selectList("findAllEmps");
} catch (Exception e) {
e.printStackTrace();
}finally{
session.close();
}
return list;
}


public Emp findOneEmp(Integer empno) {
return MyBatisUtil.openSession().selectOne("findOneEmp", empno);
}


public boolean addEmp(Emp emp) {
boolean flag=false;
SqlSession session=null;
try {
session=MyBatisUtil.openSession();
session.insert("addEmp",emp);
session.commit();
flag=true;
} catch (Exception e) {
e.printStackTrace();
}finally{
session.close();
}
return flag;
}


public boolean delete(Integer empno) {
boolean flag=true;
SqlSession session=null;
try {
session=MyBatisUtil.openSession();
session.delete("delete", empno);
session.commit();
flag=true;
} catch (Exception e) {
e.printStackTrace();
}finally{
session.close();
}
return flag;
}


public boolean update(Emp emp) {
boolean flag=false;
SqlSession session=null;
try {
session=MyBatisUtil.openSession();
session.update("update", emp);
session.commit();
flag=true;
} catch (Exception e) {
e.printStackTrace();
}finally{
session.close();
}
return flag;
}


public List<Emp> findByQuery(Map<String, Object> map) {
return MyBatisUtil.openSession().selectList("findByQuery", map);
}


public Integer maxEmpNo() {
return MyBatisUtil.openSession().selectOne("maxEmpNo");
}


public Integer count(Map<String,Object> map) {
return MyBatisUtil.openSession().selectOne("count",map);


}


6、DeptDaoImpl    接口实现类

package org.yuntu.dao.Impl;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.yuntu.dao.DeptDao;
import org.yuntu.entity.Dept;
import org.yuntu.util.MyBatisUtil;
public class DeptDaoImpl implements DeptDao{


public List<Dept> findAllInfo() {
SqlSession session=MyBatisUtil.openSession();
List<Dept> depts = null;
try {
depts=session.selectList("findAllInfo");
} catch (Exception e) {
e.printStackTrace();
}
return depts;
}
}


五、编写工具类util

1、MyBatisUtil

package org.yuntu.util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
public static final ThreadLocal<SqlSession> sessionTL = new ThreadLocal<SqlSession>();
static String resource="MyBatis-config.xml";
static InputStream in;
static SqlSessionFactoryBuilder builder;
public static SqlSessionFactory sf = null;
static {
try {
in=Resources.getResourceAsStream(resource);
builder=new SqlSessionFactoryBuilder();
sf=builder.build(in);
} catch (IOException e) {
e.printStackTrace();
}
}

public static SqlSession openSession() {
SqlSession session = sessionTL.get();
if (session == null) {
try {
session = sf.openSession();
sessionTL.set(session);
} catch (Exception e) {
e.printStackTrace();
}
}
return session;
}


public static void closeSession() {
SqlSession session = sessionTL.get();
if (session != null) {
session.close();
sessionTL.set(null);
}
}
}

2、日期格式转换类

package org.yuntu.function;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateSwitch {

public static Date switchDate(String str){
Date date=null;
try {
date=new SimpleDateFormat("yyyy-MM-dd").parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}


六、编写web类

1、EmpServlet

package org.yuntu.web;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
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 org.yuntu.dao.Impl.EmpDaoImpl;
import org.yuntu.entity.Emp;
import org.yuntu.function.DateSwitch;
public class EmpServlet extends HttpServlet {
EmpDaoImpl empDao=new EmpDaoImpl();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}


public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String method=request.getParameter("method");
if(method.equals("addEmp")){
addEmp(request, response);
}else if(method.equals("maxEmpNo")){
int num=empDao.maxEmpNo();
request.setAttribute("maxEmpNo", num);
request.getRequestDispatcher("add.jsp").forward(request, response);
}else if(method.equals("findEmps")){
findEmps(request, response);
}else if(method.equals("deleteEmp")){
deleteEmp(request, response);
}else if(method.equals("toUpdateEmp")){
int empno=Integer.parseInt(request.getParameter("id"));
System.out.println(empno);
Emp emp=empDao.findOneEmp(empno);
request.setAttribute("emp", emp);
request.getRequestDispatcher("update.jsp").forward(request, response);
}
}

private void deleteEmp(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String empno=request.getParameter("id");
boolean flag=empDao.delete(Integer.parseInt(empno));
if(flag){
request.getRequestDispatcher("index.jsp").forward(request, response);
}else{
response.sendRedirect("index.jsp");
}
}

private void findEmps(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Map<String, Object> map=new HashMap<String, Object>();
String dname=request.getParameter("dname");
System.out.println(dname);
String hiredate=request.getParameter("hiredate");
String ename=request.getParameter("ename");
if(dname!=null&&dname!=""){
map.put("edname", dname);
}
if(hiredate!=null&&hiredate!=""){
map.put("ehiredate", hiredate);
}
if(ename!=null&&ename!=""){
map.put("eename", "%"+ename+ "%");
}
String pageIndex = null;
String pageNo1 = request.getParameter("pageNo");
if (pageNo1 != null) {
pageIndex = pageNo1;
} else {
pageIndex = request.getParameter("pageIndex");
}
if (pageIndex == null) {
pageIndex = "1";
}
int pageNo = Integer.parseInt(pageIndex);
int totalCount =empDao.count(map);
int pageSize = 4;
Integer totalPageCount = totalCount%pageSize== 0 ? (totalCount / pageSize)
: (totalCount /pageSize + 1);
int pageIndex1=pageSize*(pageNo-1);
int pageIndex2=pageSize*pageNo;
map.put("pageIndex1", pageIndex1);
map.put("pageIndex2", pageIndex2);
request.setAttribute("dname", dname);
request.setAttribute("hiredate", hiredate);
request.setAttribute("ename", ename);
List<Emp> emps=empDao.findByQuery(map);
request.setAttribute("totalPageCount", totalPageCount);
request.setAttribute("pageIndex", pageNo);
request.setAttribute("emps", emps);
request.getRequestDispatcher("index.jsp").forward(request, response);
}

private void addEmp(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String empno=request.getParameter("empno");
String ename=request.getParameter("ename");
String job=request.getParameter("job");
String mgr=request.getParameter("mgr");
String hiredate=request.getParameter("hiredate");
String sal=request.getParameter("sal");
String comm=request.getParameter("comm");
String deptno=request.getParameter("deptno");
Emp emp=new Emp(Integer.parseInt(empno),ename, job, Integer.parseInt(mgr) ,DateSwitch.switchDate(hiredate),
Double.parseDouble(sal) , Double.parseDouble(comm) , Integer.parseInt(deptno));
boolean flag=empDao.addEmp(emp);
if(flag){
request.getRequestDispatcher("index.jsp").forward(request, response);
}else{
response.sendRedirect("add.jsp");
}
}
}


2、DeptServlet


package org.yuntu.web;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.yuntu.dao.Impl.DeptDaoImpl;
import org.yuntu.entity.Dept;
public class DeptServlet extends HttpServlet {
DeptDaoImpl deptDao=new DeptDaoImpl();
HttpSession session=null;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String method=request.getParameter("method");
if(method.equals("findAllInfo")){
List<Dept> depts=deptDao.findAllInfo();
session=request.getSession();
session.setAttribute("depts", depts);
response.sendRedirect("add.jsp");
}
}
}


七、编写jsp页面

1、index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'index.jsp' starting page</title>
<style type="text/css">
div{
margin:0px auto;
}
a{
text-decoration:none;
}
a:hover{
text-decoration:underline;
}
#head,#body,#foot{
width:800px;
}
li{
list-style-type:none;
float:left;
}
#body{

}
#body td{
width:120px;
padding:20px;
text-align:center;
}
.add{
float:none;
}
</style>

  </head>
  
  <body>
  <c:if test="${empty requestScope.emps}">
  <c:redirect url="EmpServlet.do?method=findEmps"></c:redirect>
  </c:if>
  <form action="EmpServlet.do?method=findEmps" method="post">
    <div>
    <div id="head">
   
    <ul>
    <li>部门:<input type="text" value="${requestScope.dname}" name="dname"/></li>
    <li>姓名:<input type="text" value="${requestScope.ename}" name="ename"/></li>
    <li>入职时间:<input type="text" value="${requestScope.hiredate}" name="hiredate"/></li>
    <li ><a href="add.jsp">添加</a></li>
    <li class="add"><input type="submit" value="查询"/></li>
    </ul>
   
    </div>
    <div id="body">
   
    <table border="1px" cellspacing="0" cellpadding="0">
    <tr><td>姓名</td><td>部门</td><td>入职时间</td><td>职位</td><td>操作</td></tr>
    <c:forEach items="${requestScope.emps}" var="emp">
    <tr><td>${emp.ename}</td><td>${emp.dept.dname}</td><td>${emp.hiredate}</td><td>${emp.job}</td>
    <td><a href="EmpServlet.do?method=toUpdateEmp&id=${emp.empno}">更新</a>&nbsp;<a href="EmpServlet.do?method=deleteEmp&id=${emp.empno}">删除</a></td></tr>
    </c:forEach>
    </table>
   
    </div>
    <div id="foot">`
    <li>${requestScope.pageIndex}/${requestScope.totalPageCount}</li>
   
    <c:if test="${requestScope.pageIndex>1}">
   <li><a href="EmpServlet.do?method=findEmps">首页</a></li>
   <li><a href="EmpServlet.do?method=findEmps&pageIndex=${requestScope.pageIndex-1}">上一页</a></li>
    </c:if> 
    <%
Integer pageCount=(Integer)request.getAttribute("totalPageCount");
  %>
    <%
    for(int x=1;x<=pageCount;x++){
    %>
    <li><a href="EmpServlet.do?method=findEmps&pageIndex=<%=x %>">&nbsp;<%=x %>&nbsp;</a></li>
    <% 
    }
     %>
    <c:if test="${requestScope.pageIndex<requestScope.totalPageCount}">
   <li><a href="EmpServlet.do?method=findEmps&pageIndex=${requestScope.pageIndex+1}">下一页</a></li>
   <li><a href="EmpServlet.do?method=findEmps&pageIndex=${requestScope.totalPageCount}">尾页</a></li>
    </c:if>
    </div>
    </div>
    </form>
  </body>
</html>


2、add.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'add.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<style type="text/css">
   div,table{
margin:0px auto;
}
td{
width:200px;
padding:15px;
text-align:center;
}
</style>

  </head>
  
  <body>
  <c:if test="${empty sessionScope.depts}">
  <c:redirect url="DeptServlet.do?method=findAllInfo"></c:redirect>
  </c:if>
  <c:if test="${empty requestScope.maxEmpNo}">
  <c:redirect url="EmpServlet.do?method=maxEmpNo"></c:redirect>
  </c:if>
  <div>
  <form method="post" action="EmpServlet.do?method=addEmp">
  <input type="hidden" name="empno" value="${requestScope.maxEmpNo+1}"/>
  <table border="1px" cellspacing="0" cellpadding="0">
    <tr><td colspan="2">添加员工</td></tr>
    <tr><td>姓名</td><td><input type="text" name="ename" value=""/></td></tr>
    <tr><td>职位</td><td><input type="text" name="job" value=""/></td></tr>
    <tr><td>职位编号</td><td><input type="text" name="mgr" value=""/></td></tr>
    <tr><td>入职日期</td><td><input type="text" name="hiredate" value=""/></td></tr>
    <tr><td>工资</td><td><input type="text" name="sal" value=""/></td></tr>
    <tr><td>奖金</td><td><input type="text" name="comm" value=""/></td></tr>
    <tr><td>部门</td><td>
    <select name="deptno">
    <c:forEach items="${sessionScope.depts}" var="dept">
    <option value="${dept.deptno}">${dept.dname}</option>
    </c:forEach>
    </select>
    </td></tr>
    <tr><td colspan="2"><input type="submit" name="" value="提交"/>
    <input type="reset" name="" value="重置"/><a href="index.jsp">返回首页</a></td></tr>
    </table>
  </form>
    </div>
  </body>
</html>

3、update.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'add.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<style type="text/css">
   div,table{
margin:0px auto;
}
td{
width:200px;
padding:15px;
text-align:center;
}
</style>

  </head>
  
  <body>
  <c:if test="${empty sessionScope.depts}">
  <c:redirect url="DeptServlet.do?method=findAllInfo"></c:redirect>
  </c:if>
  <div>
  <form method="post" action="EmpServlet.do?method=updateEmp">
  <input type="hidden" name="empno" value="${requestScope.emp.empno}"/>
  <table border="1px" cellspacing="0" cellpadding="0">
    <tr><td colspan="2">更新员工信息</td></tr>
    <tr><td>姓名</td><td><input type="text" name="ename" value="${requestScope.emp.ename}"/></td></tr>
    <tr><td>职位</td><td><input type="text" name="job" value="${requestScope.emp.job}"/></td></tr>
    <tr><td>职位编号</td><td><input type="text" name="mgr" value="${requestScope.emp.mgr}"/></td></tr>
    <tr><td>入职日期</td><td><input type="text" name="hiredate" value="${requestScope.emp.hiredate}"/></td></tr>
    <tr><td>工资</td><td><input type="text" name="sal" value="${requestScope.emp.sal}"/></td></tr>
    <tr><td>奖金</td><td><input type="text" name="comm" value="${requestScope.emp.comm}"/></td></tr>
    <tr><td>部门</td><td>
    <select name="deptno">
    <c:set var="no" value="${requestScope.emp.deptno}"></c:set>
    <c:forEach items="${sessionScope.depts}" var="dept">
    <c:set var="deptno" value="${dept.deptno}"></c:set>
    <c:choose>
    <c:when test="${deptno==no}">
    <option value="${dept.deptno}" selected>${dept.dname}</option>
    </c:when>
    <c:otherwise>
    <option value="${dept.deptno}">${dept.dname}</option>
    </c:otherwise>
    </c:choose>
    </c:forEach>
    </select>
    </td></tr>
    <tr><td colspan="2"><input type="submit" name="" value="提交"/>
    <input type="reset" name="" value="重置"/><a href="index.jsp">返回首页</a></td></tr>
    </table>
  </form>
    </div>
  </body>
</html>


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值