简要说明:通过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&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> id:<input type="text" name="id"></center></td></tr>--%>
<tr><td><center> 用户名:<input type="text" name="userName"></center></td></tr>
<tr><td><center> 密码:<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>
<%-- <%– <td><a href="/UpdateBookPageServlet?id=${book.id}/&bookName=${book.bookName}&author=${book.author}&publishTime=${book.publishTime}">修改</a></td>–%>--%>
<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> id:<input type="text" name="id" value="${user.id}" readonly="true"></center></td></tr>
<tr><td><center> 用户名:<input type="text" name="userName" value="${user.userName}"></center></td></tr>
<tr><td><center> 密码:<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>
数据库:
附上几张结果的展示