zoukankan      html  css  js  c++  java
  • java操作数据库,以页面显示学生信息为例

    该部分内容实现的功能主要是:从数据库中查询数据并展示到页面,在页面中新增数据信息,在页面中修改数据信息,在页面中删除数据信息。
    
    
    
    =================stuList.jsp================
    //本页为数据显示页面
    <%@ page import="java.util.List" %>
    <%@ page import="com.ibeifeng.student.Student" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>stuList</title>
    </head>
    <body>
    <a href="addStu.jsp">新增学员</a>
    <table width="100%" border="1px solid black">
        <tr>
            <td>学号</td>
            <td>姓名</td>
            <td>密码</td>
            <td>性别</td>
            <td>邮箱</td>
            <td>操作</td>
        </tr>
        <%
            List<Student> list = (List<Student>)request.getAttribute("list");
            for(Student stu : list){
        %>
                <tr>
                    <td><%=stu.getId()%></td>
                    <td><%=stu.getName()%></td>
                    <td><%=stu.getPwd()%></td>
                    <td><%=stu.getSex()%></td>
                    <td><%=stu.getEmail()%></td>
                    <td><a href="updateStu.jsp?sid=<%=stu.getId()%>">修改</a> | <a href="doDel.jsp?sid=<%=stu.getId()%>">删除</a></td>
                </tr>
        <%    }
        %>
    </table>
    </body>
    </html>
    
    
    
    ===============doList02.jsp==================
    //本页是数据显示页面stuList的后台数据处理部分
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ page import="java.sql.DriverManager" %>
    <%@ page import="java.sql.Connection" %>
    <%@ page import="java.sql.PreparedStatement" %>
    <%@ page import="java.sql.ResultSet" %>
    <%@ page import="com.ibeifeng.student.Student" %>
    <%@ page import="java.util.ArrayList" %>
    <%@ page import="java.util.List" %>
    <%@ page import="com.ibeifeng.student.ConfigUtil" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%
        Class.forName(new ConfigUtil().getValue("driver"));
        Connection conn = DriverManager.getConnection(
                new ConfigUtil().getValue("url"),
                new ConfigUtil().getValue("username"),
                new ConfigUtil().getValue("password"));
    
        String sql = "select * from student";
        PreparedStatement ps = conn.prepareStatement(sql);
        ResultSet rs = ps.executeQuery();
        List<Student> list = new ArrayList<Student>();
        while(rs.next()){
            Student stu = new Student();
            stu.setId(rs.getInt(1));
            stu.setName(rs.getString(3));
            stu.setPwd(rs.getString(2));
            stu.setSex(rs.getInt(4));
            stu.setEmail(rs.getString(5));
            list.add(stu);
        }
    
        if(rs != null){
            rs.close();
        }
        if(ps != null){
            ps.close();
        }
        if(conn != null){
            conn.close();
        }
    
        request.setAttribute("list",list);
        request.getRequestDispatcher("stuList.jsp").forward(request,response);
    %>
    
    
    
    ====================addStu.jsp==============
    //本页为新增数据的页面展示部分
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>新增学员信息</title>
    </head>
    <body>
    <form action="doSave.jsp" method="post">
        <table align="center" border="1px solid black">
            <tr>
                <td>学号</td>
                <td><input type="text" name="stuId" > </td>
            </tr>
            <tr>
                <td>姓名</td>
                <td><input type="text" name="stuName" ></td>
            </tr>
            <tr>
                <td>密码</td>
                <td><input type="password" name="pwd" ></td>
            </tr>
            <tr>
                <td>性别</td>
                <td>
                    <input type="radio" name="gender" value="0"><input type="radio" name="gender" value="1"></td>
            </tr>
            <tr>
                <td>邮箱</td>
                <td><input type="text" name="email" ></td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="submit" name="submit" value="保存">
                    <input type="button" name="return" value="取消">
                </td>
            </tr>
        </table>
    </form>
    </body>
    </html>
    
    
    
    ===================doSave.jsp==============
    //本页为数据新增页面,保存按钮的数据处理部分
    <%@ page import="com.ibeifeng.student.ConfigUtil" %>
    <%@ page import="java.sql.DriverManager" %>
    <%@ page import="java.sql.Connection" %>
    <%@ page import="java.sql.PreparedStatement" %>
    <%@ page import="java.sql.ResultSet" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
    
        Class.forName(new ConfigUtil().getValue("driver"));
        Connection conn = DriverManager.getConnection(
                new ConfigUtil().getValue("url"),new ConfigUtil().getValue("username"),new ConfigUtil().getValue("password"));
    
        String sql = "insert into student(stu_id,stu_name,pwd,sex,email) values(?,?,?,?,?)";
        PreparedStatement ps = conn.prepareStatement(sql);
    
        String rid = request.getParameter("stuId");
        int id =  Integer.parseInt(rid);
        ps.setInt(1,id);
        ps.setString(2,request.getParameter("stuName"));
        ps.setString(3,request.getParameter("pwd"));
        ps.setInt(4,1);
        ps.setString(5,request.getParameter("email"));
    
        int isSuccess = ps.executeUpdate();
        System.out.print(isSuccess);
        if(isSuccess <= 0){
            System.out.print("新增有误,请重试");
            request.getRequestDispatcher("/stuInfo/addStu.jsp").forward(request,response);
        }else{
            request.getRequestDispatcher("/stuInfo/doList02.jsp").forward(request,response);
        }
    
        if(ps != null){
            ps.close();
        }
        if(conn != null){
            conn.close();
        }
    %>
    
    
    
    
    ================updateStu.jsp===============
    //本页为数据修改页面展示部分
    <%@ page import="com.ibeifeng.student.StudentDao" %>
    <%@ page import="com.ibeifeng.student.Student" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    <%
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        //获取前端页面传递的参数
        String sid = request.getParameter("sid");   //该参数由stuList页面的<a href="updateStu.jsp?sid=stu.getStudentId()">传递过来
       //创建StudentDao对象
        StudentDao stuDao = new StudentDao();
        Student stu = stuDao.getStuByStuId(sid);
    
        if(stu != null){
            request.setAttribute("stu",stu);
        }
    
    %>
    
    <html>
    <head>
        <title>新增学员信息</title>
    </head>
    <body>
    <form action="doUpdate.jsp" method="post">
        <table align="center" border="1px solid black">
            <tr>
                <td>学号</td>
                <td><input type="text" name="stuId" readonly="readonly" value="<%=stu.getId()%>"> </td>
            </tr>
            <tr>
                <td>姓名</td>
                <td><input type="text" name="stuName" value="<%=stu.getName()%>"></td>
            </tr>
            <tr>
                <td>密码</td>
                <td><input type="password" name="pwd" value="<%=stu.getPwd()%>"></td>
            </tr>
            <tr>
                <td>性别</td>
                <td>
                    <input type="radio" name="gender" value="0" <%if(stu.getSex() == 0){%>checked="checked"<%}%>><input type="radio" name="gender" value="1" <%if(stu.getSex() == 1){%>checked="checked"<%}%>></td>
            </tr>
            <tr>
                <td>邮箱</td>
                <td><input type="text" name="email" value="<%=stu.getEmail()%>"></td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="submit" name="submit" value="保存">
                    <input type="button" name="return" value="取消">
                </td>
            </tr>
        </table>
    </form>
    </body>
    </html>
    
    
    
    =================doUpdate.jsp==============
    //本页为数据修改部分,后台数据处理操作的内容
    <%@ page import="com.ibeifeng.student.ConfigUtil" %>
    <%@ page import="java.sql.DriverManager" %>
    <%@ page import="java.sql.Connection" %>
    <%@ page import="com.ibeifeng.student.StudentDao" %>
    <%@ page import="com.ibeifeng.student.Student" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
    
        Class.forName(new ConfigUtil().getValue("driver"));
        Connection conn = DriverManager.getConnection(
                new ConfigUtil().getValue("url"),new ConfigUtil().getValue("username"),new ConfigUtil().getValue("password"));
    
        String stuid = request.getParameter("stuId");
        int sid = Integer.parseInt(stuid);
        String name = request.getParameter("stuName");
        String pwd = request.getParameter("pwd");
        String gender = request.getParameter("gender");
        int gen = Integer.parseInt(gender);
        String email = request.getParameter("email");
    
        StudentDao stuDao = new StudentDao();
        Student stu = new Student();
        stu.setId(sid);
        stu.setName(name);
        stu.setPwd(pwd);
        stu.setSex(gen);
        stu.setEmail(email);
    
        int resule = stuDao.updateStu(stu);
        if(resule > 0){
            request.getRequestDispatcher("doList02.jsp").forward(request,response);
        }else{
            request.getRequestDispatcher("updateStu.jsp?sno="+stuid).forward(request,response);
        }
    %>
    
    
    
    ===============doDel.jsp===================
    //本页为数据删除部分后台处理内容
    <%@ page import="com.ibeifeng.student.StudentDao" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
    
        String sid = request.getParameter("sid");
        StudentDao stuDao = new StudentDao();
        stuDao.delStu(sid);
        request.getRequestDispatcher("doList02.jsp").forward(request,response);
    %>
    
    
    
    
    
    ===============BaseDao.java=================
    //本页为封装的方法,主要是涉及到数据库连接的初始化、查询、更新、资源释放
    package com.ibeifeng.student;
    
    import java.sql.*;
    
    /*
    * JDBC操作DAO通用类方法封装
    * */
    public class BaseDao {
        static Connection conn = null;
        static PreparedStatement ps = null;
        static ResultSet rs = null;
        //静态语句块
        static{
            try {
                Class.forName(ConfigUtil.getValue("driver"));
    
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    
        public static Connection getConn(){
            try {
                conn = DriverManager.getConnection(ConfigUtil.getValue("url"),
                        ConfigUtil.getValue("username"),
                        ConfigUtil.getValue("password"));
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return conn;
        }
    
        /*
        * 查询
        * */
        public ResultSet search(String sql){
            try {
                rs = ps.executeQuery();
                return rs;
            } catch (SQLException e) {
                throw new RuntimeException();
            }
        }
    
        /*
        * 更新数据
        * */
        public int modify(String sql){
            try {
                return ps.executeUpdate(sql);
            } catch (SQLException e) {
                throw new RuntimeException();
            }
        }
    
        public static void close(ResultSet rs, PreparedStatement ps, Connection conn){
            try {
                if(rs != null) {
                    rs.close();
                }
                if(ps != null) {
                    ps.close();
                }
                if(conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
    
    
    
    
    =================ConfigUtil.java==============
    //本页封装了从配置文件读取数据的方法
    package com.ibeifeng.student;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    public class ConfigUtil {
        //通过key获取jdbc配置的value
        public static String getValue(String key){
            Properties pro = new Properties();
            //获取流信息
            InputStream is = ConfigUtil.class.getResourceAsStream("/jdbc.properties");
            try {
                //加载流文件
                pro.load(is);
                //获取属性值
                return pro.getProperty(key);
            } catch (IOException e) {
                throw new RuntimeException();
            }
        }
    }
    
    
    
    
    
    ================StudentDao.java==============
    //本页封装了对于数据库,数据处理的一些方法
    package com.ibeifeng.student;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class StudentDao {
        /*
        * Student Dao用于处理Student类
        * */
        Connection conn = null;
        PreparedStatement ps = null;
        public int updateStu(Student stu){
            /*
            * 更新学员信息
            * */
            String sql = "update student set stu_name=?,pwd=?,sex=?,email=? where stu_id=?";
            try {
                ps = BaseDao.getConn().prepareStatement(sql);
                ps.setString(1,stu.getName());
                ps.setString(2,stu.getPwd());
                ps.setInt(3,stu.getSex());
                ps.setString(4,stu.getEmail());
                ps.setInt(5,stu.getId());
    
                return ps.executeUpdate();
            } catch (SQLException e) {
                throw new RuntimeException();
            }finally {
                BaseDao.close(null,ps,conn);
            }
        }
    
        public Student getStuByStuId(String stu_id){
            String sql = "select * from student where stu_id=?";
            Student stu = null;
            try {
                conn = BaseDao.getConn();
                ps = conn.prepareStatement(sql);
                int sid = Integer.parseInt(stu_id);
                ps.setInt(1,sid);
                ResultSet rs = ps.executeQuery();
    
                if(rs.next()){
                    stu = new Student();
                    stu.setId(rs.getInt("stu_id"));
                    stu.setName(rs.getString("stu_name"));
                    stu.setPwd(rs.getString("pwd"));
                    stu.setSex(rs.getInt("sex"));
                    stu.setEmail(rs.getString("email"));
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }finally {
                BaseDao.close(null,ps,conn);
            }
            return stu;
        }
    
        /*
        * 根据学号删除学生信息
        * */
        public int delStu(String sid){
            String sql = "delete from student where stu_id = ?";
            conn = BaseDao.getConn();
            try {
                ps = conn.prepareStatement(sql);
                int id = Integer.parseInt(sid);
                ps.setInt(1,id);
                return ps.executeUpdate();
            } catch (SQLException e) {
                throw new RuntimeException();
            }
        }
    }
    
    
    
    
    
    
    ===================Student.java==============
    //封装类对象
    package com.ibeifeng.student;
    
    public class Student {
        private int id;
        private String name;
        private String pwd;
        private int sex;
        private String email;
    
        public Student(){}
    
        public void setId(int id) {
            this.id = id;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
    
        public void setSex(int sex) {
            this.sex = sex;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public int getId() {
            return id;
        }
    
        public String getName() {
            return name;
        }
    
        public String getPwd() {
            return pwd;
        }
    
        public int getSex() {
            return sex;
        }
    
        public String getEmail() {
            return email;
        }
    }
    
    
    
    
    =============jdbc.properties=============
    //配置文件信息
    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/test
    username=root
    password=123456
  • 相关阅读:
    【产品分析】数据中台
    【设计】设计规范
    【产品分析】用户行为分析套路
    【产品复盘】谷歌Chrome是如何蚕食互联网的?
    【设计】图表设计
    command
    解决win7系统远程桌面 server 2003 卡的问题
    sqlmap遇到url重写的示例
    ASP中可能出现的一种包含漏洞(Server.execute)
    绕过杀毒软件抓取windows密码
  • 原文地址:https://www.cnblogs.com/helloworldlx/p/9033679.html
Copyright © 2011-2022 走看看