• 学生信息管理(mvc模式)


    简单的学生信息管理;

    student类封装属性,一个构造方法

    package com.hanqi.dao;
    
    import java.util.Date;
    
    //映射student表的实体类
    //类名映射表名
    
    public class Student {
    
        //属性名映射字段名
        private String sno;
        private String sname;
        private String ssex;
        private Date sbirthday;
        private String sclass;
        public String getSno() {
            return sno;
        }
        public void setSno(String sno) {
            this.sno = sno;
        }
        public String getSname() {
            return sname;
        }
        public void setSname(String sname) {
            this.sname = sname;
        }
        public String getSsex() {
            return ssex;
        }
        public void setSsex(String ssex) {
            this.ssex = ssex;
        }
        public Date getSbirthday() {
            return sbirthday;
        }
        public void setSbirthday(Date sbirthday) {
            this.sbirthday = sbirthday;
        }
        public String getSclass() {
            return sclass;
        }
        public void setSclass(String sclass) {
            this.sclass = sclass;
        }
        
        //默认构造方法
        public Student()
        {
            
        }
        
        //构造方法
        public Student(String sno, String sname, String ssex, Date sbirthday, String sclass) {
            super();
            this.sno = sno;
            this.sname = sname;
            this.ssex = ssex;
            this.sbirthday = sbirthday;
            this.sclass = sclass;
        }
        
        //重新toString,输出所有属性的值
        @Override
        public String toString() {
            return "Student [sno=" + sno + ", sname=" + sname + ", ssex=" + ssex + ", sbirthday=" + sbirthday + ", sclass="
                    + sclass + "]";
        }
          
        
    }

    DAO实体类,包括增删改查四个方法

    package com.hanqi.dao;
    
    import java.sql.*;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    //import java.sql.Date;
    //import java.text.SimpleDateFormat;
    import java.util.List;
    
    public class StudentDao {
    
        //学生表的数据库操作类
        
        //增加
        //出入实体类
        public int insert(Student stu)
        {
            int rtn=0;
            try
            {
        
            //连接数据库
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection  con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","test","test");
            
            
            
          //得到数据库操作对象
                  PreparedStatement ps=con.prepareStatement(
                          "insert into student (sname,ssex,sbirthday,class,sno)"+" values (?,?,?,?,?)");
              //写入数据
                  Date sqlBir=null;
                  
                  if(stu.getSbirthday()!=null)
                  {
                      sqlBir =new Date(stu.getSbirthday().getTime());
                  }
                       
                  
                  ps.setString(1,stu.getSname());
                  ps.setString(2, stu.getSsex());
                  ps.setDate(3 ,sqlBir);
                  ps.setString(4, stu.getSclass());
                  ps.setString(5, stu.getSno());    
            
              //数据提交
                  
                  rtn=ps.executeUpdate();
                  ps.close();
                  con.close();
                  
                  
                  
            }catch(Exception e)
            {
                e.printStackTrace();
                rtn=-1;
            }
            
            return rtn;
            
            
            
            
            
        }
        //删除
        
        public int delete(String sno)
        {
            int rtn=0;
            
            try{
                
                Class.forName("oracle.jdbc.driver.OracleDriver");
                
                Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","test","test");
    
                
                PreparedStatement ps=con.prepareStatement(
                        "delete student where "+"sno=?");        
                
                
                ps.setString(1, sno);
                
                rtn=ps.executeUpdate();
                ps.close();
                con.close();
            
            }catch (Exception e)
            {
                e.printStackTrace();
                rtn=-1;
            }
            return rtn;
        }
    
        // 修改
        public int update(Student stu) {
    
            int rtn=0;
            try {
    
                Class.forName("oracle.jdbc.driver.OracleDriver");
    
                Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "test", "test");
    
                PreparedStatement ps = con
                        .prepareStatement("update student set sname=?,ssex=?,sbirthday=?,class=? where " + "sno=?");
                Date sqlBir = null;
    
                if (stu.getSbirthday() != null) {
                    sqlBir = new Date(stu.getSbirthday().getTime());
                }
    
                ps.setString(1, stu.getSname());
                ps.setString(2, stu.getSsex());
                ps.setDate(3, sqlBir);
                ps.setString(4, stu.getSclass());
                ps.setString(5, stu.getSno());
    
                rtn=ps.executeUpdate();            
                ps.close();
                con.close();
            } catch (Exception e) {
                e.printStackTrace();
    
                rtn=-1;
            }
    
            return rtn;
        }
        
        
        //查询单条记录
        public Student select (String sno)
        {
            Student rtn=null;
            
            //读取最新数据
            
            try{
                //处理,即保存
                //连接数据库
                //1.加载驱动
                Class.forName("oracle.jdbc.driver.OracleDriver");
                //2.得到连接
                Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","test","test");
    
                PreparedStatement ps=con.prepareStatement("select * from student where sno = ?");
                ps.setString(1, sno);
                
                ResultSet rs=ps.executeQuery();
                
                if(rs!=null&&rs.next())
                {
                    rtn=new Student();
                    rtn.setSno(sno);
                    rtn.setSname(rs.getString("sname"));
                    rtn.setSsex(rs.getString("ssex"));
                    rtn.setSbirthday(rs.getDate("sbirthday"));
                    rtn.setSclass(rs.getString("class"));
                                                
                }
                
                rs.close();
                ps.close();
                con.close();
                    
                }catch (Exception e)
                {
                    e.printStackTrace();
                                
                }
        
            
            return rtn;
        }
        //查询
        //有顺序的集合
        public List<Student> selectAll()
        {
            List<Student> rtn=null;
            
            
            
            try
            {
            //连接数据库
            //1.加载驱动
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //2.得到连接
            Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","test","test");
    
    
            // 读取
            Statement st=con.createStatement();
            ResultSet rs=st.executeQuery("select * from student");
            //输出结果集
            if(rs!=null)
            {
                //实例化数据集合
                rtn=new ArrayList<Student>();
                
                
                while(rs.next())
                {
                    
                    //用数据生成Student的实例
                    
                    Student stu=new Student();
                    stu.setSno(rs.getString("sno"));
                    stu.setSname(rs.getString("sname"));
                    //sql.Date  是 util.Date的子类
                    stu.setSbirthday(rs.getDate("sbirthday"));
                    stu.setSsex(rs.getString("ssex"));
                    stu.setSclass(rs.getString("class"));
                    //把Student的实例放入List
                    rtn.add(stu);
                    
                
                    
                }
                
                rs.close();
                }
            //释放资源
            st.close();
            con.close();
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            
            return rtn;
        }
        
        
        
        
        
        
    }

    过滤器,转码

    package com.hanqi.web;
    
    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    /**
     * Servlet Filter implementation class MyFilter
     */
    public class MyFilter implements Filter {
    
        /**
         * Default constructor. 
         */
        public MyFilter() {
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see Filter#destroy()
         */
        public void destroy() {
            // TODO Auto-generated method stub
        }
    
        /**
         * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
         */
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            //转码
            response.setContentType("text/html");
            response.setCharacterEncoding("UTF-8");
            request.setCharacterEncoding("UTF-8");
            
            
            
            chain.doFilter(request, response);
        }
    
        /**
         * @see Filter#init(FilterConfig)
         */
        public void init(FilterConfig fConfig) throws ServletException {
            // TODO Auto-generated method stub
        }
    
    }

    两个servlet类

    package com.hanqi.web;
    
    import java.io.IOException;
    import java.sql.*;
    import java.text.SimpleDateFormat;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.hanqi.dao.*;
    import com.hanqi.dao.StudentDao;
    
    
    
    /**
     * Servlet implementation class SaveServlet
     */
    public class SaveServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public SaveServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            
            //处理保存数据的请求
            //接收参数
            String sno=request.getParameter("sno");
            String sname=request.getParameter("sname");
            String ssex=request.getParameter("ssex");
            String sbirthday=request.getParameter("sbirthday");
            String sclass=request.getParameter("class");
            //是否更新
            String isupdate=request.getParameter("isupdate");
            //验证
            if(sno!=null&&sno.trim().length()!=0 &&sname!=null&&sname.trim().length()!=0)
            {
                //调用模型层
                //执行数据插入
                
                StudentDao sd=new StudentDao();
                SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
                java.util.Date bir=null;
                
                try
                {
                    bir=sdf.parse(sbirthday);
                    
                }catch(Exception e)
                {
                
                }
                
                
                Student stu=new Student(sno, sname, ssex, bir, sclass);
                
                int rtn=-1;
                //判断是insert还是update
                //update
                if(isupdate!=null&&isupdate.equals("1"))
                {
                    rtn=sd.update(stu);
                }
                else//insert
                {
                    rtn=sd.insert(stu);
                }
                
                
                if(rtn>0)
                {
                    response.getWriter().write("保存成功!");
                    response.setHeader("refresh", "3;index.jsp");
                }else
                {
                    response.getWriter().write("保存失败!");
                    response.setHeader("refresh", "3;index.jsp");
                }
                
                
                
            }else
            {
                response.getWriter().write("请正确提交数据!");
                response.setHeader("refresh", "3;index.jsp");
            }
            
                
            
            
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
    package com.hanqi.web;
    
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.Date;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.text.SimpleDateFormat;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.hanqi.dao.StudentDao;
    
    /**
     * Servlet implementation class DeleteStudent
     */
    public class DeleteStudent extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public DeleteStudent() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            //response.getWriter().append("Served at: ").append(request.getContextPath());
        
            String sno=request.getParameter("sno");
            if(sno!=null&&sno.trim().length()!=0)
            {
                StudentDao sd=new StudentDao();
                if(sd.delete(sno)>=0)
                {
                    response.getWriter().write("删除成功!");
                    response.setHeader("refresh", "3;index.jsp");
                }
                else
                {
                    response.getWriter().write("删除失败!");
                    response.setHeader("refresh", "3;index.jsp");
                }
                
            }
            else
            {
                response.getWriter().write("请正确提交数据!");
                response.setHeader("refresh", "3;index.jsp");
            }
        
        
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }

    jsp页面显示:

    <%@page import="com.hanqi.dao.Student"%>
    <%@page import="java.util.List"%>
    <%@page import="com.hanqi.dao.StudentDao"%>
    <%@page import="java.text.SimpleDateFormat"%>
    <%@page import="java.sql.*"%>
    
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    学生信息表
    <br>
    <%
    //调用模型层Dao,得到List
    StudentDao sd=new StudentDao();
    
    List<Student> ls=sd.selectAll();
    if(ls!=null)
    {
        //遍历输出
        for(Student stu:ls)
        {
            out.print("sno="+stu.getSno());
            out.print("sno="+stu.getSname());
            out.print("sno="+stu.getSsex());
            out.print("sno="+stu.getSbirthday());
            out.print("sno="+stu.getSclass());
            out.print("<a href='Update.jsp?sno="+stu.getSno()+"'>【修改】</a><a href='DeleteStudent?sno="+stu.getSno()+"'> 【删除】</a><br>");
        }
        }
    %>
    <br>添加学生信息<br>
    <form action="SaveServlet" method="post">
    
    学号:<input type="text" name="sno"><br>
    名称:<input type="text" name="sname"><br>
    性别:<input type="text" name="ssex"><br>
    生日:<input type="text" name="sbirthday"><br>
    班级:<input type="text" name="class"><br>
    <input type="submit" value="提交"><br>
    
    
    </form>
    
    </body>
    </html>
    <%@page import="com.hanqi.dao.Student"%>
    <%@page import="com.hanqi.dao.StudentDao"%>
    <%@page import="java.text.SimpleDateFormat"%>
    <%@page import="java.sql.*"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>修改学生信息</title>
    </head>
    <body>
    <%
    //接收主键,从数据库中读取最新数据
    String sno=request.getParameter("sno");
    String sname="";
    String ssex="";
    String sbirthday="";
    String sclass="";
    
    if(sno!=null&&sno.trim().length()>0)
    {
        StudentDao sd=new StudentDao();
        
        //得到实体类
        Student stu=sd.select(sno);
        sname=stu.getSname();
        ssex=stu.getSsex();
        try
        {
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
            sbirthday=sdf.format(stu.getSbirthday());
        }catch(Exception e)
        {
            
        }
        
        sclass=stu.getSclass();
        
        }else
        {
            out.print("请正确访问");
        }
    
    
    %>
    <br>修改学生信息<br>
    <form action="SaveServlet" method="post">
    
    学号:<input type="text" name="sno" value="<%=sno %>" readonly="readonly"><br>
    名称:<input type="text" name="sname" value="<%=sname %>"><br>
    性别:<input type="text" name="ssex" value="<%=ssex %>"><br>
    生日:<input type="text" name="sbirthday" value="<%=sbirthday %>"><br>
    班级:<input type="text" name="class" value="<%=sclass %>"><br>
    <input type="hidden" name="isupdate" value="1">
    <input type="submit" value="提交"><br>
    
    
    </form>
    
    </body>
    </html>
  • 相关阅读:
    iOS 获取全局唯一标示符
    iOS 获取全局唯一标示符
    如何让UIViewController自动弹出PickerView
    如何让UIViewController自动弹出PickerView
    防止NSTimer和调用对象之间的循环引用
    防止NSTimer和调用对象之间的循环引用
    inputAccessoryView,inputView
    @encode关键字
    @encode关键字
    用 Flask 来写个轻博客 (11) — M(V)C_创建视图函数
  • 原文地址:https://www.cnblogs.com/miss123/p/5658677.html
Copyright © 2020-2023  润新知