zoukankan      html  css  js  c++  java
  • Hibernate全套增删改查+分页

    1.创建一个web工程

    2.导入jar包

    3.创建Student表

    4.创建实体类

    package com.entity;
    
    public class Student {
        private Integer sid;
        private String sname;
        private String password;
        private String sex;
        private Integer cid;
        
        public Student() {
        }
        public Student(Integer sid, String sname, String password, String sex,
                Integer cid) {
            this.sid = sid;
            this.sname = sname;
            this.password = password;
            this.sex = sex;
            this.cid = cid;
        }
        public Student(String sname, String password, String sex,
                Integer cid) {
            this.sname = sname;
            this.password = password;
            this.sex = sex;
            this.cid = cid;
        }
        public Integer getSid() {
            return sid;
        }
        public void setSid(Integer sid) {
            this.sid = sid;
        }
        public String getSname() {
            return sname;
        }
        public void setSname(String sname) {
            this.sname = sname;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public Integer getCid() {
            return cid;
        }
        public void setCid(Integer cid) {
            this.cid = cid;
        }
        @Override
        public String toString() {
            return "Student [cid=" + cid + ", password=" + password + ", sex="
                    + sex + ", sid=" + sid + ", sname=" + sname + "]";
        }
        
        
    
    }

    5.配置映射文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
    <hibernate-mapping>
        <!--1.实体类的字段和数据库的字段一一映射
            name:实体类的全名
            table:对应的数据库表名,默认值为类名
        -->
       <class name="com.entity.Student" table="STUDENT">
       
       <!--1.1主键配置
              id:对应表中的主键
              name:实体类中的属性名
           type:主键属性的数据类型
           column:属性名对应表的字段名,默认值为属性名-->
           <id name="sid" type="java.lang.Integer" column="SID">
           
                 <!--generator:为持久化实例产生一个唯一标识-->
              <generator class="sequence">
              
                  <!--数据库的序列名-->
                <param name="sequence">SEQ_STUDENT</param>
              </generator>
           </id>
           
           <!--1.2普通字段配置-->
           <property name="sname" type="java.lang.String" column="SNAME"/>
           <property name="password" type="java.lang.String" column="PASSWORD"/>
           <property name="sex" type="java.lang.String" column="SEX"/>
           <property name="cid" type="java.lang.Integer" column="CID"/>
       </class>
    </hibernate-mapping>

    6.配置主配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" >
    <hibernate-configuration>
    
      <!--通常一个session-factory节点代表一个数据库-->
      <session-factory>
          <!--1.配置数据库的驱动-->
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        
        <!--2.配置数据库的url地址-->
        <property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property>
        
        <!--3,配置数据库的username-->
        <property name="connection.username">holly</property>
       
           <!--4.配置数据库的密码-->
        <property name="connection.password">sys</property>
        
        <!--5.配置数据库的方言-->
        <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
        
        <!--6.显示sql语句-->
        <property name="show_sql">true</property>
        
        <!--7.sql语句格式化-->
        <property name="format_sql">true</property>
        
        <!--8.加载映射文件-->
        <mapping resource="com/entity/Student.hbm.xml"/>
      </session-factory>
    </hibernate-configuration>

    7.创建一个工具类

    package com.util;
    
    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    
    /**
     * Hibernate打开session和关闭session的工具包
     * @author Holly
     *
     */
    public class Hibernate_Util {
        private static ThreadLocal<Session> threadLocal=new ThreadLocal<Session>();
        private static Configuration configuration=null;
        private static SessionFactory sessionFactory=null;
        static{
            
         try {
            configuration=new Configuration().configure("/hibernate.cfg.xml");
            sessionFactory=configuration.buildSessionFactory();
         } catch (HibernateException e) {
             System.out.println("解析xml和创建Session工厂error");
            e.printStackTrace();
        }
          
        }
       
        public static Session getSession(){
            Session session=threadLocal.get();
            if(session==null){
                session=sessionFactory.openSession();
                threadLocal.set(session);
            }
            return session;
        }
        public static void closeSession(){
            Session session=threadLocal.get();
            if(session!=null){
                  threadLocal.set(null);
                  session.close();
            }
        }
        
        
        
        
        
        
        
        
    }

    8.创建分页实体类

    package com.page;
    
    public class Page {
        private Integer pagesize; //页面大小
        private Integer pageno; //当前页
        private Integer startrow; //起始行
        private Integer totalpage; //总页数
        private Integer totalcount; //总条数
        
        
        public Page() {
        }
        public Page(Integer pageSize, Integer pageNo, Integer totalCount) {
            this.pagesize = pageSize; //页面大小 
            this.pageno = pageNo;  //当前页
            this.totalcount = totalCount; //计算总条数
            this.setStartrow(pageNo, pageSize); //计算起始行
            this.setTotalpage(totalCount, pageSize); //计算总页数
        }
        public Integer getPagesize() {
            return pagesize;
        }
        public void setPagesize(Integer pageSize) {
            this.pagesize = pageSize;
        }
        public Integer getPageno() {
            return pageno;
        }
        public void setPageno(Integer pageNo) {
            this.pageno = pageNo;
        }
        public Integer getStartrow() {
            return startrow;
        }
        /**
         * 计算起始行
         * @param pageNo
         * @param pageSize
         */
        public void setStartrow(Integer pageNo,Integer pageSize) {
            this.startrow = (pageNo-1)*pageSize;
        }
        public Integer getTotalpage() {
            return totalpage;
        }
        /**
         * 计算总页数
         * @param totalCount
         * @param pageSize
         */
        public void setTotalpage(Integer totalCount,Integer pageSize) {
            this.totalpage = totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
        }
        public Integer getTotalcount() {
            return totalcount;
        }
        public void setTotalCount(Integer totalCount) {
            this.totalcount = totalCount;
        }
        @Override
        public String toString() {
            return "[{"pageno":" + pageno + ","pagesize":" + pagesize
                    + ","startrow":" + startrow + ","totalcount":" + totalcount
                    + ","totalpage":" + totalpage + "}]";
        }
        
        
        
    
    }

    9.创建Dao类

    package com.dao;
    
    import java.util.List;
    
    import com.entity.Student;
    import com.page.Page;
    
    public interface StudentDao {
        /**
         * 1.根据用户名和密码查询
         * @param sname
         * @param password
         * @return
         */
        Student findByNameAndPwd(String sname,String password);
        /**
         * 2.延时加载:查询所有
         * @return
         */
        List<Student> findAll();
        /**
         * 3.保存
         * @param stu
         * @return
         */
        int save(Student stu);
        /**
         * 4.根据主键id查询单条
         * @param sid
         * @return
         */
        Student findById(Integer sid);
        /**
         * 5.修改
         */
        int update(Student stu);
        /**
         * 6.删除对象
         * @param stu
         * @return
         */
        int delete(Student stu);
        /**
         * 7.分页查询
         */
        List<Student> findPage(Page page);
        /**
         * 8.查询总条数
         */
        int getTotalCount();
        
        
        
    }

    10.实现Dao接口

    package com.dao.impl;
    
    import java.util.List;
    
    import org.hibernate.HibernateException;
    import org.hibernate.Query;
    import org.hibernate.Session;
    
    import com.dao.StudentDao;
    import com.entity.Student;
    import com.page.Page;
    import com.util.Hibernate_Util;
    
    public class StudentDaoImpl implements StudentDao{
        /**
         * 1.查询所有:立即加载
         */
        public List<Student> findAll() {
            //1.获取session对象
            Session session=Hibernate_Util.getSession();
            //2.定义hql语句
            String hql="from Student";
            //3.Session创建Query对象
            Query query=session.createQuery(hql);
            //4.query对象执行操作
            List<Student> it=query.list();
            //5.释放资源
            Hibernate_Util.closeSession();
            return it;
        }
        /**
         * 2.根据用户名和密码查询
         */
        public Student findByNameAndPwd(String sname, String password) {
            //1.获取session对象
            Session session=Hibernate_Util.getSession();
            //2.定义hql语句(命名参数)
            String hql="from Student where sname=:sname and password=:password";
            //3.Session创建Query对象
            Query query=session.createQuery(hql);
            //4.query对象给占位符赋值
            /*query.setString("sname", sname);
            query.setString("password", password);*/
            query.setParameter("sname", sname);
            query.setParameter("password", password);
        
    //        query.setProperties(user);
            //5.执行操作(uniqueResult()查询的单行数据)
            Student stu=(Student) query.uniqueResult();
            //6.释放资源
            Hibernate_Util.closeSession();
            return stu;
            
        }
        
    
       /**
        * 根据id主键查询单条
        */
        public Student findById(Integer sid) {
            //1.获取session对象
            Session session=Hibernate_Util.getSession();
            //2.利用session根据主键查询
            Student stu=(Student) session.get(Student.class, sid);
            /*3.
             * 因为在修改时要提前查询单条,和session关联已经变成持久化对象,
             * 而在修改时session执行update方法时,
             * 首先会查询该主键id是否存在,
             * 如果存在,则根据主键id修改该对象,此时对象已经处于持久化对象,
             * 而实际session中不能同时存在两个主键id相同的对象,
             * 否则会出现如下错误:
             * org.hibernate.NonUniqueObjectException: 
             * a different object with the same identifier 
             * value was already associated with the 
             * session: [com.entity.Student#1]
             */
              Hibernate_Util.closeSession();
             // session.clear();
            return stu;
        }
        /**
         * 删除对象
         */
        public int delete(Student stu) {
            int num=1;
            //1.获取session对象
            Session session=Hibernate_Util.getSession();
            
            try {
                //session删除操作
                session.delete(stu);
                session.beginTransaction().commit();
            } catch (HibernateException e) {
                 num=0;
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                //5.释放资源
                Hibernate_Util.closeSession();
            }
            
            return num;
        }
        /**
         * 添加
         */
        public int save(Student stu) {
            int num=1;
            //1.获取session对象
            Session session=Hibernate_Util.getSession();
            //执行操作
            try {
                session.save(stu);
                session.beginTransaction().commit();
            } catch (HibernateException e) {
                num=0;
                e.printStackTrace();
            }finally{
                //5.释放资源
                Hibernate_Util.closeSession();
            }
            return num;
        }
       /**
        * 修改
        */
        public int update(Student stu) {
            int num=1;
            //1.获取session对象
            Session session=Hibernate_Util.getSession();
            try {
                //执行操作
                //该对象的主键id必须存在
                session.update(stu);
                session.beginTransaction().commit();
            } catch (HibernateException e) {
                num=0;
                e.printStackTrace();
            }finally{
                //5.释放资源
                Hibernate_Util.closeSession();
            }
            return num;
        }
        /**
         * 7.分页查询
         */
    public List<Student> findPage(Page page) {
        //1.获取session
        Session session=Hibernate_Util.getSession();
        
        //2.定义查询最大记录数的hql
        String hql="from Student";
        
        //3.定义查询最大记录数的Query对象
        Query querypage=session.createQuery(hql);
        
        //4.查询最大记录数的数据
        querypage.setMaxResults(page.getPagesize());
        
        //5.确定查询起点
        querypage.setFirstResult(page.getStartrow());
        
        //6.分页查询
        List<Student> list=querypage.list();
        
        //7.关闭session
        Hibernate_Util.closeSession();
        
        return list;
    }
    /**
     * 8.查询总条数
     */
    public int getTotalCount() {
        //1.获取session
        Session session=Hibernate_Util.getSession();
        
        //2.定义查询总条数hql语句
        String hqlcount="select count(*) from Student";
        
        //3.利用Session创建Query对象
        Query querycount=session.createQuery(hqlcount);
        
        //4.获取总条数(返回单行数据uniqueResult())
        Integer totalCount=Integer.parseInt(querycount.uniqueResult().toString());
        //5.释放资源
        Hibernate_Util.closeSession();
        return totalCount;
    }
        
    
    }

    11.创建业务层的接口

    package com.service;
    
    import java.util.List;
    
    import com.entity.Student;
    import com.page.Page;
    
    /**
     * 业务接口
     * @author pc
     *
     */
    public interface StudentService {
        /**
         * 1.登录的业务
         * @param sname
         * @param password
         * @return
         */
        Student login(String sname,String password);
        /**
         * 2.注册
         * @param stu
         * @return
         */
        int register(Student stu);
        
        /**
         * 3.查询所有
         */
        List<Student> findAll();
        /**
         * 4.根据主键id查询
         * @param sid
         * @return
         */
        Student findById(Integer sid);
        /**
         * 5.修改
         */
        int update(Student stu);
        /**
         * 6.删除
         */
        int delete(Student stu);
        
        /**
         * 7.分页查询
         */
        List<Student> findPage(Page page);
        /**
         * 8.查询总条数
         */
        int getTotalCount();
        
    
    }

    12.实现业务层接口

    package com.service.impl;
    
    import java.util.List;
    
    import com.dao.StudentDao;
    import com.dao.impl.StudentDaoImpl;
    import com.entity.Student;
    import com.page.Page;
    import com.service.StudentService;
    
    public class StudentServiceImpl implements StudentService {
        /**
         * 使用多态引用数据访问层对象
         */
        private StudentDao dao = new StudentDaoImpl();
    
        /**
         * 登录
         */
        public Student login(String sname, String password) {
            return dao.findByNameAndPwd(sname, password);
        }
    
        public int delete(Student stu) {
            // TODO Auto-generated method stub
            return dao.delete(stu);
        }
    
        public List<Student> findAll() {
            // TODO Auto-generated method stub
            return dao.findAll();
        }
    
        public Student findById(Integer sid) {
            // TODO Auto-generated method stub
            return dao.findById(sid);
        }
    
        public int register(Student stu) {
            // TODO Auto-generated method stub
            return dao.save(stu);
        }
    
        public int update(Student stu) {
            // TODO Auto-generated method stub
            return dao.update(stu);
        }
    
        public List<Student> findPage(Page page) {
            // TODO Auto-generated method stub
            return dao.findPage(page);
        }
    
        public int getTotalCount() {
            // TODO Auto-generated method stub
            return dao.getTotalCount();
        }
    
    }

    13.创建Servlet类

    Servlet类里的增删改查我是分开写的,所以就不一一粘贴代码,这里只粘贴部分

    package com.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.entity.Student;
    import com.service.StudentService;
    import com.service.impl.StudentServiceImpl;
    
    public class RegisterServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            this.doPost(request, response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
    
            // 2.接受参数
            String sname = request.getParameter("sname");
            String password = request.getParameter("password");
            String sex = request.getParameter("sex");
            Integer cid = Integer.valueOf(request.getParameter("cid"));
            Student stu = new Student(sname, password, sex, cid);
    
            // 3.业务处理
            StudentService service = new StudentServiceImpl();
            int num = service.register(stu);
            if (num > 0) {
                System.out.println("register success!");
                response.sendRedirect("FindAllServlet");
            } else {
                System.out.println("register fail!");
    
            }
    
        }
    
    }
    package com.servlet;
    
    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 org.codehaus.jackson.map.ObjectMapper;
    
    import com.entity.Student;
    import com.page.Page;
    import com.service.StudentService;
    import com.service.impl.StudentServiceImpl;
    
    /**
     * 分页查询
     * 
     * @author pc
     * 
     */
    public class FindPageServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            this.doPost(request, response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("UTF-8");
            /**
             * ☆
             * 在使用ajax往前台通过输出流对象的print方法发送json时
             * 该行获取输出流对象的代码必须放在
             * response.setContentType("text/html;charset=UTF-8");
             * 之后,否则ajax回调时,页面拿到的中文数据就永远都是乱码,
             * 原因是:如果将改行代码写在处理客户端乱码之前,表示编码格式已经确定,
             * 所以,编码格式的处理应该放在获取PrintWriter对象之前
             * 
             */
            PrintWriter out=response.getWriter();
            
            // 2.接受参数
            String no=request.getParameter("pageNo");
            
            // 3.业务处理
            StudentService service = new StudentServiceImpl();
            
            int pageSize=3; //页面大小
            int pageNo=1; //默认的pageNo为1
            if(no!=null && no!=""){
                pageNo=Integer.valueOf(no);
            }
            //获取总条数
            int totalCount=service.getTotalCount();
            //封装分页所需字段
            Page page=new Page(pageSize, pageNo, totalCount);
            //分页查询
            List<Student> list = service.findPage(page);
            
            ObjectMapper om=new ObjectMapper();
            String str=om.writeValueAsString(list);
            String pagestr=om.writeValueAsString(page);
            str="{"page":"+pagestr+","list":"+str+"}";
            System.out.println(str);
            
            out.print(str);
            /*if (list != null) {
                System.out.println("find page success");
                request.setAttribute("list", list);
                request.setAttribute("page", page);
                request.getRequestDispatcher("index.jsp").forward(request, response);
            } else {
                System.out.println("find page fail!");
    
            }*/
    
        }
    
    }
    package com.servlet;
    
    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 com.entity.Student;
    import com.page.Page;
    import com.service.StudentService;
    import com.service.impl.StudentServiceImpl;
    
    public class FindAllServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
           this.doPost(request, response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            
            /**
             * ☆
             * 在使用ajax往前台通过输出流对象的print方法发送json时
             * 该行获取输出流对象的代码必须放在
             * response.setContentType("text/html;charset=UTF-8");
             * 之后,否则ajax回调时,页面拿到的中文数据就永远都是乱码,
             * 原因是:如果将改行代码写在处理客户端乱码之前,表示编码格式已经确定,
             * 所以,编码格式的处理应该放在获取PrintWriter对象之前
             * 
             */
    
            // 2.接受参数
            String no=request.getParameter("pageNo");
            
            // 3.业务处理
            StudentService service = new StudentServiceImpl();
            
            int pageSize=3; //页面大小
            int pageNo=1; //默认的pageNo为1
            if(no!=null && no!=""){
                pageNo=Integer.valueOf(no);
            }
            //获取总条数
            int totalCount=service.getTotalCount();
            Page page=new Page(pageSize, pageNo, totalCount);
            
            List<Student> list = service.findPage(page);
            if(list!=null){
                 System.out.println("find All page success");
                  request.setAttribute("list", list);
                  request.setAttribute("page", page);
                  request.getRequestDispatcher("index.jsp").forward(request, response);
            }else{
                System.out.println("find All page fail!");
            }
        }    
            
        }

    代码

    package com.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.entity.Student;
    import com.service.StudentService;
    import com.service.impl.StudentServiceImpl;
    
    public class LoginServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
           this.doPost(request, response);
        }
        
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
            
            //2.接受参数
            String sname=request.getParameter("sname");
            String password=request.getParameter("password");
            //3.业务处理
            StudentService service=new StudentServiceImpl();
            Student stu=service.login(sname, password);
            if(stu!=null){
                System.out.println("login success!");
                //4.页面跳转
                request.getSession().setAttribute("sname", sname);
                response.sendRedirect("FindAllServlet");
            }else{
                System.out.println("login fail!");
                
            }
        }
    
    }
    package com.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.entity.Student;
    import com.service.StudentService;
    import com.service.impl.StudentServiceImpl;
    import com.util.Hibernate_Util;
    
    public class FindByIdSerlvet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            this.doPost(request, response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
    
            // 2.接受参数
            Integer sid=Integer.valueOf(request.getParameter("sid"));
            
            // 3.业务处理
            StudentService service = new StudentServiceImpl();
             
             Student stu=service.findById(sid);
             System.out.println("stu:"+stu);
             if(stu!=null){
                 System.out.println("根据id查询到对象");
                 request.setAttribute("stu", stu);
                 request.getRequestDispatcher("update.jsp").forward(request, response);
             }else{
                 System.out.println("没有根据id查询到对象");
             }
        }
    }
    package com.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.entity.Student;
    import com.service.StudentService;
    import com.service.impl.StudentServiceImpl;
    
    public class UpdateServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            this.doPost(request, response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
    
            // 2.接受参数
            Integer sid=Integer.valueOf(request.getParameter("sid"));
            String sname = request.getParameter("sname");
            String password = request.getParameter("password");
            String sex = request.getParameter("sex");
            Integer cid=Integer.valueOf(request.getParameter("cid"));
            Student stu=new Student(sid,sname, password, sex, cid);
            
            // 3.业务处理
            StudentService service = new StudentServiceImpl();
            int num=service.update(stu);
            if(num>0){
                System.out.println("update success!");
                response.sendRedirect("FindAllServlet");
            }else{
                System.out.println("update fail!");
            }
        }
    }
    package com.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.entity.Student;
    import com.service.StudentService;
    import com.service.impl.StudentServiceImpl;
    
    public class DeleteSerlvet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            this.doPost(request, response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
    
            // 2.接受参数
            Integer sid=Integer.valueOf(request.getParameter("sid"));
            // 3.业务处理
            StudentService service = new StudentServiceImpl();
            Student stu=service.findById(sid);
            if (stu != null) {
                System.out.println("根据id查询成功");
                 int num=service.delete(stu);
                 if(num>0){
                     System.out.println("delete success!!");
                     // 4.页面跳转
                     response.sendRedirect("FindAllServlet");
                     
                 }else{
                     System.out.println("delete success!!");
                     
                 }
            } else {
                System.out.println("根据id查询失败!");
            }
        }
    }

    14.配置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>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>com.servlet.LoginServlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>FindAllServlet</servlet-name>
        <servlet-class>com.servlet.FindAllServlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>FindByIdSerlvet</servlet-name>
        <servlet-class>com.servlet.FindByIdSerlvet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>UpdateServlet</servlet-name>
        <servlet-class>com.servlet.UpdateServlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>DeleteSerlvet</servlet-name>
        <servlet-class>com.servlet.DeleteSerlvet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>RegisterServlet</servlet-name>
        <servlet-class>com.servlet.RegisterServlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>FindPageServlet</servlet-name>
        <servlet-class>com.servlet.FindPageServlet</servlet-class>
      </servlet>
    
    
    
      <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/LoginServlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>FindAllServlet</servlet-name>
        <url-pattern>/FindAllServlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>FindByIdSerlvet</servlet-name>
        <url-pattern>/FindByIdSerlvet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>UpdateServlet</servlet-name>
        <url-pattern>/UpdateServlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>DeleteSerlvet</servlet-name>
        <url-pattern>/DeleteSerlvet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>RegisterServlet</servlet-name>
        <url-pattern>/RegisterServlet</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>FindPageServlet</servlet-name>
        <url-pattern>/FindPageServlet</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
        <welcome-file>login.jsp</welcome-file>
      </welcome-file-list>
    </web-app>

    15.首页

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%
        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>
            <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">
            <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
        </head>
    
        <body>
        <CENTER>
            <h3>学生信息表</h3>
            <table border="2">
                <tr>
                    <td>
                        序号
                    </td>
                    <td>
                        姓名
                    </td>
                    <td>
                        性别
                    </td>
                    <td align="center">
                        操作
                    </td>
                </tr>
                
                <c:forEach var="i" items="${list}"  varStatus="f">
                    <tr <c:if test="${f.index%2==0}">style="background-color:orange;"</c:if>>
                        <td>
                            ${i.sid }
                        </td>
                        <td>
                            ${i.sname }
                        </td>
                        <td>
                            ${i.sex }
                        </td>
                        <td>
                            <a href="register.jsp">添加</a>
                            &nbsp;&nbsp;
                            <a href="FindByIdSerlvet?sid=${i.sid}">修改</a>
                            &nbsp;&nbsp;
                            <a href="DeleteSerlvet?sid=${i.sid}">删除</a>
                            
                        </td>
                    </tr>
                </c:forEach>
                
            </table>
            <div>
            
            
            第${page.pageno}/${page.totalpage}页 &nbsp;&nbsp;
            <a href="FindAllServlet?pageNo=1">首页</a>
            <c:choose>
              <c:when test="${page.pageno gt 1}">
                <a href="FindAllServlet?pageNo=${page.pageno-1 }">上一页</a>
              </c:when>
              <c:otherwise>
                <a href="javascript:alert('已经是第一页了,没有上一页!');">上一页</a>
              </c:otherwise>
            </c:choose>
            <c:choose>
              <c:when test="${page.pageno lt page.totalpage}">
                <a href="FindAllServlet?pageNo=${page.pageno+1 }">下一页</a>
              </c:when>
              <c:otherwise>
                <a href="javascript:alert('已经是最有一页了,没有下一页!');">下一页</a>
              </c:otherwise>
            </c:choose>
            
            <a href="FindAllServlet?pageNo=${page.totalpage}">末页</a>
            &nbsp;&nbsp;
            共${page.totalcount}条
            
            </div>
            
        </CENTER>
            
        </body>
    </html>

    16.登录页面

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
        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>
            <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">
            <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
        </head>
    
        <body>
            <center>
                <fieldset style=" 300px;">
                    <legend>
                        登录
                    </legend>
                    <form action="LoginServlet" method="post">
                        <table>
                            <tr>
                                <td>
                                    用户名:
                                </td>
                                <td>
                                    <input type="text" name="sname" />
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    密码:
                                </td>
                                <td>
                                    <input type="password" name="password" />
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <input type="submit" value="提交" />
                                </td>
                                <td>
                                    <input type="reset" value="重置" />
                                </td>
                            </tr>
                        </table>
                    </form>
                </fieldset>
            </center>
        </body>
    </html>

    17.注册页面

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%
        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>
            <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">
            <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
        </head>
    
        <body> 
            <center>
                <fieldset style=" 500px;">
                    <legend> 
                        注册 
                    </legend>
                    <form action="RegisterServlet" method="post">
                        <table>
                            <tr>
                                <td>
                                    用户名:
                                </td>
                                <td>
                                    <input type="text" name="sname"/>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    密码:
                                </td>
                                <td>
                                    <input type="password" name="password"/>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    性别:
                                </td>
                                <td>
                                        <input type="radio" name="sex" value="男" checked="checked"/><input type="radio" name="sex" value="女"/></td>
                            </tr>
                            <tr>
                                <td>
                                    班级编号:
                                </td>
                                <td>
                                    <select name="cid">
                                      <option value="1">TB07</option>
                                      <option value="2">TB13</option>
                                      <option value="3">TB24</option>
                                      <option value="4">TB31</option>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <input type="submit" value="注册" />
                                </td>
                                <td>
                                    <input type="reset" value="重置" />
                                </td>
                            </tr>
                        </table>
                    </form>
                </fieldset>
            </center>
        </body>
    </html>

    18.修改

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%
        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>
            <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">
            <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
        </head>
    
        <body> 
            <center>
                <fieldset style=" 500px;">
                    <legend>  
                        <br>修改  
                    </legend>
                    <form action="UpdateServlet?sid=${stu.sid}" method="post">
                        <table>
                            <tr>
                                <td>
                                    用户名:
                                </td>
                                <td>
                                    <input type="text" name="sname" value="${stu.sname}"/>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    密码:
                                </td>
                                <td>
                                    <input type="password" name="password" value="${stu.password}"/>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    性别:
                                </td>
                                <td>
                                    <c:choose>
                                      <c:when test="${stu.sex eq '男'}">
                                        <input type="radio" name="sex" value="男" checked="checked"/><input type="radio" name="sex" value="女"/></c:when>
                                      <c:otherwise>
                                         <input type="radio" name="sex" value="男"/><input type="radio" name="sex" value="女" checked="checked"/></c:otherwise>
                                    </c:choose>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    班级编号:
                                </td>
                                <td>
                                    <select name="cid">
                                      <option value="1">TB07</option>
                                      <option value="2">TB13</option>
                                      <option value="3">TB24</option>
                                      <option value="4">TB31</option>
                                    </select>
                                </td>
                            </tr>
                            
                            <tr>
                                <td>
                                    <input type="submit" value="修改" />
                                </td>
                                <td>
                                    <input type="reset" value="重置" />
                                </td>
                            </tr>
                        </table>
                    </form>
                </fieldset>
            </center>
        </body>
    </html>

    部分截图       2016-09-2415:21:19

    注:希望各路大神多多指点!!!

  • 相关阅读:
    Go之运算符
    前端开发之工具库
    MVC与MVVM
    开发工具之Vscode编辑器
    常用名词汇总
    python常见错误总结
    Python之常用第三方库总结
    PHP程序员的成长路线
    web 应用常见安全漏洞
    redis和memcached的区别详解
  • 原文地址:https://www.cnblogs.com/ctc-kb/p/5903347.html
Copyright © 2011-2022 走看看