java操作数据库,以页面显示学生信息为例

Posted 00011101

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于java操作数据库,以页面显示学生信息为例的主要内容,如果未能解决你的问题,请参考以下文章

创建一个学生信息表,与页面分离

怎么用javascript在java的list中插入数据?先谢谢高人了!

部分代码片段

综合学生信息管理系统(JSP+JDBC)

c语言大作业 学生成绩管理系统

学生管理系统(jsp+mysql)