javabean servlet jsp

来源:互联网 发布:java上传断点续传技术 编辑:程序博客网 时间:2024/06/05 14:22
package cn.jbit.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class BaseDao {// 连接字符串private final static String CONNECTIONSTRING = "jdbc:sqlserver://127.0.0.1:1433;databaseName=lib";private Connection connection;private ResultSet rs;private PreparedStatement pstmt;// 获取连接private  void getConnection() {try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");connection = DriverManager.getConnection(CONNECTIONSTRING, "sa","sa");} catch (Exception e) {System.out.println(e);}}/** * 获取查询结果集 * @param sql *            要查询的sql * @param objs参数列表 * @return ResultSet结果集 */public ResultSet getResultSet(String sql, Object[] objs) {try {getConnection();pstmt = connection.prepareStatement(sql);for (int i = 0; i < objs.length; i++) {pstmt.setObject(i + 1, objs[i]);}return pstmt.executeQuery();} catch (SQLException e) {System.out.println(e);}return null;}/** * 执行增删改操作 * @param sql *            要执行的sql语句 * @param objs *            参数列表 * @return */public int excuteUpdate(String sql, Object[] objs) {getConnection();try {pstmt = connection.prepareStatement(sql);for (int i = 0; i < objs.length; i++) {pstmt.setObject(i + 1, objs[i]);// 参数设置从1开始}return pstmt.executeUpdate();} catch (SQLException e) {return -1;}}// 释放连接public void close() {try {if (rs != null) {rs.close();}if (pstmt != null) {pstmt.close();}if (connection != null) {pstmt.close();}} catch (SQLException e) {System.out.println(e);}}}

package cn.jbit.dao;import java.sql.ResultSet;import java.sql.SQLException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.List;import cn.jbit.entity.BookInfo;import cn.jbit.util.Page;import com.sun.org.apache.regexp.internal.recompile;public class BookInfoDao extends BaseDao   {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");/** * 分页查询 列表信息 *  * @param page *            分页信息 * @param bookName *            条件 * @return 结果集 */public List<BookInfo> getListByList(Page page, String bookName) {try {StringBuffer sb = new StringBuffer();List parm = new ArrayList();// 参数集合// 构建查询语句sb.append("select * from (select *,ROW_NUMBER() over (order by bid) as r from Book where 1=1 ");if (bookName != null && !bookName.isEmpty()) {sb.append(" and bName like ? ");parm.add("%" + bookName + "%");}sb.append(") as t ");// 查询总条数ResultSet rs = getResultSet("select count(1) from  (" + sb.toString() + ") as tt",parm.toArray());if (rs.next()) {int count = rs.getInt(1);if (count < 1) {return null;}page.setCount(count);} else {return null;}close();//释放资源sb.append("  where t.r>? and t.r<?");parm.add((page.getCurentPage() - 1) * page.getPageSize());// 设置分页参数parm.add(page.getCurentPage() * page.getPageSize());// 设置分页参数rs = getResultSet(sb.toString(), parm.toArray());if (rs != null) {List<BookInfo> list = new ArrayList<BookInfo>();BookInfo book;while (rs.next()) {// 使用构造函数进行赋值book = new BookInfo(rs.getInt(1), rs.getString(2),rs.getInt(3), rs.getString(4), rs.getString(5),rs.getString(6));list.add(book);// 添加到集合}close();// 释放资源return list;// 返回数据}} catch (SQLException e) {System.out.println(e);}return null;}/** * 通过id查询 *  * @param id *            id * @return 查询到的结果 */public BookInfo getByid(String id) {String sql = "select * from book where bid= ?";ResultSet rs = getResultSet(sql, new Object[] { id });BookInfo book = null;try {if (rs.next()) {book = new BookInfo(rs.getInt(1), rs.getString(2),rs.getInt(3), rs.getString(4), rs.getString(5),rs.getString(6));}close();return book;} catch (SQLException e) {}return null;}/** * 保存 *  * @param book */public void save(BookInfo book) {String sql = "INSERt INTO BOOK VALUES(?,?,?,?,?)";int count = excuteUpdate(sql,new Object[] {book.getName(),book.getPrice(),book.getCategory(),book.getDate(),book.getLoan() });// 设置参数}/** * 更新 *  * @param book */public void update(BookInfo book) {String sql = "update  BOOK  set bName=? ,bprice=?,bcategory=? ,bdate=? ,bloan=? where bid=?";int count = excuteUpdate(sql,new Object[] {book.getName(),book.getPrice(),book.getCategory(),book.getDate(),book.getLoan(),book.getId() });// 设置参数}// 保存或者更新public void saveorUpdate(BookInfo book) {if(book.getId()==null){ save(book);// 如果id为空那么就是新增}else{ update(book);// 如果id不为空就是更新}}}

package cn.jbit.entity;import sun.print.resources.serviceui;public class BookInfo {private Integer id;// idprivate String name;// 图书名称private int price;// 图书价格private String category;//图书类别private String date;// 出版日期private String loan;// 是否有库存public BookInfo() {super();}public BookInfo(Integer id, String name, int price, String category,String date, String loan) {super();this.id = id;this.name = name;this.price = price;this.category = category;this.date = date;this.loan = loan;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public String getCategory() {return category;}public void setCategory(String category) {this.category = category;}public String getDate() {return date;}public void setDate(String date) {this.date = date;}public String getLoan() {return loan;}public void setLoan(String loan) {this.loan = loan;}}

package cn.jbit.servlet;import java.io.IOException;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;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 sun.java2d.pipe.SpanShapeRenderer.Simple;import cn.jbit.dao.BookInfoDao;import cn.jbit.entity.BookInfo;import cn.jbit.util.Page;@WebServlet(name = "bookServlet", urlPatterns = "/bookServlet")public class BookServlet extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {req.setCharacterEncoding("utf-8");BookInfoDao bs = new BookInfoDao();// 获取服务String oper = req.getParameter("oper");// 获取操作if (oper != null && oper.equals("edit")) {// 若是是要去修改BookInfo book = bs.getByid(req.getParameter("id"));// 通过id获取到信息req.setAttribute("book", book);req.getRequestDispatcher("edit.jsp").forward(req, resp);// 跳转到修改页面return;} else if (oper != null && oper.equals("save")) {// 如是是保存Integer id = null;// idif (req.getParameter("id") != null&& !req.getParameter("id").trim().isEmpty()) {id = Integer.valueOf(req.getParameter("id").trim());}String name = req.getParameter("name").trim();// 图书名称int price = Integer.valueOf(req.getParameter("price").trim());// 图书价格String category = req.getParameter("category").trim();// 图书类别String date = req.getParameter("date").trim();// 出版日期String loan = req.getParameter("loan").trim();// 是否有库存BookInfo book = new BookInfo(id, name, price, category, date, loan);bs.saveorUpdate(book);// 保存或者更新req.setAttribute("name", book.getName());// 设置更新后的查询条件为更新后的值}List<BookInfo> books = new ArrayList<BookInfo>();Page page = new Page();// 分页信息String curentPage = req.getParameter("cp");// 获取要显示的页码if (curentPage != null && !curentPage.isEmpty()) {page.setCurentPage(Integer.valueOf(curentPage));}String bookName = req.getParameter("name");// 获取查询条件if (bookName != null) {bookName = bookName.trim();}books = bs.getListByList(page, bookName);// 获取查询到集合req.setAttribute("books", books);req.setAttribute("page", page);// 设置分页信息req.setAttribute("name", bookName);// 回显分页条件req.getRequestDispatcher("index.jsp").forward(req, resp);// 跳转到列表页面}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {doGet(req, resp);// 执行get方法}}

package cn.jbit.util;public class Page {private int totalPage;// 总页数private int pageSize = 10;// 分页大小private int curentPage = 1;// 默认当前页吗private int perverPage;// 上一页private int nextPage;// 下一页private int count;// 总记录数public int getTotalPage() {return totalPage;}public void setTotalPage(int totalPage) {this.totalPage = totalPage;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getCurentPage() {return curentPage;}public void setCurentPage(int curentPage) {this.curentPage = curentPage;}public int getPerverPage() {return perverPage;}public void setPerverPage(int perverPage) {this.perverPage = perverPage;}public int getNextPage() {return nextPage;}public void setNextPage(int nextPage) {this.nextPage = nextPage;}public int getCount() {return count;}public void setCount(int count) {// 计算页数高深算法哈哈this.totalPage = (count - 1 + pageSize) / pageSize;//计算下一页if (totalPage == curentPage) {nextPage = curentPage;} else {nextPage = curentPage + 1;}// 计算上一页数if (curentPage == 1) {perverPage = 1;} else {perverPage = curentPage - 1;}this.count = count;}}

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>图书列表</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><script type="text/javascript" src="jquery-1.8.3.min.js"></script><script type="text/javascript">$(function() {$("tr:odd").css("background", "pink");});function serarch(page) {$("#cp").val(page);$("form")[0].submit();}</script><body><h1>图书管理系统</h1><br><form action="bookServlet" onsubmit="serarch(1)" method="post"><input type="hidden" value="${page.curentPage }" name="cp" id="cp">请输入书名:<input type="text" name="name" value="${name} " /> <inputtype="submit" value="查询"></form><table border="1"><tr style="font-weight: bold;"><td>图书编号</td><td>图书名称</td><td>图书价格</td><td>图书类别</td><td>出版日期</td><td>是否有库存</td></tr><c:forEach items="${books}" var="b" varStatus="s"><tr><td><a href="bookServlet?oper=edit&id=${b.id}"><c:out value="${b.id}"></c:out></a></td><td> <c:outvalue="${b.name}"></c:out> </td><td><c:out value="${b.price}"></c:out></td><td><c:out value="${b.category}"></c:out></td><td><c:out value="${b.date}"></c:out></td><td><c:out value="${b.loan}"></c:out></td></tr></c:forEach></table><table><tr ><td><a href="javascript:serarch(1)">首页</a>|</td><td><a href="javascript:serarch(${page.perverPage })">上一页</a>|</td><td><a href="javascript:serarch(${page.nextPage })">下一页</a>|</td><td><a href="javascript:serarch(${page.totalPage })">尾页</a></td><td><a>第<c:out value="${page.curentPage } "></c:out>页/ 共<c:outvalue="${page.totalPage } "></c:out>页(共<c:outvalue="${page.count } "></c:out>条)</a></td></tr></table></body></html>

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>图书列表</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><script type="text/javascript" src="jquery-1.8.3.min.js"></script><script type="text/javascript">$(function (){$("#name").blur(function (){if($("#name").val().length<1){$("#name").parent().next().css("display","");}else{$("#name").parent().next().css("display","none");}});$("#category").blur(function (){if($("#category").val().length<1){$("#category").parent().next().css("display","");}else{$("#category").parent().next().css("display","none");}});$("#date").blur(function (){var reg =/^\d{4}-\d{2}-\d{2}$/;var b=reg.test($.trim( $("#date").val()));if(b){$("#date").parent().next().css("display","none");}else{$("#date").parent().next().css("display","");}});$("#price").blur(function (){var reg =/^\d+$/;var b=reg.test($("#price").val());if($("#price").val()<1||$("#price").val()>500){b=false;}if(b){$("#price").parent().next().css("display","none");}else{$("#price").parent().next().css("display","");}});$("#r").click(function (){$("form")[0].reset();$("span").parent() .css("display","none");}); });function check(){var a=$("td:hidden").size();if(a!=5){alert("信息不完整");return false;} return true; } </script><body><h1>修改图书信息</h1><form action="bookServlet" onsubmit=" return check()" method="post"><input type="hidden" value="${book.id }" name="id"> <inputtype="hidden" value="save" name="oper"><table border="1"><tr><td>图书名称</td><td><input type="text" value="${book.name}" id="name"name="name"></td><td style="display:none;"><span style="color:red ">图书名称不能为空</span></td></tr><tr><td>图书价格</td><td><input type="text" value="${book.price}" id="price"name="price"></td><td style="display: none;"><span style="color:red ">必须为整数1--500</span></td></tr><tr><td>图书类别</td><td><input type="text" value="${book.category} " id="category"name="category"></td><td style="display: none;"><span style="color:red ">图书类别不能为空</span></td></tr><tr><td>出版日期</td><td><input type="text" value="${book.date}" id="date"name="date"></td><td style="display: none;"><span style="color:red ">格式必须为yyyy-MM-dd</span></td></tr><tr><td>是否有库存</td><td><c:if test="${book.loan =='有'}"></c:if> <input type="radio"name="loan" value="有"<c:if test="${book.loan =='有'}">checked="checked"</c:if>> 有  <input type="radio" name="loan" value="无"<c:if test="${book.loan =='无'}">checked="checked"</c:if>> 无 <td style="display: none;"></td></tr><tr><td colspan="3" style="text-align: center;"><input type="submit" value="保存">     <input type="button" id="r" value="重置"></td> </tr></table></form></body></html>

USE [master]GO/****** Object:  Database [lib]    Script Date: 01/15/2014 10:24:01 ******/CREATE DATABASE [lib] ON  PRIMARY ( NAME = N'lib', FILENAME = N'E:\web2\lib.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'lib_log', FILENAME = N'E:\web2\lib_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GOALTER DATABASE [lib] SET COMPATIBILITY_LEVEL = 100GOIF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))beginEXEC [lib].[dbo].[sp_fulltext_database] @action = 'enable'endGOALTER DATABASE [lib] SET ANSI_NULL_DEFAULT OFFGOALTER DATABASE [lib] SET ANSI_NULLS OFFGOALTER DATABASE [lib] SET ANSI_PADDING OFFGOALTER DATABASE [lib] SET ANSI_WARNINGS OFFGOALTER DATABASE [lib] SET ARITHABORT OFFGOALTER DATABASE [lib] SET AUTO_CLOSE OFFGOALTER DATABASE [lib] SET AUTO_CREATE_STATISTICS ONGOALTER DATABASE [lib] SET AUTO_SHRINK OFFGOALTER DATABASE [lib] SET AUTO_UPDATE_STATISTICS ONGOALTER DATABASE [lib] SET CURSOR_CLOSE_ON_COMMIT OFFGOALTER DATABASE [lib] SET CURSOR_DEFAULT  GLOBALGOALTER DATABASE [lib] SET CONCAT_NULL_YIELDS_NULL OFFGOALTER DATABASE [lib] SET NUMERIC_ROUNDABORT OFFGOALTER DATABASE [lib] SET QUOTED_IDENTIFIER OFFGOALTER DATABASE [lib] SET RECURSIVE_TRIGGERS OFFGOALTER DATABASE [lib] SET  DISABLE_BROKERGOALTER DATABASE [lib] SET AUTO_UPDATE_STATISTICS_ASYNC OFFGOALTER DATABASE [lib] SET DATE_CORRELATION_OPTIMIZATION OFFGOALTER DATABASE [lib] SET TRUSTWORTHY OFFGOALTER DATABASE [lib] SET ALLOW_SNAPSHOT_ISOLATION OFFGOALTER DATABASE [lib] SET PARAMETERIZATION SIMPLEGOALTER DATABASE [lib] SET READ_COMMITTED_SNAPSHOT OFFGOALTER DATABASE [lib] SET HONOR_BROKER_PRIORITY OFFGOALTER DATABASE [lib] SET  READ_WRITEGOALTER DATABASE [lib] SET RECOVERY FULLGOALTER DATABASE [lib] SET  MULTI_USERGOALTER DATABASE [lib] SET PAGE_VERIFY CHECKSUMGOALTER DATABASE [lib] SET DB_CHAINING OFFGOEXEC sys.sp_db_vardecimal_storage_format N'lib', N'ON'GOUSE [lib]GO/****** Object:  Table [dbo].[Book]    Script Date: 01/15/2014 10:24:02 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[Book]([bid] [int] IDENTITY(1,1) NOT NULL,[bName] [varchar](30) NOT NULL,[bprice] [int] NOT NULL,[bcategory] [varchar](100) NOT NULL,[bdate] [varchar](100) NULL,[bloan] [varchar](2) NOT NULL, CONSTRAINT [PK_Book] PRIMARY KEY CLUSTERED ([bid] ASC)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFFGO/****** Object:  Check [CK_Book]    Script Date: 01/15/2014 10:24:02 ******/ALTER TABLE [dbo].[Book]  WITH CHECK ADD  CONSTRAINT [CK_Book] CHECK  (([bprice]>=(1) OR [bprice]<=(500)))GOALTER TABLE [dbo].[Book] CHECK CONSTRAINT [CK_Book]GO/****** Object:  Check [CK_Book_1]    Script Date: 01/15/2014 10:24:02 ******/ALTER TABLE [dbo].[Book]  WITH CHECK ADD  CONSTRAINT [CK_Book_1] CHECK  (([bloan]='有' OR [bloan]='无'))GOALTER TABLE [dbo].[Book] CHECK CONSTRAINT [CK_Book_1]GO

declare @i int =1while(@i<33)beginINSERt INTO BOOK VALUES('name'+CAST(@i as varchar (4)),@i,'计算机',CAST(getdate() as varchar(20)),'有')set @i+=1endupdate Book set bdate='2013-10-12'

1 0
原创粉丝点击