Bootstrap4+MySQL前后端综合实训-Day06-PM【MD5加码-生成32位md5码、ResultData.java、分页查询用户数据、添加用户按钮的实现】
【Bootstrap4前端框架+MySQL数据库】前后端综合实训【10天课程 博客汇总表 详细笔记】【附:实训所有代码】
目录
MD5加码 生成32位md5码
ResultData.java
分页查询用户数据
分页查询——user_manager.html
分页查询——UserInfoDao.java
分页查询——SelectUserByPageServlet.java
添加用户按钮的实现
添加用户——user_manager.html
添加用户——UserInfoDao.java
添加用户——AddUserServlet.java
MD5加码 生成32位md5码
package com.newcapec.utils;
import java.security.MessageDigest;
public class MD5Utils {
/***
* MD5加码 生成32位md5码
*/
public static String stringMD5(String inStr) {
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
} catch (Exception e) {
System.out.println(e.toString());
e.printStackTrace();
return "";
}
char[] charArray = inStr.toCharArray();
byte[] byteArray = new byte[charArray.length];
for (int i = 0; i < charArray.length; i++)
byteArray[i] = (byte) charArray[i];
byte[] md5Bytes = md5.digest(byteArray);
StringBuffer hexValue = new StringBuffer();
for (int i = 0; i < md5Bytes.length; i++) {
int val = ((int) md5Bytes[i]) & 0xff;
if (val < 16)
hexValue.append("0");
hexValue.append(Integer.toHexString(val));
}
return hexValue.toString();
}
/**
* 加密解密算法 执行一次加密,两次解密
*/
public static String convertMD5(String inStr) {
char[] a = inStr.toCharArray();
for (int i = 0; i < a.length; i++) {
a[i] = (char) (a[i] ^ 't');
}
String s = new String(a);
return s;
}
// 测试主函数
public static void main(String args[]) {
String s = new String("1233");
System.out.println("原始:" + s);
System.out.println("MD5后:" + stringMD5(s));
System.out.println("加密的:" + convertMD5(s));
System.out.println("解密的:" + convertMD5(convertMD5(s)));
}
}
ResultData.java
package com.newcapec.entity;
public class ResultData<T> {
private int total;
private T rows;
private String code;
public ResultData() {
super();
}
public ResultData(int total, T rows, String code) {
super();
this.total = total;
this.rows = rows;
this.code = code;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public T getRows() {
return rows;
}
public void setRows(T rows) {
this.rows = rows;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@Override
public String toString() {
return "ResultData [total=" + total + ", rows=" + rows + ", code=" + code + "]";
}
}
分页查询用户数据
分页查询——user_manager.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<!-- 新 Bootstrap4 核心 CSS 文件 -->
<link rel="stylesheet" href="../bootstrap4/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../font-awesome-4.7.0/css/font-awesome.min.css" />
<link href="../bootstrap-table/bootstrap-table.min.css" rel="stylesheet" />
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="../jquery/jquery.min.js"></script>
<!-- bootstrap.bundle.min.js 用于弹窗、提示、下拉菜单,包含了 popper.min.js -->
<script src="../js/popper.min.js"></script>
<!-- 最新的 Bootstrap4 核心 JavaScript 文件 -->
<script src="../bootstrap4/js/bootstrap.min.js"></script>
<script src="../bootstrap-table/bootstrap-table.js"></script>
<script src="../bootstrap-table/locale/bootstrap-table-zh-CN.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>用户管理</title>
</head>
<body>
<div style="padding: 10px">
<div id="toolbar">
<button type="button" class="btn btn-info"><i class="fa fa-plus"></i> 添加</button>
</div>
<table id="userInfoTab" class="table table-hover table-bordered table-striped">
</table>
</div>
<script>
//异步加载表格数据
$('#userInfoTab').bootstrapTable({
url: '../SelectAllServlet', //请求后台的URL(*)
method: 'get', //请求方式(*)
toolbar: '#toolbar', //工具按钮用哪个容器
striped: true, //是否显示行间隔色
cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
pagination: true, //是否显示分页(*)
queryParams: function (params) {
var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
limit: params.limit, //页面大小
offset: params.offset //页码
//departmentname: $("#txt_search_departmentname").val(),
//statu: $("#txt_search_statu").val()
};
return temp;
},
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*)
pageList: [10, 15, 20, 25], //可供选择的每页的行数(*)
search: true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
strictSearch: true,
//showRefresh: true, //是否显示刷新按钮
clickToSelect: true, //是否启用点击选中行
uniqueId: "userId", //每一行的唯一标识,一般为主键列
//showToggle:true, //是否显示详细视图和列表视图的切换按钮
//cardView: false, //是否显示详细视图
columns: [{
checkbox: true
}, {
field: 'userId',
title: '用户Id'
}, {
field: 'userName',
title: '用户名'
}, {
field: 'createTime',
title: '创建时间'
}, {
field: 'updateTime',
title: '更新时间'
}]
});
</script>
</body>
</html>
分页查询——UserInfoDao.java
package com.newcapec.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.newcapec.entity.UserInfoEntity;
import com.newcapec.utils.DBUtils;
public class UserInfoDao implements BaseDao<UserInfoEntity> {
public UserInfoEntity login(String userName, String userPwd) throws ClassNotFoundException, SQLException {
UserInfoEntity userInfoEntity = null;
Connection connection = DBUtils.openConn();
String sql = "select * from user_info where user_name = ? and user_pwd = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, userName);
statement.setString(2, userPwd);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
int userId = resultSet.getInt("user_id");
Date createTime = resultSet.getTimestamp("create_time");
Date updateTime = resultSet.getTimestamp("update_time");
userInfoEntity = new UserInfoEntity(userId, userName, userPwd, createTime, updateTime);
}
resultSet.close();
statement.close();
connection.close();
return userInfoEntity;
}
@Override
public boolean insert(UserInfoEntity t) throws ClassNotFoundException, SQLException {
boolean flag = false;
// 获取与数据库的连接
Connection connection = DBUtils.openConn();
// ?表示占位符 可以解决sql注入的问题
String sql = "insert into user_info (user_name,user_pwd,create_time) values (?,?,now())";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, t.getUserName());
statement.setString(2, t.getUserPwd());
// 执行sql语句
int count = statement.executeUpdate();
if (count > 0) {
flag = true;
}
statement.close();
connection.close();
return flag;
}
@Override
public boolean deleteById(int id) throws ClassNotFoundException, SQLException {
boolean flag = false;
// 获取连接
Connection connection = DBUtils.openConn();
// sql语句
String sql = "delete from user_info where user_id = ?";
// 预处理对象
PreparedStatement statement = connection.prepareStatement(sql);
// 添加参数
statement.setInt(1, id);
// 执行预处理对象
int count = statement.executeUpdate();
if (count > 0) {
flag = true;
}
statement.close();
connection.close();
return flag;
}
@Override
public boolean update(UserInfoEntity t) throws ClassNotFoundException, SQLException {
boolean flag = false;
// 获取连接
Connection connection = DBUtils.openConn();
// sql语句
String sql = "update user_info set user_name = ?,user_pwd = ? where user_id = ?";
// 预处理对象
PreparedStatement statement = connection.prepareStatement(sql);
// 添加参数
statement.setString(1, t.getUserName());
statement.setString(2, t.getUserPwd());
statement.setInt(3, t.getUserId());
// 执行预处理对象
int count = statement.executeUpdate();
if (count > 0) {
flag = true;
}
statement.close();
connection.close();
return flag;
}
@Override
public UserInfoEntity selectById(int id) throws ClassNotFoundException, SQLException {
UserInfoEntity userInfoEntity = null;
Connection connection = DBUtils.openConn();
String sql = "select * from user_info where user_id = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, id);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
int userId = resultSet.getInt("user_id");
String userName = resultSet.getString("user_name");
String userPwd = resultSet.getString("user_pwd");
Date createTime = resultSet.getTimestamp("create_time");
Date updateTime = resultSet.getTimestamp("update_time");
userInfoEntity = new UserInfoEntity(userId, userName, userPwd, createTime, updateTime);
}
resultSet.close();
statement.close();
connection.close();
return userInfoEntity;
}
@Override
public List<UserInfoEntity> selectAll() throws ClassNotFoundException, SQLException {
List<UserInfoEntity> list = new ArrayList<>();
Connection connection = DBUtils.openConn();
String sql = "select * from user_info";
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
int userId = resultSet.getInt("user_id");
String userName = resultSet.getString("user_name");
String userPwd = resultSet.getString("user_pwd");
Date createTime = resultSet.getTimestamp("create_time");
Date updateTime = resultSet.getTimestamp("update_time");
UserInfoEntity userInfoEntity = new UserInfoEntity(userId, userName, userPwd, createTime, updateTime);
list.add(userInfoEntity);
}
resultSet.close();
statement.close();
connection.close();
return list;
}
public List<UserInfoEntity> selectByPage(int offset, int limit) throws ClassNotFoundException, SQLException {
List<UserInfoEntity> list = new ArrayList<>();
Connection connection = DBUtils.openConn();
String sql = "select * from user_info limit ?,?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, offset);
statement.setInt(2, limit);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
int userId = resultSet.getInt("user_id");
String userName = resultSet.getString("user_name");
String userPwd = resultSet.getString("user_pwd");
Date createTime = resultSet.getTimestamp("create_time");
Date updateTime = resultSet.getTimestamp("update_time");
UserInfoEntity userInfoEntity = new UserInfoEntity(userId, userName, userPwd, createTime, updateTime);
list.add(userInfoEntity);
}
resultSet.close();
statement.close();
connection.close();
return list;
}
public int selectCount() throws ClassNotFoundException, SQLException {
int count = 0;
Connection connection = DBUtils.openConn();
String sql = "SELECT COUNT(*) AS userCount FROM user_info";
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
count = resultSet.getInt("userCount");
}
resultSet.close();
statement.close();
connection.close();
return count;
}
@Override
public boolean batchDeleteById(int[] ids) throws ClassNotFoundException, SQLException {
boolean flag = false;
// 获取连接
Connection connection = DBUtils.openConn();
// sql语句
String sql = "delete from user_info where user_id = ?";
// 预处理对象
PreparedStatement statement = connection.prepareStatement(sql);
// 添加参数
for (int id : ids) {
statement.setInt(1, id);
statement.addBatch();
}
int[] result = statement.executeBatch();
// 执行预处理对象
// int count = statement.executeUpdate();
if (result.length > 0) {
flag = true;
}
statement.close();
connection.close();
return flag;
}
}
分页查询——SelectUserByPageServlet.java
package com.newcapec.servlet;
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
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 com.alibaba.fastjson.JSON;
import com.newcapec.dao.UserInfoDao;
import com.newcapec.entity.ResultData;
import com.newcapec.entity.UserInfoEntity;
/**
* Servlet implementation class SelectAllServlet
*/
@WebServlet(name = "/SelectAllServlet", urlPatterns = "/SelectAllServlet")
public class SelectUserByPageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private UserInfoDao userInfoDao = new UserInfoDao();
/**
* @see HttpServlet#HttpServlet()
*/
public SelectUserByPageServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setContentType("text/json;charset=utf-8");
// 当前页码
// 页大小
int offset = Integer.parseInt(request.getParameter("offset"));
int limit = Integer.parseInt(request.getParameter("limit"));
// bootstrap-table插件需要后台传回total/rows
ResultData<List<UserInfoEntity>> data = new ResultData<>();
try {
data.setRows(userInfoDao.selectByPage(offset, limit));
data.setTotal(userInfoDao.selectCount());
response.getWriter().write(JSON.toJSONString(data));
} catch (ClassNotFoundException | SQLException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
添加用户按钮的实现
添加用户——user_manager.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<!-- 新 Bootstrap4 核心 CSS 文件 -->
<link rel="stylesheet" href="../bootstrap4/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../font-awesome-4.7.0/css/font-awesome.min.css" />
<link href="../bootstrap-table/bootstrap-table.min.css" rel="stylesheet" />
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="../jquery/jquery.min.js"></script>
<!-- bootstrap.bundle.min.js 用于弹窗、提示、下拉菜单,包含了 popper.min.js -->
<script src="../js/popper.min.js"></script>
<!-- 最新的 Bootstrap4 核心 JavaScript 文件 -->
<script src="../bootstrap4/js/bootstrap.min.js"></script>
<script src="../bootstrap-table/bootstrap-table.js"></script>
<script src="../bootstrap-table/locale/bootstrap-table-zh-CN.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>用户管理</title>
<script type="text/javascript">
function select() {
var rows = $('#userInfoTab').bootstrapTable('getSelections');
console.log(rows);
}
function addUserInfo() {
var userName = $("#addUserName").val();
var userPwd = $("#addUserPwd").val();
var userdata = {
"userName": userName,
"userPwd": userPwd
};
$.ajax({
type: "POST",
url: "../AddUserServlet",
data: userdata,
success: function (msg) {
if (msg.flag) {
alert("成功");
} else {
alert("失败");
}
}
});
}
</script>
</head>
<body>
<div style="padding: 10px">
<div id="toolbar" style="display: flex;">
<button type="button" class="btn btn-info" data-toggle="modal" data-target="#addUserInfo"><i class="fa fa-plus"></i> 添加</button>
<button type="button" class="btn btn-danger"><i class="fa fa-minus"></i> 批量删除</button>
<input type="text" placeholder="请输入用户名" id="userName" value="zhangsan" /><button class="btn btn-info" onclick='search()'><i class="fa fa-search"></i></button>
</div>
<table id="userInfoTab" class="table table-hover table-bordered table-striped">
</table>
<!-- 模态框 -->
<div class="modal fade" id="addUserInfo">
<div class="modal-dialog">
<div class="modal-content">
<!-- 模态框头部 -->
<div class="modal-header bg-info">
<h4 class="modal-title">添加用户信息</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<!-- 模态框主体 -->
<div class="modal-body">
<form>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-user"></i></span>
</div>
<input type="text" id="addUserName" class="form-control" placeholder="Username">
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-lock"></i></span>
</div>
<input type="password" id="addUserPwd" class="form-control" placeholder="userpwd">
</div>
</form>
</div>
<!-- 模态框底部 -->
<div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal" onclick=addUserInfo()>添加</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
</div>
</div>
</div>
</div>
</div>
<script>
var icons = {
paginationSwitchDown: 'fa-caret-square-down',
paginationSwitchUp: 'fa-caret-square-up',
refresh: 'fa-refresh',
toggleOff: 'fa-toggle-off',
toggleOn: 'fa-toggle-on',
columns: 'fa-th-list',
fullscreen: 'fa-arrows-alt',
detailOpen: 'fa-plus',
detailClose: 'fa-minus'
};
//异步加载表格数据
$('#userInfoTab').bootstrapTable({
url: '../SelectAllServlet', //请求后台的URL(*)
method: 'get', //请求方式(*)
toolbar: '#toolbar', //工具按钮用哪个容器
striped: true, //是否显示行间隔色
cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
pagination: true, //是否显示分页(*)
icons: icons, //重新定义图标 修复图标加载失败问题
queryParams: function (params) {
var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
limit: params.limit, //页面大小
offset: params.offset //页码
//userName: $("#userName").val()
//statu: $("#txt_search_statu").val()
};
return temp;
},
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*)
pageList: [10, 15, 20, 25], //可供选择的每页的行数(*)
//search: true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
strictSearch: true,
showRefresh: true, //是否显示刷新按钮
clickToSelect: true, //是否启用点击选中行
uniqueId: "userId", //每一行的唯一标识,一般为主键列
//showToggle:true, //是否显示详细视图和列表视图的切换按钮
//cardView: false, //是否显示详细视图
columns: [{
checkbox: true
}, {
field: 'userId',
title: '用户Id'
}, {
field: 'userName',
title: '用户名'
}, {
field: 'createTime',
title: '创建时间'
}, {
field: 'updateTime',
title: '更新时间'
}, {
field: 'userId',
title: '编辑',
formatter: function (value, row, index) {
var e = '<a class="btn btn-waring" href="#" mce_href="#" title="编辑" onclick="edit(\''
+ row.id
+ '\')"><i class="fa fa-edit"></i></a> ';
return e;
}
}]
});
</script>
</body>
</html>
添加用户——UserInfoDao.java
package com.newcapec.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.newcapec.entity.UserInfoEntity;
import com.newcapec.utils.DBUtils;
public class UserInfoDao implements BaseDao<UserInfoEntity> {
public UserInfoEntity login(String userName, String userPwd) throws ClassNotFoundException, SQLException {
UserInfoEntity userInfoEntity = null;
Connection connection = DBUtils.openConn();
String sql = "select * from user_info where user_name = ? and user_pwd = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, userName);
statement.setString(2, userPwd);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
int userId = resultSet.getInt("user_id");
Date createTime = resultSet.getTimestamp("create_time");
Date updateTime = resultSet.getTimestamp("update_time");
userInfoEntity = new UserInfoEntity(userId, userName, userPwd, createTime, updateTime);
}
resultSet.close();
statement.close();
connection.close();
return userInfoEntity;
}
@Override
public boolean insert(UserInfoEntity t) throws ClassNotFoundException, SQLException {
boolean flag = false;
// 获取与数据库的连接
Connection connection = DBUtils.openConn();
// ?表示占位符 可以解决sql注入的问题
String sql = "insert into user_info (user_name,user_pwd,create_time) values (?,?,now())";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, t.getUserName());
statement.setString(2, t.getUserPwd());
// 执行sql语句
int count = statement.executeUpdate();
if (count > 0) {
flag = true;
}
statement.close();
connection.close();
return flag;
}
@Override
public boolean deleteById(int id) throws ClassNotFoundException, SQLException {
boolean flag = false;
// 获取连接
Connection connection = DBUtils.openConn();
// sql语句
String sql = "delete from user_info where user_id = ?";
// 预处理对象
PreparedStatement statement = connection.prepareStatement(sql);
// 添加参数
statement.setInt(1, id);
// 执行预处理对象
int count = statement.executeUpdate();
if (count > 0) {
flag = true;
}
statement.close();
connection.close();
return flag;
}
@Override
public boolean update(UserInfoEntity t) throws ClassNotFoundException, SQLException {
boolean flag = false;
// 获取连接
Connection connection = DBUtils.openConn();
// sql语句
String sql = "update user_info set user_name = ?,user_pwd = ? where user_id = ?";
// 预处理对象
PreparedStatement statement = connection.prepareStatement(sql);
// 添加参数
statement.setString(1, t.getUserName());
statement.setString(2, t.getUserPwd());
statement.setInt(3, t.getUserId());
// 执行预处理对象
int count = statement.executeUpdate();
if (count > 0) {
flag = true;
}
statement.close();
connection.close();
return flag;
}
@Override
public UserInfoEntity selectById(int id) throws ClassNotFoundException, SQLException {
UserInfoEntity userInfoEntity = null;
Connection connection = DBUtils.openConn();
String sql = "select * from user_info where user_id = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, id);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
int userId = resultSet.getInt("user_id");
String userName = resultSet.getString("user_name");
String userPwd = resultSet.getString("user_pwd");
Date createTime = resultSet.getTimestamp("create_time");
Date updateTime = resultSet.getTimestamp("update_time");
userInfoEntity = new UserInfoEntity(userId, userName, userPwd, createTime, updateTime);
}
resultSet.close();
statement.close();
connection.close();
return userInfoEntity;
}
@Override
public List<UserInfoEntity> selectAll() throws ClassNotFoundException, SQLException {
List<UserInfoEntity> list = new ArrayList<>();
Connection connection = DBUtils.openConn();
String sql = "select * from user_info";
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
int userId = resultSet.getInt("user_id");
String userName = resultSet.getString("user_name");
String userPwd = resultSet.getString("user_pwd");
Date createTime = resultSet.getTimestamp("create_time");
Date updateTime = resultSet.getTimestamp("update_time");
UserInfoEntity userInfoEntity = new UserInfoEntity(userId, userName, userPwd, createTime, updateTime);
list.add(userInfoEntity);
}
resultSet.close();
statement.close();
connection.close();
return list;
}
public List<UserInfoEntity> selectByPage(int offset, int limit) throws ClassNotFoundException, SQLException {
List<UserInfoEntity> list = new ArrayList<>();
Connection connection = DBUtils.openConn();
String sql = "select * from user_info limit ?,?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, offset);
statement.setInt(2, limit);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
int userId = resultSet.getInt("user_id");
String userName = resultSet.getString("user_name");
String userPwd = resultSet.getString("user_pwd");
Date createTime = resultSet.getTimestamp("create_time");
Date updateTime = resultSet.getTimestamp("update_time");
UserInfoEntity userInfoEntity = new UserInfoEntity(userId, userName, userPwd, createTime, updateTime);
list.add(userInfoEntity);
}
resultSet.close();
statement.close();
connection.close();
return list;
}
public int selectCount() throws ClassNotFoundException, SQLException {
int count = 0;
Connection connection = DBUtils.openConn();
String sql = "SELECT COUNT(*) AS userCount FROM user_info";
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
count = resultSet.getInt("userCount");
}
resultSet.close();
statement.close();
connection.close();
return count;
}
}
添加用户——AddUserServlet.java
package com.newcapec.servlet;
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
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 com.alibaba.fastjson.JSON;
import com.newcapec.dao.UserInfoDao;
import com.newcapec.entity.UserInfoEntity;
/**
* Servlet implementation class AddUserServlet
*/
@WebServlet(name = "/AddUserServlet", urlPatterns = "/AddUserServlet")
public class AddUserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private UserInfoDao userInfoDao = new UserInfoDao();
/**
* @see HttpServlet#HttpServlet()
*/
public AddUserServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/json;charset=utf-8");
String userName = request.getParameter("userName");
String userPwd = request.getParameter("userPwd");
UserInfoEntity userInfoEntity = new UserInfoEntity();
userInfoEntity.setUserName(userName);
userInfoEntity.setUserPwd(userPwd);
try {
boolean flag = userInfoDao.insert(userInfoEntity);
HashMap<String, Boolean> result = new HashMap<>();
result.put("flag", flag);
response.getWriter().write(JSON.toJSONString(result));
} catch (ClassNotFoundException | SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
有点难~
还没有评论,来说两句吧...