您的位置:首页 > 数据库 > Oracle

MyBatis小demo

2016-07-18 11:25 441 查看
一套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 se
4000
tSal(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
12934
.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> <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 %>"> <%=x %> </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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息