目录
js代码:
<%@ page import="Service.impl.BananaServiceimpl" %>
<%@ page import="Service.BananaService" %>
<%@ page import="java.util.List" %>
<%@ page import="entity.banana" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
<style>
table,form,h1{
margin: 0px auto;
text-align: center;
}
*{
text-align: center;
}
</style>
<script src="js/jquery.js"></script>
</head>
<body>
<h1>香蕉管理系统</h1>
请输入香蕉名称:<input type="text" id="uname"/><br>
<button onclick="ccc()">点我查询</button>
<table border="1">
<tr>
<td>香蕉编号</td>
<td>香蕉名称</td>
<td>香蕉价格</td>
<td>香蕉颜色</td>
<td>种植时间</td>
<td>操作</td>
</tr>
</table>
<button value="0"class="but">首页</button>
<button value="-1"class="but">上一页</button>
<button value="1"class="but">下一页</button>
<button value="9999"class="but">尾页</button>
<div>
<form>
香蕉编号:<input type="text" name="bid"><br>
香蕉名称:<input type="text" name="bname"><br>
香蕉价格:<input type="text" name="bprice"><br>
香蕉颜色:<input type="text" name="bcolor"><br>
种植时间:<input type="date" style="width: 171px" name="btime"><br>
<button type="button" onclick="insert_update()">提交</button>
</form>
</div>
<div id="load">
</div>
</body>
<script>
/*
* load()方法
* 最简介的ajax方法
* 常用于异步展示简单的信息
* */
$("#load").load("Do_getName")
//加载事件
$(function () {
select()
})
/*
* 模糊查询
* */
function ccc() {
var bname= $("#uname").val()
$('tr:gt(0)').remove();
$.get("Do_like","bname="+bname,function (data) {
for (let i = 0; i < data.length; i++) {
var str="<tr>";
str+="<td>"+data[i].bid+"</td>";
str+="<td>"+data[i].bname+"</td>";
str+="<td>"+data[i].bprice+"</td>";
str+="<td>"+data[i].bcolor+"</td>";
str+="<td>"+data[i].btime+"</td>";
str+="<td><a href='javascript:void(0)' onclick='update("+data[i].bid+","+"\""+data[i].bname+"\","+data[i].bprice+","+"\""+data[i].bcolor+"\","+"\""+data[i].btime+"\")'>点我修改</a> <a href='javascript:void(0)' onclick='delete1("+data[i].bid+")'>点我删除</a></td>";
str+="</tr>"
$('table').append(str);
}
},"JSON") //类型一定要用引号引起来!
}
/*
* 分页方法
* */
$(".but").click(function (){
$('tr:gt(0)').remove();
var index = $(this).val();
$.getJSON("Do_page","index="+index,function (data) {
for (let i = 0; i < data.length; i++) {
var str="<tr>";
str+="<td>"+data[i].bid+"</td>";
str+="<td>"+data[i].bname+"</td>";
str+="<td>"+data[i].bprice+"</td>";
str+="<td>"+data[i].bcolor+"</td>";
str+="<td>"+data[i].btime+"</td>";
str+="<td><a href='javascript:void(0)' onclick='update("+data[i].bid+","+"\""+data[i].bname+"\","+data[i].bprice+","+"\""+data[i].bcolor+"\","+"\""+data[i].btime+"\")'>点我修改</a> <a href='javascript:void(0)' onclick='delete1("+data[i].bid+")'>点我删除</a></td>";
str+="</tr>"
$('table').append(str);
}
})
})
/*
* 为了后面的增删改调用方便
* */
function select() {
$('tr:gt(0)').remove();
//路径 参数 回调函数 返回值类型
//$.get $.post $.getJSON $.load
$.getJSON('Do_Select','',function (data) {
for (let i = 0; i < data.length; i++) {
var str="<tr>";
str+="<td>"+data[i].bid+"</td>";
str+="<td>"+data[i].bname+"</td>";
str+="<td>"+data[i].bprice+"</td>";
str+="<td>"+data[i].bcolor+"</td>";
str+="<td>"+data[i].btime+"</td>";
str+="<td><a href='javascript:void(0)' onclick='update("+data[i].bid+","+"\""+data[i].bname+"\","+data[i].bprice+","+"\""+data[i].bcolor+"\","+"\""+data[i].btime+"\")'>点我修改</a> <a href='javascript:void(0)' onclick='delete1("+data[i].bid+")'>点我删除</a></td>";
str+="</tr>"
$('table').append(str);
}
})
}
/*
* 点修改进来以后 传值加设置id禁用
* */
function update(bid,bname,bprice,bcolor,btime) {
// alert("点了修改"+bname)
$('input[name="bid"]').val(bid); //设置name为bid的值为ob
$('input[name="bname"]').val(bname);
$('input[name="bprice"]').val(bprice);
$('input[name="bcolor"]').val(bcolor);
$('input[name="btime"]').val(btime);
$('input[name="bid"]').attr("readonly","readonly"); //并设置为禁用状态
}
/*
* 修改跟新增共用一个按钮处理
* */
function insert_update() {
var url="";
if($('input[name="bid"]').attr("readonly")=="readonly"){
url="Do_Update";
}else{
url="Do_insert";
}
var obj=$("form").find(":input"); //获取所有输入框
var str=obj.serialize(); //获取里面的所有内容
$.post(url,str,function (data) {
alert(data);
select();
//清空表单
$("form").find(":input").val("");
$('input[name="bid"]').removeAttr("readonly"); //去掉禁用
})
}
/*
* 删除
* */
function delete1(bid) {
$.get("Do_Delete","bid="+bid,function (data) {
if(data.trim()=="true"){
alert("删除成功!")
select()
}else{
alert("删除失败!")
}
})
}
</script>
</html>
servlet代码:
代码量太多这里只展示分页servlet
package Servlet;
import Service.BananaService;
import Service.impl.BananaServiceimpl;
import com.alibaba.fastjson.JSON;
import entity.banana;
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 java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
@WebServlet("/Do_page")
public class Do_page extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置resp编码格式为utf-8 两种方式都可以
resp.setContentType("text/html;charset=utf-8");
resp.setCharacterEncoding("utf-8");
BananaService banana=new BananaServiceimpl();
int index=1;
int count = (int) Math.ceil(banana.count()/3.0);
if(req.getSession().getAttribute("index")!=null){
int page= Integer.parseInt(req.getParameter("index"));
index= (int) req.getSession().getAttribute("index");
if(page==-1||page==1){
index=index+page;
}else{
index=Integer.parseInt(req.getParameter("index"));
}
if(index>count){
index=count;
}else if(index<1){
index=1;
}
}
//返回结果给AJAX 用out对象输出返回
PrintWriter out = resp.getWriter();
req.getSession().setAttribute("index",index);
List<banana> list=banana.limit(index,3);
//如果java结果要返回对象或者集合
//一定要手动先转成JSON格式 再out.print返回
String result = JSON.toJSONString(list);
out.print(result);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
Dao层实现类代码:
package dao.impl;
import dao.Bananaimpl;
import dao.BasDao;
import entity.banana;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class Bananadaoimpl extends BasDao implements Bananaimpl {
@Override
public List<banana> getall() {
List<banana>list=new ArrayList<>();
Connection conn=this.getConnection();
String sql="select * from banana";
try {
PreparedStatement ps=conn.prepareStatement(sql);
ResultSet rs=ps.executeQuery();
while (rs.next()){
banana b=new banana();
b.setBid(rs.getInt("bid"));
b.setBname(rs.getString("bname"));
b.setBprice(rs.getDouble("bprice"));
b.setBcolor(rs.getString("bcolor"));
b.setBtime(rs.getString("btime"));
list.add(b);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
@Override
public int delete(int bid) {
int i=0;
Connection conn=this.getConnection();
String sql="delete from banana where bid=?";
try {
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt(1,bid);
i=ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
@Override
public int insert(banana b) {
int i=0;
Connection conn=this.getConnection();
String sql="insert into banana(bid,bname,bprice,bcolor,btime) values(?,?,?,?,?)";
try {
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt(1,b.getBid());
ps.setString(2,b.getBname());
ps.setDouble(3,b.getBprice());
ps.setString(4,b.getBcolor());
ps.setString(5,b.getBtime());
i=ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
@Override
public int update(banana b) {
int i=0;
Connection conn=this.getConnection();
String sql="update banana set bname=?,bprice=?,bcolor=?,btime=? where bid=?";
try {
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,b.getBname());
ps.setDouble(2,b.getBprice());
ps.setString(3,b.getBcolor());
ps.setString(4,b.getBtime());
ps.setInt(5,b.getBid());
i=ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
@Override
public List<banana> limit(int index,int i) {
List<banana>list=new ArrayList<>();
Connection conn=this.getConnection();
String sql="select * from banana limit ?,?";
try {
PreparedStatement ps=conn.prepareStatement(sql);
int c=(index-1)*i;
ps.setInt(1,c);
ps.setInt(2,i);
ResultSet rs=ps.executeQuery();
while (rs.next()){
banana b=new banana();
b.setBid(rs.getInt("bid"));
b.setBname(rs.getString("bname"));
b.setBprice(rs.getDouble("bprice"));
b.setBcolor(rs.getString("bcolor"));
b.setBtime(rs.getString("btime"));
list.add(b);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
@Override
public int count() {
int i=0;
Connection conn=this.getConnection();
String sql="select count(*) from banana";
try {
PreparedStatement ps=conn.prepareStatement(sql);
ResultSet rs=ps.executeQuery();
while (rs.next()){
i=rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
@Override
public List<banana> like(String bname) {
List<banana>list=new ArrayList<>();
Connection conn=this.getConnection();
String sql="select * from banana where bname like ?";
try {
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,'%'+bname+'%');
ResultSet rs=ps.executeQuery();
while (rs.next()){
banana b=new banana();
b.setBid(rs.getInt("bid"));
b.setBname(rs.getString("bname"));
b.setBprice(rs.getDouble("bprice"));
b.setBcolor(rs.getString("bcolor"));
b.setBtime(rs.getString("btime"));
list.add(b);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
service层代码:
package Service;
import entity.banana;
import java.util.List;
public interface BananaService {
/*
* 查询全部香蕉
* */
public List<banana> getall();
/*
* 删除香蕉
* */
public int delete(int bid);
/*
* 增加香蕉
* */
public int insert(banana b);
/*
* 修改香蕉
* */
public int update(banana b);
/*
* 分页查询全部
* */
public List<banana>limit(int index,int i);
/*
* 统计页数
* */
public int count();
/*
* 模糊查询
* */
public List<banana>like(String bname);
}
运行结果:
1.首页界面
2.分页后界面
3.增加后
4.模糊查询后
5.修改界面
6.删除界面
本项目全部采用Ajax异步方式完成