用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))

一:准备工作

1.需要你建立的我在下图已经全部展开,格外注意一下需要三个jar包,我会发给大家
链接:https://pan.baidu.com/s/1877WF7AcQD8lK1lzByK7Bg
提取码:c7s1
复制这段内容后打开百度网盘手机App,操作更方便哦
对了,图中朱丽是我最近看的《都挺好》中的一个女演员,甚是喜欢啊

用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第1张图片2.接着放一张总体效果图,有兴趣的可以做一做。
用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第2张图片

二.数据库的表

1.这是完成的表
用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第3张图片
2.建表方法
用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第4张图片

三.JSP中的代码

1.先进行 jsp/login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    登录


<%
    String name="";
    //从cookie中获取名字name
    Cookie[] cookies = request.getCookies();
    System.out.println(cookies);
    if(cookies!=null) {
        for (Cookie cookie : cookies) {
            if ("name".equals(cookie.getName())) {
                name = cookie.getValue();
                System.out.println("name="+name);
            }
        }
    }
%>
${requestScope.info}


2. 提交表单到Servlet配置文件中 WEB-INF/web.xml


    
        1
    
    
        userServlet
        servlet.UserServlet
    
    
        userServlet
        /userServlet
    

3.通过映射找到Servlet的路径,进而到Servlet文件

package servlet;
import DAO.UserDao;
import pojo.User;
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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;

public class UserServlet extends HttpServlet {
    UserDao userDao=new UserDao();
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //解决post方式下乱码问题
        request.setCharacterEncoding("utf-8");
        //派发   操作类型type
        String type = request.getParameter("type");
        if ("login".equals(type)) {
            login(request,response);
        }else if("add".equals(type)){
            add(request,response);
        }else if("queryall".equals(type)){
            queryAll(request,response);
        }else if("delete".equals(type)){
            delete(request,response);
        }else if("querybyid".equals(type)){
            queryById(request,response);
        }else if("edit".equals(type)){
            edit(request,response);
        }
    }

    private void edit(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException{
        //从表单接收各个参数
        int id=Integer.parseInt(request.getParameter("id"));
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String gender = request.getParameter("gender");
        int age = Integer.parseInt(request.getParameter("age"));
        //封装成user
        User user = new User(id,username,gender,age,password);
        //调用dao中的添加方法
        // UserDao userDao=new UserDao();
        int i=userDao.update(user);
        //跳转到user_list.jsp,展示所有用户
        if(i>0){
            request.setAttribute("info","修改成功!");
            queryAll(request,response);
        }else{
            request.setAttribute("info","修改失败!");
            queryAll(request,response);
        }
    }
    private void queryById(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {
        int id = Integer.parseInt(request.getParameter("id"));
        User user=userDao.queryById(id);
        request.setAttribute("user",user);
        request.getRequestDispatcher("jsp/edit_user.jsp").forward(request,response);
    }

    private void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int id = Integer.parseInt(request.getParameter("id"));


        int i=userDao.delete(id);
        //跳转到user_list.jsp,展示所有用户
        if(i>0){
            request.setAttribute("info","删除成功!");
            queryAll(request,response);
        }else{
            request.setAttribute("info","删除失败!");
            queryAll(request,response);
        }
    }

    private void queryAll(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
      //  UserDao userDao=new UserDao();
        List list = userDao.queryAll();
        request.setAttribute("list",list);
        request.getRequestDispatcher("jsp/user_list.jsp").forward(request,response);
    }

    private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //从表单接收各个参数
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String gender = request.getParameter("gender");
        int age = Integer.parseInt(request.getParameter("age"));
        //封装成user
        User user = new User(username,gender, age,password);
        //调用dao中的添加方法
       // UserDao userDao=new UserDao();
        int i=userDao.add(user);
        //跳转到user_list.jsp,展示所有用户
        if(i>0){
            request.setAttribute("info","添加成功!");
           queryAll(request,response);
        }else{
            request.setAttribute("info","添加失败!");
            queryAll(request,response);
        }
    }

    private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //验证
        boolean flag = userDao.login(username, password);
        //根据验证结果跳转页面
        if(flag){
            HttpSession session = request.getSession();//获取session对象
            session.setAttribute("username",username);//设置属性值
//        session.setMaxInactiveInterval(60);//设置失效时间
           request.getRequestDispatcher("jsp/success.jsp").forward(request,response);//转发
            //绝对路径
           /* String path=request.getContextPath();//获取项目的根路径
            response.sendRedirect(path+"/jsp/succcess.jsp");*/
        }else{
            request.setAttribute("info","用户名或密码错误!");
            request.getRequestDispatcher("jsp/login.jsp").forward(request,response);
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }
}

4.数据库的连接以及增删改查方法

package DAO;
import pojo.User;
import utils.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class UserDao {
    DBHelper dbHelper=new DBHelper();
    public boolean login(String username,String password){
        boolean flag=false;
        //获取数据库连接
        Connection conn = dbHelper.getConnection();
        //sql
        String sql="select name,password from user where name=? and password=?";
        try {
            //创建PreparedStatement对象
            PreparedStatement pstmt = conn.prepareStatement(sql);
            //设置参数
            pstmt.setObject(1,username);
            pstmt.setObject(2,password);
            //执行
            ResultSet result = pstmt.executeQuery();

            if(result.next()){
                System.out.println("可以登录");
                flag=true;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            dbHelper.close();
        }
        return flag;
    }

    public User queryById(int id1){
        User user=null;
        Connection conn = dbHelper.getConnection();
        String sql="select id,name,age,gender,password from user where id=?";
        try {
            PreparedStatement pstmt = conn.prepareStatement(sql);
            pstmt.setObject(1,id1);
            ResultSet resultSet = pstmt.executeQuery();
            if(resultSet.next()){
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                String gender = resultSet.getString("gender");
                int age = resultSet.getInt("age");
                String password = resultSet.getString("password");
                user=new User(id,name,gender,age,password);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return user;
    }
    public List queryAll(){
        List list=new ArrayList();
        Connection conn = dbHelper.getConnection();
        String sql="select id,name,gender,age from user";
        try {
            PreparedStatement pstmt = conn.prepareStatement(sql);
            ResultSet resultSet = pstmt.executeQuery();
            //遍历结果集
            while(resultSet.next()){
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                String gender = resultSet.getString("gender");
                int age = resultSet.getInt("age");
                User user=new User(id,name,gender,age);
                list.add(user);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            dbHelper.close();
        }
        return list;
    }
    public int add(User user){
        String sql="insert into user(id,name,gender,age,password) values(?,?,?,?,?)";
        Object[] param={user.getId(),user.getName(),user.getGender(),user.getAge(),user.getPassword()};
        return dbHelper.execute(sql,param);
    }
    public int delete(int id){
        String sql="delete from user where id=?";
        Object[] param={id};
        return  dbHelper.execute(sql,param);
    }
    public int update(User user){
       List list=new ArrayList();
        String sql="update user set ";
        if(user.getName()!=null){
            sql+=" name=?,";
            list.add(user.getName());
        }
        if(user.getAge()!=0){
            sql+="age=?,";
            list.add(user.getAge());
        }
        if(user.getGender()!=null){
            sql+="gender=?,";
            list.add(user.getGender());
        }
        if(user.getPassword()!=null){
            sql+="password=? ";
            list.add(user.getPassword());
        }
       sql+=" where id=?";
        System.out.println(sql);
        list.add(user.getId());
        //Object [] param={user.getName(),user.getGender(),user.getAge(),user.getPassword(),user.getId()};
       Object[] param=list.toArray();
        return dbHelper.execute(sql,param);
    }
}

5.JAVABEAN

package pojo;

public class User {
    private int id;
    private String name;
    private String gender;
    private int age;
    private String password;

    public User() {
    }

    public User(String name, String gender, int age, String password) {
        this.name = name;
        this.gender = gender;
        this.age = age;
        this.password = password;
    }

    public User(int id, String name, String gender, int age) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.age = age;
    }

    public User(int id, String name, String gender, int age, String password) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.age = age;
        this.password = password;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", gender='" + gender + '\'' +
                ", age=" + age +
                ", password='" + password + '\'' +
                '}';
    }
}

6.数据库连接以及CRUD的辅助类

package utils;
import java.sql.*;
/**
 * 数据库帮助类
 */
public class DBHelper {
    Connection conn;//声明连接对象
    PreparedStatement pstmt;//声明PreparedStatement对象
    ResultSet result;//声明ResultSet对象
    public   Connection getConnection(){
//        Connection conn =null;
        //1.注册驱动, ctrl+alt+t
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //2.获取连接
            String url="jdbc:mysql://localhost:3306/db0225?useUnicode=true&characterEncoding=utf8";
            String username="root";
            String password="1234";
            conn = DriverManager.getConnection(url, username, password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

    /**
     * 通用的增加、删除、更新
     */
    public int execute(String sql,Object[] param){
        int count=0;
        Connection conn = this.getConnection();

        try {
            pstmt = conn.prepareStatement(sql);

            //给参数赋值
            for(int i=0;i

以上是SRC源文件代码

四.JSP代码

1.jsp/add_user.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    添加页面


用户名:
密码:
性别:
年龄:

2.jsp/edit_user.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    中转页面


用户名:
密码:
性别:
年龄:

3.jsp/success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    成功页面


登录成功!欢迎${sessionScope.username}
显示所有用户

4.jsp/user_list.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="DAO.UserDao" %>
<%@ page import="pojo.User" %>
<%@ page import="java.util.List" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    用户列表



${requestScope.info}

用户表

id name gender age 操作
${user.id} ${user.name} ${user.gender} ${user.age} 删除 修改 添加

5.可以选一个自己喜欢的图像
我还是想贴出来

用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第5张图片

五.演示效果

1.登录界面
用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第6张图片2.成功页面用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第7张图片3.显示所有用户即查询命令
用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第8张图片4.删除命令,删除第一个
用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第9张图片用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第10张图片4.修改命令
1.修改前
用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第11张图片2.修改后
用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第12张图片3.添加命令
用Servlet+数据库MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))_第13张图片

六.总结

基本框架都已经出来了,还有很多欠缺的地方,喜欢美感可以多加一些CSS;关于数据库的连接除了JDCP还有DBCP和C3P0连接池,博主都做了担心大家看迷糊了就没有贴出来,需要的可以联系我。精力有限,实在不能追求完美了,读者可以在这篇文章基础上拓展,共同探讨。

你可能感兴趣的:(熟悉java和web前端)