javaweb链接数据库实现:登录,添加,删除,更新,查找等操作(用mabatis框架的注解方法实现)

1.登录界面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>欢迎使用</h1>
<form action="logina" method="post">
    姓名<input type="text" name="user"><br>
    密码<input type="text" name="pwd"><br>
    <img src="code" alt="" width="100" onclick="this.src=this.src+'?'+Math.random()">
    <input type="text" name="yz">
    <button>登录</button>

</form>
</body>
</html>

登录界面完成后会跳转到判断用户名密码已经验证码是否正确的界面和查找界面

2.查找(判断用户名密码验证码是否正确)

查找列表界面完成之后,还是跳转到此页面

@WebServlet("/logina")
public class UserRequest2 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 user = req.getParameter("user");
        String pwd = req.getParameter("pwd");
        String code = req.getParameter("yz");
        System.out.println("user2 = " + user);
        System.out.println("pwd2 = " + pwd);
        System.out.println("code= " + code);
//判断用户输入的验证码跟机器生成的验证码是否相同
        HttpSession session = req.getSession();
        String yz = (String) session.getAttribute("yz");
        if (!yz.equals(code)){
            System.out.println("验证码错误!");
        }
InputStream  in = Resources.getResourceAsStream("config/mybatis-config.xml");
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        SqlSession  sqlSession = factory.openSession();
        StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
        User select = studentDao.login(user, pwd);
 if (select==null){
            //错误提示
            req.getRequestDispatcher("usererror").forward(req,resp);
        }else {

            List<Student> list = studentDao.findAll();
    req.setAttribute("list",list);
            req.getRequestDispatcher("showlist").forward(req,resp);
        }
}

}

3.删除

删除操作完成之后,跳转到查找的列表界面

@WebServlet("/delOne")
public class StuDel 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 id = req.getParameter("id");
        
        try {
            InputStream in = Resources.getResourceAsStream("config/mybatis-config.xml");
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
            SqlSession sqlSession = factory.openSession();
            StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
            int delete = studentDao.deleteStudent(Integer.valueOf(id));
            sqlSession.commit();
            if (delete>0){
                List<Student> list = studentDao.findAll();
                req.setAttribute("list",list);
                req.getRequestDispatcher("showlist").forward(req,resp);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

4.添加

(1)添加的表单界面

@WebServlet("/insert")
public class StuInsertData 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 {
                req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        writer.write("<!doctype html>");
        writer.write("<html>");
        writer.write("<head>");
        writer.write("<meta charset='utf-8'>");
        writer.write("</head>");
        writer.write("<h1>学生信息添加展示</h1>");
        writer.write("<body style='backgroud:#ccffff;'>");
        writer.write("<h1>学生信息展示</h1>");
        writer.write("<div style='margin:0 auto;width:600px;border:solid 3px red;'>" +
                "<h3><a href='insert'>录入信息</a></h3>");
        writer.write("<form action='insertok' methon='post'>" +
                "姓名:<input type='text' name='name'><br>" +
                "性别:<input type='text' name='sex'><br>" +
                "年龄:<input type='text' name='age'><br>" +
                "专业:<input type='text' name='major'><br>" +
                "时间:<input type='text' name='time'><br>" +
                "<button>提交</button>" +
                "<input type='reset' value='重置'/>" +
                "</form>" +
                "</div>");
        writer.write("</body>");
        writer.write("</html>");
    }
}

(2)添加实现的操作

@WebServlet("/insertok")
public class insertok 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 {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        String name = req.getParameter("name");
        String sex = req.getParameter("sex");
        String age = req.getParameter("age");
        String major = req.getParameter("major");
        String time = req.getParameter("time");

        try {
            InputStream in = Resources.getResourceAsStream("config/mybatis-config.xml");
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
            SqlSession sqlSession = factory.openSession();
            StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
            Student student = new Student();
            student.setName(name);student.setSex(sex);student.setAge(Integer.valueOf(age));
            student.setMajor(major);student.setTime(time);
            int add = studentDao.saveStudent(student);
            sqlSession.commit();
if (add>0){
                List<Student> list = studentDao.findAll();
  req.setAttribute("list",list);
                req.getRequestDispatcher("showlist").forward(req,resp);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

5.更新

(1)更新的表单界面

@WebServlet("/updateOne")
public class UpdataData 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 {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        //Student stu =(Student) req.getAttribute("stu");
        String id = req.getParameter("id");
        InputStream in = Resources.getResourceAsStream("config/mybatis-config.xml");
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        SqlSession sqlSession = factory.openSession();
        StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
        Student stu = studentDao.findById(Integer.valueOf(id));
        // Student stu = jdbcTools.select("select * from stuhhh where id=?", Student.class,id);

        writer.write("<!doctype html>");
        writer.write("<html>");
        writer.write("<head>");
        writer.write("<meta charset='utf-8'>");
        writer.write("</head>");
        writer.write("<h1>学生信息更新展示</h1>");
        writer.write("<body style='backgroud:#ccffff;'>");
        writer.write("<h1>学生信息展示</h1>");
        writer.write("<div style='margin:0 auto;width:600px;border:solid 3px red;'>" +
                "<h3><a href='updateOne'>修改信息</a></h3>");
        writer.write("<form action='updateok' methon='post'>" +
                "iD:<input type='hidden' name='id' value=" +stu.getId()+
                "><br>"+
                "姓名:<input type='text' name='name' value=" +stu.getName()+
                "><br>"+
                "性别:<input type='text' name='sex' value=" +stu.getSex()+
                "><br>" +
                "年龄:<input type='text' name='age' value=" +stu.getAge()+
                "><br>" +
                "专业:<input type='text' name='major' value=" +stu.getMajor()+
                "><br>" +
                "时间:<input type='text' name='time' value=" +stu.getTime()+
                "><br>" +
                "<button>提交</button>" +
                "<input type='reset' value='重置'/>" +
                "</form>" +
                "</div>");
        writer.write("</body>");
        writer.write("</html>");


    }
}

(2)添加实现的操作

@WebServlet("/updateok")
public class UpdateOk 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 {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        String id = req.getParameter("id");
        String name = req.getParameter("name");
        String sex = req.getParameter("sex");
        String age = req.getParameter("age");
        String major = req.getParameter("major");
        String time = req.getParameter("time");
        InputStream in = Resources.getResourceAsStream("config/mybatis-config.xml");
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        SqlSession sqlSession = factory.openSession();
        StudentDao studentDao = sqlSession.getMapper(StudentDao.class);
        Student student = new Student();student.setId(Integer.valueOf(id));
        student.setName(name);student.setSex(sex);student.setAge(Integer.valueOf(age));
        student.setMajor(major);student.setTime(time);
        int update = studentDao.updateStudent(student);
        sqlSession.commit();
       
        if (update>0){
            List<Student> list = studentDao.findAll();
            req.setAttribute("list",list);
            req.getRequestDispatcher("showlist").forward(req,resp);
        }
    }
}

6.验证码的实现

我是添加了ValidateCode.jar实现的

@WebServlet("/code")
public class Code 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 {
        ValidateCode validateCode = new ValidateCode(500, 200, 4, 100);
        String code = validateCode.getCode();
        HttpSession session = req.getSession();
        session.setAttribute("yz",code);
        //System.out.println("code = " + code);
         validateCode.write(resp.getOutputStream());
    }
}

7.用户名或者密码错误情况

@WebServlet("/usererror")
public class Usererror 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 {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");

        PrintWriter user = resp.getWriter();
        user.write("<!Doctype html>");
        user.write("<html>");
        user.write("<head>");
        user.write("<meta charset='utf-8>'");
        user.write("</head>");
        user.write("<body>");
        user.write("<h2 style='color:red;font-weight:bold;'>"+
        "用户名或密码有错误,请重新登录"+
        "</h2>"+
                "<p>请重新登录<p>");
        user.write("</body>");
        user.write("</html>");
    }
}

8.注解方法

(1)所需要用到的方法

以下是我个人封装的包,有需要的可以修改一下用

public interface StudentDao {
    @Select("select * from stuhhh")
    List<Student> findAll();

    @Insert("insert into stuhhh values(null,#{name},#{sex},#{age},#{major},#{time})")
    int saveStudent(Student stu);
    @Delete("delete from stuhhh where id=#{id}")
    int deleteStudent(int id);
    @Update("update stuhhh set name=#{name},sex=#{sex},age=#{age},major=#{major},time=#{time}where id=#{id}")
    int updateStudent(Student student);
    //根据id查询一条数据
    @Select("select * from stuhhh where id =#{id}")
    Student findById(Integer id);
    //模糊查询
    @Select("select * from stuhhh where name like '%${value}%'")
    List<Student> findByName(String name);
    //查询总数量
    @Select("select count(*) from stuhhh")
    int findTotal();
    @Select("select * from guan where username=#{username} and password=#{password}")
    User login(@Param("username") String username, @Param("password") String password);
}

(2)config资源

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE configuration PUBLIC
        "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="develop">
        <environment id="develop">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/testdb?characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
<!--        <mapper resource="mapper/StudentMapper.xml"/>-->
        <mapper class="Dao.StudentDao"/>
<!--        <mapper resource="mapper/UserMapper.xml"/>-->
    </mappers>
</configuration>

就是以上这么多啦,有问题的可以私信我或者留言哦!

谢谢!

  • 14
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值