基于IDEA开发简单的Javaee项目-user用户管理系统

简要说明:通过IDEA开发JavaEE项目,实现简单的用户管理系统,与数据库进行数据交互,在web端实现数据的增删改查功能。

定义的对象:

     1.id,id是数据库表中的主键,一般设置为自增长型,所以在增加界面不需要显示id。在Java代码中定义为int型。
     2.userName,userName定义为用户名,在Java代码中定义为String类型。
     3.userPassword,userPassword定义为密码,因为密码是用户个人隐私信息,所以我们需要保存在数据库中,但不要在web段和url中显示出来,在Java代码中定义为String类型。
     4.userBirthdate,userBirthdate定义为出生日期,在数据库中要定义成date类型,如果定义为varchar类型也可以,但是不建议。在Java代码中定义成String类型即可。

项目结构说明:

请先看图:

在这里插入图片描述
我采用的方法是面像接口的编程方式。
1.com.znx.dao包下的UserDao接口是数据库端的接口,UserDaoImpl是接口的实现类
2.com.znx.domain包下的User类主要定义了我们所需要的对象和方法。
3.com.znx.filter包下的CharseFilter类做一个拦截器,做一些在本项目中重复操作的内容,比如字符乱码。
4.com.znx.mapper包下的userMapper.xml文件主要写数据库的SQL语句。
5.com.znx.service包下也是面向接口,主要面向服务端,可参照1内容
6.com.znx.servlet包下是做增删改查的具体操作。
7.page包下都是jsp代码块。

话不多说,上代码!!!!!!!!!!!!!!!!!!!!!!

UserDao:

package com.znx.dao;
import com.znx.domain.User;
import java.util.List;
public interface UserDao{

    List<User> selectAllUsers();

    User selectUserById(int id);

    void insertUser(User user);

    void updateUser(User user);

    void deleteUserById(int id);

}



UserDaoImpl

package com.znx.dao.impl;

import com.znx.dao.UserDao;
import com.znx.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class UserDaoImpl implements UserDao {


    static SqlSessionFactory sqlSessionFactory;
    static {
        InputStream inputStream;
        try {
            String resource = "mybatis-config.xml";
            inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void insertUser(User user) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserDao UserDao = sqlSession.getMapper(UserDao.class);
        UserDao.insertUser(user);
        sqlSession.commit();
        sqlSession.close();
    }
    @Override
    public void updateUser(User book) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserDao UserDao = sqlSession.getMapper(UserDao.class);
        UserDao.updateUser(book);
        sqlSession.commit();
        sqlSession.close();
    }

    @Override
    public void deleteUserById(int id) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserDao UserDao = sqlSession.getMapper(UserDao.class);
        UserDao.deleteUserById(id);
        sqlSession.commit();
        sqlSession.close();
    }

    @Override
    public User selectUserById(int id) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserDao UserDao = sqlSession.getMapper(UserDao.class);
        sqlSession.commit();
        return UserDao.selectUserById(id);


    }

    @Override

    public List<User> selectAllUsers() {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserDao UserDao = sqlSession.getMapper(UserDao.class);
        sqlSession.commit();
        return UserDao.selectAllUsers();
    }
}

User

package com.znx.domain;
public class User {
    private int id;
    private String userName;
    private String userPassword;
    private String userBirthdate;

    public User() {
    }
    public User(int id, String userName, String userPassword, String userBirthdate) {
        this.id = id;
        this.userName = userName;
        this.userPassword = userPassword;
        this.userBirthdate = userBirthdate;
    }
    public User( String userName, String userPassword, String userBirthdate) {

        this.userName = userName;
        this.userPassword = userPassword;
        this.userBirthdate = userBirthdate;
    }
    public int getId() {
        return id;
    }

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

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserPassword() {
        return userPassword;
    }

    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    }

    public String getUserBirthdate() {
        return userBirthdate;
    }

    public void setUserBirthdate(String userBirthdate) {
        this.userBirthdate = userBirthdate;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", userName='" + userName + '\'' +
                ", userPassword='" + userPassword + '\'' +
                ", userBirthdate='" + userBirthdate + '\'' +
                '}';
    }
}

CharseFilter

package com.znx.filter;

import javax.servlet.*;
import java.io.IOException;

public class CharseFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain Chain) throws IOException, ServletException {

        req.setCharacterEncoding("utf-8");

        resp.setContentType("index.jsp;charset=utf-8");
        Chain.doFilter(req,resp);
    }

    @Override
    public void destroy() {

    }
}


userMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.znx.dao.UserDao">

	<insert id="insertUser" parameterType="com.znx.domain.User">
		INSERT INTO umg (user_name,user_password,user_birthdate)
		 	VALUES
		(#{userName},#{userPassword},#{userBirthdate})
	</insert>

	<select id="selectAllUsers" resultType="com.znx.domain.User">
		SELECT * FROM umg
	</select>
	<select id="selectUserById" resultType="com.znx.domain.User" parameterType="int">
		SELECT * FROM umg where id = #{id}
	</select>

	<update id="updateUser" parameterType="com.znx.domain.User">
		update umg set user_name = #{userName},user_password =#{userPassword},user_birthdate = #{userBirthdate}
		where id = #{id}
	</update>

	<delete id="deleteUserById" parameterType="int">
		delete from umg where id = #{id}
	</delete>

<!--    <delete id="deleteBookById" parameterMap="com.bookstore.entity.Book">-->
<!--    DELETE FROM book WHERE id=#{id}-->
<!--    </delete>-->
	
</mapper>

UserService

package com.znx.service;

import com.znx.domain.User;

import java.util.List;

public interface UserService {

    User selectUserById(int id);

    List<User> selectAllUsers();

    public void updateUser(User user);

    public void deleteUserById(int id);

    public void insertUser(User user) throws Exception;
}

UserServiceImpl

package com.znx.service.impl;

import com.znx.dao.UserDao;
import com.znx.dao.impl.UserDaoImpl;
import com.znx.domain.User;
import com.znx.service.UserService;

import java.awt.print.Book;
import java.util.List;

public class UserServiceImpl implements UserService {


    private UserDao userDao = new UserDaoImpl();

    @Override
    public User selectUserById(int id) {
        return userDao.selectUserById(id);
    }

    @Override
    public List<User> selectAllUsers() {
        return userDao.selectAllUsers();
    }


    @Override
    public void updateUser(User user) {
        userDao.updateUser(user);
    }

    @Override
    public void deleteUserById(int id) {
        userDao.deleteUserById(id);
    }

    @Override
    public void insertUser(User user) throws Exception {
//        userDao.insertUser(user);
//        User b = userDao.selectUserById(user.getId());
//        if (b == null) {
//            userDao.insertUser(user);
//        } else {
//            System.out.println("保存失败");
//        }
        userDao.insertUser(user);
    }
}

ListAllUserServlet

package com.znx.servlet;

import com.znx.domain.User;
import com.znx.service.UserService;
import com.znx.service.impl.UserServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public class ListAllUserServlet extends HttpServlet {

    private UserService userService = new UserServiceImpl();
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        List<User> users = userService.selectAllUsers();

        req.setAttribute("users",users);


        req.getRequestDispatcher("/WEB-INF/page/index.jsp").forward(req,resp);
    }

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

AddUserPageServlet

package com.znx.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class AddUserPageServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.getRequestDispatcher("/WEB-INF/page/addUser.jsp").forward(req,resp);
    }

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

AddUserServlet

扫描二维码关注公众号,回复: 9077943 查看本文章
package com.znx.servlet;

import com.znx.domain.User;


import com.znx.service.UserService;
import com.znx.service.impl.UserServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class AddUserServlet extends HttpServlet {

    private UserService userService = new UserServiceImpl();
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//        int id = Integer.parseInt(req.getParameter("id"));
        String userName = req.getParameter("userName");
        String userPassword = req.getParameter("userPassword");
        String userBirthdate = req.getParameter("userBirthdate");

//        System.out.println(id);
        System.out.println(userName);
        System.out.println(userBirthdate);

        User user = new User(userName,userPassword,userBirthdate);

        System.out.println(user);

        try {
            userService.insertUser(user);
        } catch (Exception e) {
            e.printStackTrace();
        }

        resp.sendRedirect("ListAllUserServlet");

    }

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


UpdateUserPageServlet



```java

```java
package com.znx.servlet;

import com.znx.domain.User;
import com.znx.service.UserService;
import com.znx.service.impl.UserServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class UpdateUserPageServlet extends HttpServlet {

    private UserService userService = new UserServiceImpl();


    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        User user = userService.selectUserById(Integer.parseInt(req.getParameter("id")));
        req.setAttribute("user", user);
        req.getRequestDispatcher("/WEB-INF/page/updateUser.jsp").forward(req,resp);
    }

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

UpdateUserServlet


```bash
package com.znx.servlet;

import com.znx.domain.User;
import com.znx.service.UserService;
import com.znx.service.impl.UserServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class UpdateUserServlet extends HttpServlet {
    private UserService userService = new UserServiceImpl();
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        int id = Integer.parseInt(req.getParameter("id"));
        String userName = req.getParameter("userName");
        String userPassword = req.getParameter("userPassword");
        String userBirthdate = req.getParameter("userBirthdate");

        System.out.println("id:"+id);
        System.out.println("userName:"+userName);
        System.out.println("userPassword:"+userPassword);
        System.out.println("userBirthdate:"+userBirthdate);

        User user = new User(id,userName,userPassword,userBirthdate);

        try {
            userService.updateUser(user);
        } catch (Exception e) {
            e.printStackTrace();
        }


        resp.sendRedirect("ListAllUserServlet");
    }


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

DeleteUserServlet

package com.znx.servlet;

import com.znx.service.UserService;
import com.znx.service.impl.UserServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class DeleteUserServlet extends HttpServlet {

    private UserService userService = new UserServiceImpl();
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {


        int id = Integer.parseInt(req.getParameter("id"));

//       System.out.println("id:"+id);

        userService.deleteUserById(id);


        resp.sendRedirect("ListAllUserServlet");


    }

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

mybatis-config.xml(usermanager是数据库名字,数据库的密码记得修改成自己的密码)


```c

```c

```java
```css
<?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>
	<settings>
		<setting name="mapUnderscoreToCamelCase" value="true"/>
	</settings>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://localhost:3306/usermanager?serverTimezone=GMT%2B8&amp;characterEncoding=utf8" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="com/znx/mapper/userMapper.xml" />
	</mappers>
</configuration>

addUser.jsp

<%--
  Created by IntelliJ IDEA.
  User: Boom
  Date: 2019/10/12
  Time: 9:57
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>添加用户信息</title>
    <style>
        .box{
            width: 700px;
            margin: 100px auto;
        }
        table{
            width: 700px;
            border-spacing: 0px;
            border-top: 1px solid #000;
            border-left: 1px solid #000;
            margin-top: 5px;
        }

        table tr th , table tr td {
            border: 1px solid #000;
            border-left: none;
            border-top: none;
            text-align:center;
        }
    </style>
</head>
<body>
<form method="get" action="/AddUserServlet">
    <table>
        <tr><th>添加书籍</th></tr>
<%--        <tr><td><center>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id:<input type="text" name="id"></center></td></tr>--%>
        <tr><td><center>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户名:<input type="text" name="userName"></center></td></tr>
        <tr><td><center>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;密码:<input type="text" name="userPassword"></center></td></tr>
        <tr><td><center>出生日期:<input type="text" name="userBirthdate"></center></td></tr>
        <tr><td><input type="submit" value="添加" style="float: right" ></td></tr>
    </table>
</form>
</body>
</html>
index.jsp
<%--
  Created by IntelliJ IDEA.
  User: Boom
  Date: 2019/10/11
  Time: 9:33
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
  <head>
    <title>显示用户信息</title>
      <style>
                  .box{
                      width: 700px;
                      margin: 100px auto;
                  }
          table{
              width: 700px;
              border-spacing: 0px;
              border-top: 1px solid #000;
              border-left: 1px solid #000;
              margin-top: 5px;
          }

          table tr th , table tr td {
              border: 1px solid #000;
              border-left: none;
              border-top: none;
              text-align:center;
          }
      </style>
  </head>
  <body>
       <a href="/AddUserPageServlet">添加</a>
        <table>
          <thead>
              <tr>
                <th>id</th><th>用户名</th><th>出生日期</th><th colspan="2">功能</th>
              </tr>
          </thead>
          <tbody>
            <c:forEach var="user" items="${users}">
                <tr>
              <td>${user.id}</td>
              <td>${user.userName}</td>
              <td>${user.userBirthdate}</td>
<%--                    <td>修改</td>--%>
<%--                    <td>删除</td>--%>
              <td><a href="/UpdateUserPageServlet?id=${user.id}">修改</a></td>
<%--                   &lt;%&ndash; <td><a href="/UpdateBookPageServlet?id=${book.id}/&bookName=${book.bookName}&author=${book.author}&publishTime=${book.publishTime}">修改</a></td>&ndash;%&gt;--%>
              <td><a href="javascript:deleteUser(id=${user.id})">删除</a></td>
                </tr>
            </c:forEach>
          </tbody>
        </table>
       <script type="text/javascript">
           function deleteUser(id) {
               var b = window.confirm("你确定要删除此记录么?");
               if (b) {
                   window.location.href = "DeleteUserServlet?id=" + id;
               }
           }
       </script>
  </body>
</html>

updateUser.jsp

<%--
  Created by IntelliJ IDEA.
  User: Boom
  Date: 2019/10/13
  Time: 14:43
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>更新用户信息</title>
    <style>
        .box{
            width: 700px;
            margin: 100px auto;
        }
        table{
            width: 700px;
            border-spacing: 0px;
            border-top: 1px solid #000;
            border-left: 1px solid #000;
            margin-top: 5px;
        }

        table tr th , table tr td {
            border: 1px solid #000;
            border-left: none;
            border-top: none;
            text-align:center;
        }
    </style>
</head>
<body>


<%--<% String bookName=request.getParameter("bookName");%>--%>
<%--<%=bookName%>--%>


<form action="/UpdateUserServlet" method="get">
    <table>
        <tr><th>修改书籍</th></tr>
        <tr><td><center>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id:<input type="text" name="id" value="${user.id}" readonly="true"></center></td></tr>
        <tr><td><center>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户名:<input type="text" name="userName" value="${user.userName}"></center></td></tr>
        <tr><td><center>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;密码:<input type="text" name="userPassword" value="${user.userPassword}"> </center></td></tr>
        <tr><td><center>出生日期:<input type="text" name="userBirthdate" value="${user.userBirthdate}"></center></td></tr>
        <tr><td><input type="submit" value="修改" style="float: right"></td></tr>
<%--    id:<input type="text" name="id"><br>--%>
<%--    书名:<input type="text" name="bookName"><br>--%>
<%--    作者:<input type="text" name="author"><br>--%>
<%--    出版时间:<input type="text" name="publishTime"><br>--%>
<%--    <input type="submit" value="修改">--%>
    </table>
</form>
</body>
</html>

数据库:
在这里插入图片描述

附上几张结果的展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

总结:这个Java EE的项目比较简单,使用了一些Mybatis的框架技术,当然还有很多地方值得改进,希望各位大佬多多指导,多多指出问题,希望大家给小编点个赞,谢谢。有问题也可以私聊小编的!

发布了8 篇原创文章 · 获赞 2 · 访问量 2814

猜你喜欢

转载自blog.csdn.net/lnznx/article/details/102710086
今日推荐