基於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

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的框架技術,當然還有很多地方值得改進,希望各位大佬多多指導,多多指出問題,希望大家給小編點個贊,謝謝。有問題也可以私聊小編的!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章