每周总结二

这一周,重写了一下学生管理系统,总算是用HTML+MySQL+servlet以及Java解决了基本的操作。

在这次写程序过程中,还遇到不少问题。

首先,我的数据库连接居然出毛病了,以前的时候,连接数据库是没问题的,后来看视频又学了一个新的方法,前几天写的时候,用新方法,一直在报错,说我的dbutil有问题,但验证时确实是连接上了,找了半天也没找出方法解决这个毛病,我又换回老方法了。

之后,写完插入方法,进行实验的时候,中文插入后一直是乱码,我看了数据库的字段,又看dao方法,找了半天问题,后来发现,把html中的方法改成post就是插入乱码,改成get就能正常插入,哎。

最后一个问题,是修改的时候,一直报sql语句出错了,我盯着sql语句瞅了半天,查资料,总共得花了一小时,最后发现居然是因为我把set后面的修改的内容用括号括起来了,删掉后立马成功运行了,我真是太无语了。

DBUtil:

复制代码
package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBUtil {
    private static String url = "jdbc:mysql://localhost:3306/qimo?&useSSL=false&serverTimezone=UTC";//数据库名称qimo
    private static String user = "root";
    private static String password = "wangzeyang";
    private static String jdbcName="com.mysql.cj.jdbc.Driver";
    private Connection con=null;
    public static  Connection getConnection() {
        Connection con=null;
        try {
            Class.forName(jdbcName);
            con=DriverManager.getConnection(url, user, password);
            //System.out.println("数据库连接成功");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            //System.out.println("数据库连接失败");
            e.printStackTrace();
        }
        try {
            con = DriverManager.getConnection(url,user,password);
            System.out.println("连接成功");


        } catch (SQLException e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        return con;
    }
    public static void main(String[] args)throws SQLException {
        Connection conn = getConnection();
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        String sql ="select * from test";
        pstmt = conn.prepareStatement(sql);
        rs = pstmt.executeQuery();
        System.out.println(getConnection());
        while(rs.next()){
            System.out.println("成功");
        }

    }

    // return con;


    public static void close(Connection con) {
        if(con!=null)
            try {
                con.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

    }
    public static void close(Statement state, Connection conn) {
        if(state!=null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void close(ResultSet rs, Statement state, Connection conn) {
        if(rs!=null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(state!=null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}
复制代码

Dao:

复制代码
package dao;

import entity.Student;
import util.DBUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import static util.DBUtil.close;


public class Dao {
    public int insert(Student student){
        Connection connection=null;
        PreparedStatement preparedStatement=null;
        String sql="insert into student (xuehao,name,sex,birthday)values (?,?,?,?)";
        try {
            connection=DBUtil.getConnection();
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setString(1,student.getXuehao());
            preparedStatement.setString(2,student.getName());
            preparedStatement.setString(3,student.getSex());
            preparedStatement.setString(4, student.getBirthday());
            int result=preparedStatement.executeUpdate();
            return result;

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close(preparedStatement,connection);
        }
        return 0;
    }
    public int update(Student student){
        Connection connection=null;
        PreparedStatement preparedStatement=null;
        String sql="update student set name=?,sex=?,birthday=? where xuehao=?";
        try {
            connection=DBUtil.getConnection();
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setString(1,student.getName());
            preparedStatement.setString(2,student.getSex());
            preparedStatement.setString(3, student.getBirthday());
            preparedStatement.setString(4, student.getXuehao());
            int result=preparedStatement.executeUpdate();
            return result;
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close(preparedStatement,connection);
        }
        return 0;
    }
    public int delete(String xuehao){
        Connection connection=null;
        PreparedStatement preparedStatement=null;
        String sql="delete  from student where xuehao=?";
        try {
            connection=DBUtil.getConnection();
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setString(1,xuehao);
            int result = preparedStatement.executeUpdate();
            return result;
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close(preparedStatement,connection);
        }
        return 0;
    }
    public Student select(String xuehao){
        Connection connection=null;
        PreparedStatement preparedStatement=null;
        ResultSet resultSet=null;
        Student student=null;
        String sql="select * from student where xuehao=?";
        try {
            connection=DBUtil.getConnection();
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setString(1,xuehao);
            resultSet=preparedStatement.executeQuery();
            if (resultSet.next()){
                String id=resultSet.getString("xuehao");
                String name=resultSet.getString("name");
                String sex=resultSet.getString("sex");
                String birthday=resultSet.getString("birthday");
                student=new Student(id,name,sex,birthday);
            }
            return student;

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close(resultSet,preparedStatement,connection);
        }

        return null;
    }
}
复制代码

servlet(多个):

复制代码
package servlet;

import dao.Dao;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/Delete")
public class DeleteServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String xuehao=req.getParameter("xuehao");
        Dao dao=new Dao();
        if (dao.delete(xuehao)==1){
            System.out.println("删除成功");
        }
        else {
            System.out.println("删除失败");
        }
    }
}







package servlet;

import dao.Dao;
import entity.Student;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/Insert")
public class InsertServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String xuehao=req.getParameter("xuehao");
        String name=req.getParameter("name");
        String sex=req.getParameter("sex");
        String birthday=req.getParameter("birthday");
        Student student=new Student(xuehao,name,sex,birthday);
        Dao dao=new Dao();
        if (dao.insert(student)==1){
            System.out.println("插入成功");
        }
        else{
            System.out.println("插入失败");
        }
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req,resp);
        req.setCharacterEncoding("utf-8");
    }
}








package servlet;

import dao.Dao;
import entity.Student;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/Select")
public class SelectServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String xuehao=req.getParameter("xuehao");
        Dao dao=new Dao();
        Student student=dao.select(xuehao);
        if (student!=null){
            System.out.println("学号:"+student.getXuehao()+"姓名:"+student.getName()+"性别:"+student.getSex()+"生日:"+student.getBirthday());
        }
        else {
            System.out.println("未查询到");
        }
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req,resp);
    }
}








package servlet;

import dao.Dao;
import entity.Student;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/update")
public class UpdateServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String xuehao=req.getParameter("xuehao");
        String name=req.getParameter("name");
        String sex=req.getParameter("sex");
        String birthday=req.getParameter("birthday");
        Student student=new Student(xuehao,name,sex,birthday);
        Dao dao=new Dao();
        if (dao.update(student)==1){
            System.out.println("修改成功");
        }
        else{
            System.out.println("修改失败");
        }
    }
}
复制代码

HTML:

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>insert</title>
</head>
<body>
<form action="/xueshengsushe_war_exploded/Insert" method="get">
    <table align="center">
        <tr><td>添加信息</td></tr>
        <tr><td>学号:<input type="text" name="xuehao"></td></tr>
        <tr><td>姓名:<input type="text" name="name"></td></tr>
        <tr><td>性别:<input type="text" name="sex"></td></tr>
        <tr><td>生日:<input type="text" name="birthday"></td></tr>
        <tr><td><input type="reset" value="重置"></td>
        <td><input type="submit" value="添加"></td>
        </tr>
    </table>
</form>
</body>
</html>







<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>delete</title>
</head>
<body>
<form action="/xueshengsushe_war_exploded/Delete" method="post">
    <table align="center">
        <tr><td>删除信息</td></tr>
        <tr><td>要删除学生学号: <input type="text" name="xuehao"></td></tr>
        <tr>
            <td><input type="submit" value="确认"></td>
        </tr>
    </table>
</form>
</body>
</html>







<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>update</title>
</head>
<body>
<form action="/xueshengsushe_war_exploded/update" method="get">
    <table>
        <tr><td>修改信息</td></tr>
        <tr><td>要修改学生的学号:<input type="text" name="xuehao"></td></tr>
        <tr><td>姓名:<input type="text" name="name"></td></tr>
        <tr><td>性别:<input type="text" name="sex"></td></tr>
        <tr><td>生日:<input type="text" name="birthday"></td></tr>
        <tr>
            <td><input type="submit" value="提交"></td>
            <td><input type="reset" value="重置"></td></tr></table>
</form>
</body>
</html>









<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>select</title>
</head>
<body>
<form action="/xueshengsushe_war_exploded/Select" method="post">
    <table>
        <tr><td>要查询学生的学号</td></tr>
        <tr> <td>学号: <input type="text" name="xuehao"></td></tr>
        <tr><input type="submit" value="查询"></tr>
    </table>
</form>
</body>
</html>
复制代码

 

posted @   菜鸟是如何练成的  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2021-07-15
点击右上角即可分享
微信分享提示