1.创建一个表代码在下面
create table t_book (
id integer not null,
bookname varchar(50) not null,
price float not null,
booktype varchar(40) not null,
primary key (id)
);
-- 测试数据
insert into t_book(id,bookname,price,booktype) values (1,'西游记00088',180,'名著');
insert into t_book(id,bookname,price,booktype) values (2,'红楼梦001',110.08,'名著');
insert into t_book(id,bookname,price,booktype) values (3,'倚天屠龙记',150.16,'武侠');
insert into t_book(id,bookname,price,booktype) values (4,'聊斋志异',100.12,'玄幻');
insert into t_book(id,bookname,price,booktype) values(5,'永生',110.11,'玄幻');
insert into t_book(id,bookname,price,booktype) values(6,'武动乾坤',90.89,'玄幻');
insert into t_book(id,bookname,price,booktype) values(7,'完美世界',100,'玄幻');
insert into t_book(id,bookname,price,booktype) values(8,'万域之王',56.5,'玄幻');
insert into t_book(id,bookname,price,booktype) values(9,'遮天001',130.9,'玄幻');
insert into t_book(id,bookname,price,booktype) values(10,'凡人修仙传',200,'修仙');
insert into t_book(id,bookname,price,booktype) values(11,'倚天屠龙记',150.16,'武侠');
insert into t_book(id,bookname,price,booktype) values(12,'斗破苍穹',115.07,'玄幻');
insert into t_book(id,bookname,price,booktype) values(13,'超级兵王',145,'言情');
insert into t_book(id,bookname,price,booktype) values(14,'武极天下',45.55,'玄幻');
insert into t_book(id,bookname,price,booktype) values(15,'聊斋志异',100.12,'玄幻');
insert into t_book(id,bookname,price,booktype) values(16,'永生',110.11,'玄幻');
insert into t_book(id,bookname,price,booktype) values(17,'武动乾坤',90.89,'玄幻');
insert into t_book(id,bookname,price,booktype) values(18,'完美世界',100,'玄幻');
insert into t_book(id,bookname,price,booktype) values(19,'万域之王',56.5,'玄幻');
insert into t_book(id,bookname,price,booktype) values(20,'Java',1000,'修仙');
insert into t_book(id,bookname,price,booktype) values(21,'娃哈哈',100,'玄幻');
insert into t_book(id,bookname,price,booktype) values(22,'呼啸山庄',123,'mz');
insert into t_book(id,bookname,price,booktype) values(23,'平凡的世界',123,'mz');
insert into t_book(id,bookname,price,booktype) values(24,'大红底',12,'xs');
2.搭建前端界面代码如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<%@include file="/common/head.jsp"%>
<title>图书</title>
<script type="text/javascript">
$(function(){
$('#dg').datagrid({
url:ctx+'/bookServlet',
toolbar: '#tb',
pagination:true,
singleSelect:true,
columns:[[
{field:'id',title:'代码',width:100},
{field:'book_name',title:'书本名称',width:100},
{field:'book_price',title:'书本价格',width:100,align:'right'},
{field:'book_type',title:'书本类型',width:100}
]]
});
$("#qrybtn").click(function(){
qry();
});
function qry(){
$('#dg').datagrid("reload",{
bookName:$("#bookName").val()
});
}
});
</script>
</head>
<body>
<form action="/bookServlet" method="post">
<label for="name">书名:</label>
<input id="bookName" class="easyui-validatebox" type="text" name="name" data-options="required:true" />
<a id="qrybtn" href="#" class="easyui-linkbutton" >查询</a>
</form>
<div style="margin-top:10px;">
<table id="dg"></table>
</div>
<div id="tb" style="text-align:right;">
<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true"></a>
<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true"></a>
<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true"></a>
</div>
</body>
</html>
3.dao层的开发
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import model.Book;
import util.DBHerpr;
public class Bookdao implements IBokkdao{
@Override
public List<Book> getBook(String name,int pageindex,int pageSize){
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
List<Book> ls=new ArrayList<Book>();
try {
String sql="select id,bookname,price,booktype,rownum as rid from t_book ";
if(name!=null&&!"".equals(null)) {
sql+=" where bookname like ?";
}
sql="select * from ("+sql+")b where b.rid between ? and ? ";
con=DBHerpr.getCon();
ps=con.prepareStatement(sql);
int start=(pageindex-1)*pageSize+1;
int end=pageindex*pageSize;
if(name!= null&&!"".equals(name)) {
ps.setString(1, name+"%");
ps.setInt(2, start);
ps.setInt(3, end);
}else{
ps.setInt(1, start);
ps.setInt(2, end);
}
rs=ps.executeQuery();
while(rs.next()) {
Book b=new Book();
b.setId(rs.getInt("id"));
b.setBook_name(rs.getString("bookname"));
b.setBook_price(rs.getBigDecimal("price"));
b.setBook_type(rs.getString("booktype"));
ls.add(b);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHerpr.myClose(con, ps, rs);
}
return ls;
}
@Override
public int getTotalpage(String name) {
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
int n=0;
try {
String sql="select count(*) from t_book";
con=DBHerpr.getCon();
if(name!=null&&!"".equals(name)) {
sql+=" where bookname like ?";
}
ps=con.prepareStatement(sql);
if(name!=null&&!"".equals(name)) {
sql+=" where bookname like ?";
ps.setString(1, name+"%");
}
rs=ps.executeQuery();
if(rs.next()) {
n=rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
}
return n;
}
public static void main(String[] args) {
IBokkdao dao=new Bookdao();
// List<Book> ls=dao.getBook("货", 1, 10);
// ls.forEach(t->System.out.println(t));
// int n=dao.getTotalpage("货");
// System.out.println(n);
}
}
4.service层的开发
package servie;
import java.util.ArrayList;
import java.util.List;
import dao.Bookdao;
import dao.IBokkdao;
import model.Book;
public class Bookservie implements IBookservie{
private IBokkdao dao=new Bookdao();
@Override
public List<Book> getBook(String name,int pageindex,int pageSize){
return dao.getBook(name, pageindex, pageSize);
}
@Override
public int getTotalPage(String name) {
return dao.getTotalpage(name);
}
}
5.servle层的开发
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
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 com.alibaba.fastjson.JSON;
import model.Book;
import servie.Bookservie;
import servie.IBookservie;
@WebServlet("/bookServlet")
public class Bookservlet extends HttpServlet{
private IBookservie bk=new Bookservie();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html; charset=UTF-8");
String name=req.getParameter("bookName");
String pageindex=req.getParameter("page");
int pid=pageindex==null ||"".equals(pageindex) ?1:Integer.parseInt(pageindex);
int pageSize=10;
List<Book> books=bk.getBook(name, pid, pageSize);
int total=bk.getTotalPage(name);
Map<String, Object> date=new HashMap<>();
date.put("total", total);
date.put("rows", books);
String json=JSON.toJSONString(date);
PrintWriter out= resp.getWriter();
out.write(json);
out.flush();
out.close();
}
}
6.完善前端界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@include file="common/head.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
$(function(){
$('#funcTree').tree({
url:ctx +'/moduleServlet',
onDblClick:function(node){
if(!$("#tt").tabs('exists',node.text)){
$('#tt').tabs('add',{
title: node.text,
content: '<iframe frameborder=0 src="'+
node.url
+'"scrolling="no" style="width:100%;height:100%;"></iframe>',
closable:true
});
}
}
});
});
</script>
</head>
<body>
<body class="easyui-layout">
<div data-options="region:'north',split:true" style="height:50px;"></div>
<div data-options="region:'west',title:'功能导航',split:true" style="width:100px;">
<ul id="funcTree" class="easyui-tree"></ul>
</div>
<div data-options="region:'center'" style="padding:5px;background:#eee;">
<div id="tt" class="easyui-tabs" style="width:100%;height:100%;">
<div title="首页" style="padding:20px;display:none;">
<b>今天是个好日子 </b>
</div>
</div>
</div>
</body>
</html>