目录
项目使用:毕业设计、课程设计、大作业、项目练习、学习演示等...
想要源码的童鞋可以+本人QQ:203114746、QQ邮箱:203114746@qq.com、想学习的童鞋或者对IT行业感兴趣的也可以找我请教哦!!!本人是一个很热情的男孩子喔
1. 引入EasyUI文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 保存项目名 -->
<%
request.setAttribute("cxt", request.getContextPath());
%>
<!-- 保存js项目名 -->
<script type="text/javascript">
var cxt="${cxt}";
</script>
<!-- 引入EasyUI文件 -->
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.5.2/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.5.2/themes/icon.css">
<script type="text/javascript" src="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.5.2/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.5.2/jquery.easyui.min.js"></script>
2. 网站首页布局
2.1 前端代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!-- 引入文件 -->
<%@ include file="head.jsp" %>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>平台首页</title>
<script type="text/javascript">
$(function(){
/* 给树形菜单添加数据 */
$('#myUl').tree({
url: cxt+"/queryModuleServlet.do",
/* 给树标签添加双击 */
onDblClick: function(node){
/* 判断如果是父标签就不增加 */
var nodes = $('#myUl').tree('getChildren', node.target);// 获取未选择节点
if(nodes<=0){
/* 判断是否重复 */
var index = $('#myTb').tabs('exists',node.text);
if(!index){
/* 增加表格 */
$('#myTb').tabs('add',{
title:node.text,
content:'<iframe src='+cxt+'/'+node.url+' frameborder=0px style="width: 100%; height: 100%;"></iframe>', //内容、跳转指定的页面
closable:true,
});
}else{//不存在
$('#myTb').tabs('select',node.text);
}
}
}
});
})
</script>
</head>
<body class="easyui-layout">
<!-- 面板 -->
<div data-options="region:'north',title:'上',split:true" style="height:100px;">
<center><h1 style="font-family: '华文行楷'">蒋明辉工作室后台管理</h1></center>
</div>
<div data-options="region:'south',title:'下',split:true" style="height:100px;">
<h2>©所有权限归蒋明辉工作室</h2>
</div>
<div data-options="region:'west',title:'左',split:true" style="width:200px;">
<!-- 列表 -->
<ul id="myUl" class="easyui-tree">
</ul>
</div>
<div data-options="region:'center',title:'中间 '" style="padding:5px;background:#eee;">
<div id="myTb" class="easyui-tabs" style="width:100%;height:100%;">
<div title="首页" style="padding:0px;display:none;" >
<img style="width:100%;height:100%;" title="我好喜欢你" alt="加载失败" src="${cxt }/static/images/6.webp">
</div>
</div>
</div>
</body>
</html>
2.2 Servlet代码
package com.jmh.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
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.jmh.biz.IModuleBiz;
import com.jmh.biz.imp.ModuleBiz;
import com.jmh.entity.Module;
/**
* 绑定左侧Tree
* @author 蒋明辉
*
*/
@WebServlet("/queryModuleServlet.do")
public class QueryModuleServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
//设置编码
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//获取对象
PrintWriter out = resp.getWriter();
//处理业务逻辑代码
IModuleBiz imb=new ModuleBiz();
//查询
List<Module> queryPid = imb.queryPid(-1);
//转换JSon格式
String jsonString = JSON.toJSONString(queryPid);
out.print(jsonString);
out.flush();
out.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
2.3 dao层接口代码
package com.jmh.dao;
import java.sql.SQLException;
import java.util.List;
import com.jmh.entity.Module;
/**
* 接口
* @author 蒋明辉
*
*/
public interface IModuleDao {
/**
* 绑定数据
* @param pid 父节点编号
* @return
* @throws SQLException
*/
List<Module> queryPid(Integer pid) throws SQLException;
}
2.4 dao层实现类代码
package com.jmh.dao.imp;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.jmh.dao.IModuleDao;
import com.jmh.entity.Module;
import com.jmh.util.DBAccess;
/**
* 实现类
* @author 蒋明辉
*
*/
public class ModuleDao implements IModuleDao{
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
private List<Module> modulels;
private Module module;
private String sql;
private int n;
/**
* 绑定数据
* @param pid 父节点编号
* @return
* @throws SQLException
*/
@Override
public List<Module> queryPid(Integer pid) throws SQLException {
modulels=new ArrayList<>();
con=DBAccess.getConnection();
sql="select id,pid,text,icon,url,sort from t_module where pid=? order by sort asc";
ps=con.prepareStatement(sql);
ps.setInt(1, pid);
rs=ps.executeQuery();
while(rs.next()) {
module=new Module(rs.getInt("id"), rs.getInt("pid"), rs.getString("text"), rs.getString("icon"), rs.getString("url"), rs.getInt("sort"), null);
modulels.add(module);
}
return modulels;
}
}
2.5 biz层接口代码
package com.jmh.biz;
import java.sql.SQLException;
import java.util.List;
import com.jmh.entity.Module;
/**
* 接口
* @author 蒋明辉
*
*/
public interface IModuleBiz {
/**
* 绑定数据
* @param pid 父节点编号
* @return
* @throws SQLException
*/
List<Module> queryPid(Integer pid) throws SQLException;
}
2.6 biz层实现类代码
package com.jmh.biz.imp;
import java.sql.SQLException;
import java.util.List;
import com.jmh.biz.IModuleBiz;
import com.jmh.dao.IModuleDao;
import com.jmh.dao.imp.ModuleDao;
import com.jmh.entity.Module;
public class ModuleBiz implements IModuleBiz{
IModuleDao imd=new ModuleDao();
@Override
public List<Module> queryPid(Integer pid) throws SQLException {
List<Module> queryPid = imd.queryPid(pid);
for (Module module : queryPid) {
if(null==module.getUrl()||"".equals(module.getUrl())) {
List<Module> queryPid2 = queryPid(module.getId());
module.setChildren(queryPid2);
}
}
return queryPid;
}
}
3. 书本展示模块
-
展示全部书本 and 模糊查询
-
增加书本
-
编辑书本
-
删除书本
3.1 前端代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!-- 引入 -->
<%@ include file="../../home/head.jsp" %>
<script type="text/javascript" src="${cxt }/static/js/bookList.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 查询组件 -->
<div style="padding: 20px">
<span style="font-weight: bolder;font-size: 15px">书本名称:</span><input id="bookName" class="easyui-textbox" data-options="iconCls:'icon-search'" style="width:300px;">
<a id="search" class="easyui-linkbutton" data-options="iconCls:'icon-search'">查询</a>
</div>
<!-- 表格数据组件 -->
<div class="easyui-panel" style="padding:10px" data-options="fit:true, border:false">
<table class="easyui-datagrid" id="myTable" style="width: 100%;height: 80%;"></table>
</div>
<!-- 工具栏组件 -->
<div id="toolbar" style="text-align: right;">
<a id="editBook" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true" /a>
<a id="addBook" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true" /a>
<a id="removeBook" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true" /a>
</div>
<!-- 对话框组件 -->
<div id="myToolbar"></div>
</body>
</html>
3.2 js代码
$(function(){
// 通过 id选择器获取表格
$("#myTable").datagrid({
// 绑定表头
columns:[[
{field:'bookId',title:'书本ID',width:100,align:'center'},
{field:'bookName',title:'名称',width:100,align:'center'},
{field:'bookPrice',title:'价格',width:100,align:'center'},
{field:'bookType',title:'类型',width:100,align:'center'}
]],
// 向后台发送 ajax请求
url: cxt+'/queryBookServlet.do',
pagination: true,// 设置是否显示分页标签
singleSelect:true,// 如果为true,则只允许选择一行(否则点一行选择一行,很丑)
loadMsg:"正在加载数据...",//加载数据的时候显示提示消息
toolbar: '#toolbar'
});
/* 设置分页组件的文字描述 */
var p = $('#myTable').datagrid('getPager');
$(p).pagination({
pageSize: 10,//每页显示的记录条数,默认为10
pageList: [10,20,30,50,60,70,80,90,100],//可以设置可以选择的页大小(下拉框的内容)
beforePageText: '第',//页数文本框前显示的汉字
afterPageText: '页 共 {pages} 页',
displayMsg: '当前显示 {from} - {to} 条记录 共 {total} 条记录',
});
//加载数据的方法
function query(){
$("#myTable").datagrid('load',{
"bookName":$("#bookName").val()
})
}
//给查询按钮添加点击事件
$("#search").click(function(){
query();
})
//给增加按钮添加点击事件
$("#addBook").click(function(){
open();
})
//给修改按钮添加点击事件
$("#editBook").click(function(){
var row=$("#myTable").datagrid("getSelected");
if(null==row){//为空
$.messager.alert("警告","请选中你要修改的行");
return;
}
open(row);
})
//给删除按钮添加点击事件
$("#removeBook").click(function(){
var row=$("#myTable").datagrid("getSelected");
if(null!=row){//选中的行不为空
$.messager.confirm('确认','您确认想要删除记录吗?',function(r){
if (r){//确认删除
//使用无刷新跳转页面
$.ajax({
url:cxt+'/deleteBookServlet.do',//拿数据的地址
data:{
"bookId":row.bookId
},//很重要
type:'post',//类型
dataType:'JSON',//前端希望后端所返回的数据格式
success:function(data){
if(data.s){//删除成功
$.messager.alert("消息",data.m);
//调用刷新的方法 实现实时刷新
query();
}else{//删除失败
$.messager.alert("警告",data.m);
}
}
})
}
});
}else{//选中的行为空
$.messager.alert('警告','请选中你要删除的行!');
}
})
//共用方法
function open(row){
//初始
title='增加书本';
reqServlet='/insertBookServlet.do';
if(null!=row){//row有值
title='修改书本';
reqServlet='/updateBookServlet.do';
}
$('#myToolbar').dialog({
title: title,
width: 400,
height: 251,
closed: false,
cache: false,
href: cxt+'/jsp/book/editBook.jsp', //跳转页面表单页面
modal: true ,
//添加按钮组
buttons:[{
text:'提交',
handler:function(){
//无刷新
$.ajax({
url:cxt+reqServlet,//拿数据的地址
data:$("#bookForm").serialize(),//很重要
type:'post',//类型
dataType:'JSON',//前端希望后端所返回的数据格式
success:function(data){
if(data.s){//增加/修改成功
$.messager.alert("消息",data.m);
//调用刷新的方法 实现实时刷新
query();
//隐藏弹出框
$('#myToolbar').dialog('close');
}else{//增加/修改失败
$.messager.alert("警告",data.m);
}
}
})
}
},{
text:'关闭',
handler:function(){
$('#myToolbar').dialog('close');
}
}],
onLoad:function(){
//如果row有值就绑定数据
if(row){
$('#bookForm').form('load',row);// 读取表单的URL
}
}
})
}
});
3.3 点击编辑or增加按钮打开的页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!-- 引入 -->
<%@ include file="../../home/head.jsp" %>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<div>
<form id="bookForm">
<input name="bookId" type="hidden"/><!--定义一个隐藏的文本框 -->
<!-- 书本名称 -->
<div style="margin: 15px;">
<label for="name">书名:</label>
<input class="easyui-textbox" name="bookName" style="width:300px"
data-options="required:true">
</div>
<!-- 书本价格 -->
<div style="margin: 15px;">
<label for="price">价格:</label>
<input class="easyui-textbox" name="bookPrice" style="width:300px"
data-options="required:true">
</div>
<!-- 书本类型 -->
<div style="margin: 15px;">
<label for="type">类型:</label>
<input class="easyui-textbox" name="bookType" style="width:300px" data-options="required:true">
</div>
</form>
</div>
</body>
</html>
3.4 查询and模糊查询Servlet代码
package com.jmh.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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 javax.servlet.http.HttpSession;
import com.alibaba.fastjson.JSON;
import com.jmh.biz.IBookBiz;
import com.jmh.biz.imp.BookBiz;
import com.jmh.entity.Book;
/**
* 查询所有t_book表数据
* @author 蒋明辉
*
*/
@WebServlet("/queryBookServlet.do")
public class QueryBookServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
//设置编码
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//获取对象
HttpSession session = req.getSession();
PrintWriter out = resp.getWriter();
//设置当前页码的参数
Integer pageIndex=1;
//获取前端传来的参数
String bookName = req.getParameter("bookName");//书本名称关键字
String page = req.getParameter("page");//页码
String rows = req.getParameter("rows");//页大小
//判断如果前端传来的页码有值就赋给页码变量
if(null!=page&&!"".equals(page)) {
pageIndex=Integer.parseInt(page);
}
//处理业务逻辑层代码
IBookBiz ibb=new BookBiz();
//查询全部方法
List<Book> query = ibb.query(bookName, pageIndex, Integer.parseInt(rows));
//查询总数据量方法
Integer sumCount = ibb.sumCount(bookName);
//将获取到的数据保存到map集合里面
Map<Object, Object> m=new HashMap<Object, Object>();
m.put("rows", query);//总数据
m.put("total", sumCount);//总数据量
//转换为JOSN格式
String jsonString = JSON.toJSONString(m);
//输送到前端
out.print(jsonString);
out.flush();
out.close();
} catch (NumberFormatException | SQLException e) {
e.printStackTrace();
}
}
}
3.5 增加书本Servlet代码
package com.jmh.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
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 javax.servlet.http.HttpSession;
import com.alibaba.fastjson.JSON;
import com.jmh.biz.IBookBiz;
import com.jmh.biz.imp.BookBiz;
import com.jmh.entity.Book;
/**
* 增加书本
* @author 蒋明辉
*
*/
@WebServlet("/insertBookServlet.do")
public class InsertBookServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//获取对象
HttpSession session = req.getSession();
PrintWriter out=resp.getWriter();
//获取前端获取来的参数
String bookName=req.getParameter("bookName");//书本名称
String bookPrice=req.getParameter("bookPrice");//书本价格
String bookType=req.getParameter("bookType");//书本类型
//实例化对象
Book book=new Book();
book.setBookName(bookName);
book.setBookPrice(Double.parseDouble(bookPrice));
book.setBookType(bookType);
//处理业务逻辑代码
IBookBiz ibb=new BookBiz();
Map<Object, Object> m=new HashMap<>();
try {
ibb.insert(book);
//没有进入SQLException代表增加成功
m.put("s", true);
m.put("m", "增加成功");
} catch (SQLException e) {
//代表失败
m.put("s", false);
m.put("m", "增加失败");
e.printStackTrace();
}
String jsonString = JSON.toJSONString(m);
out.print(jsonString);
out.flush();
out.close();
}
}
3.6 编辑书本Servlet代码
package com.jmh.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
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.jmh.biz.IBookBiz;
import com.jmh.biz.imp.BookBiz;
import com.jmh.entity.Book;
/**
* 修改书本
* @author 蒋明辉
*
*/
@WebServlet("/updateBookServlet.do")
public class UpdateBookServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//获取对象
PrintWriter out = resp.getWriter();
//获取前端传送的参数
String bookId=req.getParameter("bookId");
String bookName=req.getParameter("bookName");
String bookPrice=req.getParameter("bookPrice");
String bookType=req.getParameter("bookType");
/*System.out.println(bookId);
System.out.println(bookName);
System.out.println(bookPrice);
System.out.println(bookType);*/
//处理业务逻辑代码
IBookBiz ibb=new BookBiz();
//实例化一个书本对象
Book book=new Book();
book.setBookId(Integer.parseInt(bookId));
book.setBookName(bookName);
book.setBookPrice(Double.parseDouble(bookPrice));
book.setBookType(bookType);
//定义map集合
Map<Object, Object> m=new HashMap<>();
try {
ibb.update(book);
//成功
m.put("s", true);
m.put("m", "修改成功");
} catch (SQLException e) {
//失败
m.put("s", false);
m.put("m", "修改失败");
e.printStackTrace();
}
//转换为json格式 并输出到前端
String jsonString = JSON.toJSONString(m);
out.print(jsonString);
out.flush();
out.close();
}
}
3.7 删除书本Servlet代码
package com.jmh.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
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 javax.servlet.http.HttpSession;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.support.hsf.HSFJSONUtils;
import com.jmh.biz.IBookBiz;
import com.jmh.biz.imp.BookBiz;
/**
* 删除书本
* @author 蒋明辉
*
*/
@WebServlet("/deleteBookServlet.do")
public class DeleteBookServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//获取对象
HttpSession session = req.getSession();
PrintWriter out=resp.getWriter();
//获取前端传来的参数
String bookId = req.getParameter("bookId");
System.out.println("要删除的编号"+bookId);
//处理业务逻辑代码
IBookBiz ibb=new BookBiz();
//定义map集合
Map<Object, Object> m=new HashMap<>();
try {
ibb.delete(bookId);
m.put("s", true);
m.put("m", "删除成功!");
} catch (SQLException e) {
//删除失败
m.put("s", false);
m.put("m", "删除失败!");
e.printStackTrace();
}
//输送到前端
String jsonString = JSON.toJSONString(m);
//输送到前端
out.print(jsonString);
out.flush();
out.close();
}
}
3.8 dao层接口代码
package com.jmh.dao;
import java.sql.SQLException;
import java.util.List;
import com.jmh.entity.Book;
public interface IBookDao {
/**
* 带有模糊查询的分页方法
* @param bookName 模糊查询关键字
* @param pageIndex 当前开始的条数
* @param pageSize 页大小
* @return 结果集对象
* @throws SQLException 异常
*/
List<Book> query(String bookName, Integer pageIndex, Integer pageSize) throws SQLException;
/**
* 带有模糊查询的分页方法
* @param bookName 模糊查询关键字
* @param pageIndex 当前开始的条数
* @param pageSize 页大小
* @return 结果集对象
* @throws SQLException 异常
*/
Integer sumCount(String bookName) throws SQLException;
/**
* 增加书本的方法
* @param b 书本对象
* @throws SQLException 异常
*/
void insert(Book b) throws SQLException;
/**
* 根据书本编号删除书本的方法
* @param bookid 书本编号
* @throws SQLException
*/
void delete(String bookid) throws SQLException;
/**
* 根据书本编号修改书本信息的方法
* @param book 书本对象
* @throws SQLException
*/
void update(Book book) throws SQLException;
}
3.9 dao层实现类代码
package com.jmh.dao.imp;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.jmh.dao.IBookDao;
import com.jmh.entity.Book;
import com.jmh.entity.Module;
import com.jmh.util.DBAccess;
public class BookDao implements IBookDao{
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
private List<Book> bookls;
private Book book;
private String sql;
private Integer n;
private Integer sumCount;//总数据量
/**
* 带有模糊查询的分页方法
* @param bookName 模糊查询关键字
* @param pageIndex 当前开始的条数
* @param pageSize 页大小
* @return 结果集对象
* @throws SQLException 异常
*/
@Override
public List<Book> query(String bookName,Integer pageIndex,Integer pageSize) throws SQLException {//模糊查询关键字、最大页码、页大小
Integer begin=(pageIndex-1)*pageSize;
bookls=new ArrayList<>();
con=DBAccess.getConnection();
//纯纯的分页查询
sql="select bookId,bookName,bookPrice,bookType,bookNamePinYin from t_book where bookId limit ?,? ";
if(null!=bookName&&!"".equals(bookName)) {//带模糊查询的分页
sql="select bookId,bookName,bookPrice,bookType,bookNamePinYin from t_book where bookName like ? or bookNamePinYin like ? and bookId limit ?,?";
}
ps=con.prepareStatement(sql);
//判断进入了哪一个程序就给哪一个程序赋值
if(null!=bookName&&!"".equals(bookName)) {
ps.setString(1, "%"+bookName+"%");//模糊查询关键字
ps.setString(2, "%"+bookName+"%");//拼音模糊查询关键字
ps.setInt(3, begin);//每页开始的条数
ps.setInt(4, pageSize);//页大小
}else {//分页字段赋值
ps.setInt(1, begin);//每页开始的条数
ps.setInt(2, pageSize);//页大小
}
rs=ps.executeQuery();
while(rs.next()) {
book=new Book(rs.getInt("bookId"), rs.getString("bookName"), rs.getDouble("bookPrice"), rs.getString("bookType"), rs.getString("bookNamePinYin"));
bookls.add(book);
}
DBAccess.close(con, ps, rs);
return bookls;
}
/**
* 总数据量的方法
* @param bookName 模糊查询关键字
* @return 影响条数
* @throws SQLException 异常
*/
@Override
public Integer sumCount(String bookName) throws SQLException {
con=DBAccess.getConnection();
sql="select count(0) from t_book";
//判断如果是模糊查询就追加sql语句
if(null!=bookName&&!"".equals(bookName)) {
sql+=" where bookName like ? or bookNamePinYin like ?";
}
ps=con.prepareStatement(sql);
//如果是模糊查询就给字段赋值
if(null!=bookName&&!"".equals(bookName)) {
ps.setString(1, "%"+bookName+"%");//模糊查询关键字
ps.setString(2, "%"+bookName+"%");//拼音模糊查询关键字
}
rs=ps.executeQuery();
if(rs.next()) {
//给素=所有影响条数赋给定义的变量
sumCount=rs.getInt(1);
}
DBAccess.close(con, ps, rs);
return sumCount;
}
/**
* 增加书本的方法
* @param b 书本对象
* @throws SQLException 异常
*/
@Override
public void insert(Book b) throws SQLException {
con=DBAccess.getConnection();
sql="insert into t_book(bookName,bookPrice,bookType,BookNamePinYin) values"
+ "(?,?,?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, b.getBookName());
ps.setDouble(2, b.getBookPrice());
ps.setString(3, b.getBookType());
ps.setString(4, b.getBookNamePinYin());
n=ps.executeUpdate();
DBAccess.close(con, ps, rs);
}
/**
* 根据书本编号删除书本的方法
* @param bookid 书本编号
* @throws SQLException
*/
@Override
public void delete(String bookid) throws SQLException {
con=DBAccess.getConnection();
sql="delete from t_book where bookId=?";
ps=con.prepareStatement(sql);
ps.setString(1, bookid);
ps.executeUpdate();
DBAccess.close(con, ps, rs);
}
/**
* 根据书本编号修改书本信息的方法
* @param book 书本对象
* @throws SQLException
*/
@Override
public void update(Book book) throws SQLException {
con=DBAccess.getConnection();
sql="update t_book set bookName=?,bookPrice=?,bookType=? where bookId=?";
ps=con.prepareStatement(sql);
//给占位符赋值
ps.setString(1, book.getBookName());
ps.setDouble(2, book.getBookPrice());
ps.setString(3, book.getBookType());
ps.setInt(4, book.getBookId());
ps.executeUpdate();
DBAccess.close(con, ps, rs);
}
}
4.0 biz层接口代码
package com.jmh.biz;
import java.sql.SQLException;
import java.util.List;
import com.jmh.entity.Book;
public interface IBookBiz {
/**
* 带有模糊查询的分页方法
* @param bookName 模糊查询关键字
* @param pageIndex 当前开始的条数
* @param pageSize 页大小
* @return 结果集对象
* @throws SQLException 异常
*/
List<Book> query(String bookName, Integer pageIndex, Integer pageSize) throws SQLException;
/**
* 带有模糊查询的分页方法
* @param bookName 模糊查询关键字
* @param pageIndex 当前开始的条数
* @param pageSize 页大小
* @return 结果集对象
* @throws SQLException 异常
*/
Integer sumCount(String bookName) throws SQLException;
/**
* 增加书本的方法
* @param b 书本对象
* @throws SQLException 异常
*/
void insert(Book b) throws SQLException;
/**
* 根据书本编号删除书本的方法
* @param bookid 书本编号
* @throws SQLException
*/
void delete(String bookid) throws SQLException;
/**
* 根据书本编号修改书本信息的方法
* @param book 书本对象
* @throws SQLException
*/
void update(Book book) throws SQLException;
}
4.1 biz层实现类代码
package com.jmh.biz.imp;
import java.sql.SQLException;
import java.util.List;
import com.jmh.biz.IBookBiz;
import com.jmh.dao.IBookDao;
import com.jmh.dao.imp.BookDao;
import com.jmh.entity.Book;
public class BookBiz implements IBookBiz{
IBookDao ibd=new BookDao();
@Override
public List<Book> query(String bookName, Integer pageIndex, Integer pageSize) throws SQLException {
// TODO Auto-generated method stub
return ibd.query(bookName, pageIndex, pageSize);
}
@Override
public Integer sumCount(String bookName) throws SQLException {
// TODO Auto-generated method stub
return ibd.sumCount(bookName);
}
@Override
public void insert(Book b) throws SQLException {
ibd.insert(b);
}
@Override
public void delete(String bookid) throws SQLException {
ibd.delete(bookid);
}
@Override
public void update(Book book) throws SQLException {
ibd.update(book);
}
}