微信小程序实现图书管理系统

简介: 微信小程序实现图书管理系统

项目编号:BS-XCX-001

项目描述

系统使用SSM框架开发图书管理的后台管理接口功能,小程序通过接口进行调用显示,并提供给客户相应的处理操作功能,主要包括图书的增删改查功能

运行环境

Jdk8+tomcat8+mysql5.7+eclipse或IDEA+微信小程序

项目技术(必填)

spring+spring mvc+mybatis+微信小程序

下面展示一下系统的相关功能:

image.png

发布图书

image.png

图书列表

根据相关条件进行搜索

image.png

图书修改

image.png

个人中心

image.png

信息管理

image.png

前端微信小程序工程结构

image.png

后台工程结构

image.png

部门核心代码:

package com.pan.controller;
import java.beans.PropertyEditorSupport;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import com.pan.utils.UserException;
public class BaseController {
  @InitBinder
  // 必须有一个参数WebDataBinder
  public void initBinder(WebDataBinder binder) {
    //System.out.println(binder.getFieldDefaultPrefix());
    binder.registerCustomEditor(Date.class, new CustomDateEditor(
        new SimpleDateFormat("yyyy-MM-dd"), false));
    binder.registerCustomEditor(Integer.class, new PropertyEditorSupport() {
      @Override
      public String getAsText() { 
        return (getValue() == null) ? "" : getValue().toString();
      } 
      @Override
      public void setAsText(String text) {
        Integer value = null;
        if (null != text && !text.equals("")) {  
            try {
              value = Integer.valueOf(text);
            } catch(Exception ex)  { 
              throw new UserException("数据格式输入不正确!"); 
            }  
        }
        setValue(value);
      } 
    });
    //binder.registerCustomEditor(Integer.class, null,new CustomNumberEditor(Integer.class, null, true));
    binder.registerCustomEditor(Float.class, new PropertyEditorSupport() {
      @Override
      public String getAsText() { 
        return (getValue() == null)? "" : getValue().toString();
      } 
      @Override
      public void setAsText(String text)  {
        Float value = null;
        if (null != text && !text.equals("")) {
          try {
            value = Float.valueOf(text);
          } catch (Exception e) { 
            throw new UserException("数据格式输入不正确!"); 
          }
        }
        setValue(value);
      }
    });
  }
  /*向客户端输出操作成功或失败信息*/
  public void writeJsonResponse(HttpServletResponse response,boolean success,String message)
      throws IOException, JSONException { 
    response.setContentType("text/json;charset=UTF-8");
    PrintWriter out = response.getWriter(); 
    //将要被返回到客户端的对象 
    JSONObject json=new JSONObject();
    json.accumulate("success", success);
    json.accumulate("message", message);
    out.println(json.toString());
    out.flush(); 
    out.close();
  }
}

package com.pan.controller;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.pan.pojo.Book;
import com.pan.pojo.BookType;
import com.pan.service.BookService;
import com.pan.service.BookTypeService;
import com.pan.utils.ExportExcelUtil;
//Book管理控制层
@Controller
@RequestMapping("/Book")
public class BookController extends BaseController {
    /*业务层对象*/
    @Resource BookService bookService;
    @Resource BookTypeService bookTypeService;
  @InitBinder("bookTypeObj")
  public void initBinderbookTypeObj(WebDataBinder binder) {
    binder.setFieldDefaultPrefix("bookTypeObj.");
  }
  @InitBinder("book")
  public void initBinderBook(WebDataBinder binder) {
    binder.setFieldDefaultPrefix("book.");
  }
  /*跳转到添加Book视图*/
  @RequestMapping(value = "/add", method = RequestMethod.GET)
  public String add(Model model,HttpServletRequest request) throws Exception {
    model.addAttribute(new Book());
    /*查询所有的BookType信息*/
    List<BookType> bookTypeList = bookTypeService.queryAllBookType();
    request.setAttribute("bookTypeList", bookTypeList);
    return "Book_add";
  }
  /*客户端ajax方式提交添加图书信息*/
  @RequestMapping(value = "/add", method = RequestMethod.POST)
  public void add(@Validated Book book, BindingResult br,
      Model model, HttpServletRequest request,HttpServletResponse response) throws Exception {
    String message = "";
    boolean success = false;
    if (br.hasErrors()) {
      System.out.println(br.hasErrors());
      message = "输入信息不符合要求!";
      writeJsonResponse(response, success, message);
      return ;
    }
    if(bookService.getBook(book.getBarcode()) != null) {
      message = "图书条形码已经存在!";
      writeJsonResponse(response, success, message);
      return ;
    }
        bookService.addBook(book);
        message = "图书添加成功!";
        success = true;
        writeJsonResponse(response, success, message);
  }
  /*ajax方式按照查询条件分页查询图书信息*/
  @RequestMapping(value = { "/list" }, method = {RequestMethod.GET,RequestMethod.POST})
  public void list(String barcode,String bookName,@ModelAttribute("bookTypeObj") BookType bookTypeObj,String publishDate,Integer page,Integer rows, Model model, HttpServletRequest request,HttpServletResponse response) throws Exception {
    if (page==null || page == 0) page = 1;
    if (barcode == null) barcode = "";
    if (bookName == null) bookName = "";
    if (publishDate == null) publishDate = "";
    if(rows != 0)bookService.setRows(rows);
    List<Book> bookList = bookService.queryBook(barcode, bookName, bookTypeObj, publishDate, page);
      /*计算总的页数和总的记录数*/
      bookService.queryTotalPageAndRecordNumber(barcode, bookName, bookTypeObj, publishDate);
      /*获取到总的页码数目*/
      int totalPage = bookService.getTotalPage();
      /*当前查询条件下总记录数*/
      int recordNumber = bookService.getRecordNumber();
        response.setContentType("text/json;charset=UTF-8");
    PrintWriter out = response.getWriter();
    //将要被返回到客户端的对象
    JSONObject jsonObj=new JSONObject();
    jsonObj.accumulate("total", recordNumber);
    JSONArray jsonArray = new JSONArray();
    for(Book book:bookList) {
      JSONObject jsonBook = book.getJsonObject();
      jsonArray.put(jsonBook);
    }
    jsonObj.accumulate("rows", jsonArray);
    out.println(jsonObj.toString());
    out.flush();
    out.close();
  }
  /*ajax方式按照查询条件分页查询图书信息*/
  @RequestMapping(value = { "/listAll" }, method = {RequestMethod.GET,RequestMethod.POST})
  public void listAll(HttpServletResponse response) throws Exception {
    List<Book> bookList = bookService.queryAllBook();
        response.setContentType("text/json;charset=UTF-8"); 
    PrintWriter out = response.getWriter();
    JSONArray jsonArray = new JSONArray();
    for(Book book:bookList) {
      JSONObject jsonBook = new JSONObject();
      jsonBook.accumulate("barcode", book.getBarcode());
      jsonBook.accumulate("bookName", book.getBookName());
      jsonArray.put(jsonBook);
    }
    out.println(jsonArray.toString());
    out.flush();
    out.close();
  }
  /*前台按照查询条件分页查询图书信息*/
  @RequestMapping(value = { "/frontlist" }, method = {RequestMethod.GET,RequestMethod.POST})
  public String frontlist(String barcode,String bookName,@ModelAttribute("bookTypeObj") BookType bookTypeObj,String publishDate,Integer currentPage, Model model, HttpServletRequest request) throws Exception  {
    if (currentPage==null || currentPage == 0) currentPage = 1;
    if (barcode == null) barcode = "";
    if (bookName == null) bookName = "";
    if (publishDate == null) publishDate = "";
    List<Book> bookList = bookService.queryBook(barcode, bookName, bookTypeObj, publishDate, currentPage);
      /*计算总的页数和总的记录数*/
      bookService.queryTotalPageAndRecordNumber(barcode, bookName, bookTypeObj, publishDate);
      /*获取到总的页码数目*/
      int totalPage = bookService.getTotalPage();
      /*当前查询条件下总记录数*/
      int recordNumber = bookService.getRecordNumber();
      request.setAttribute("bookList",  bookList);
      request.setAttribute("totalPage", totalPage);
      request.setAttribute("recordNumber", recordNumber);
      request.setAttribute("currentPage", currentPage);
      request.setAttribute("barcode", barcode);
      request.setAttribute("bookName", bookName);
      request.setAttribute("bookTypeObj", bookTypeObj);
      request.setAttribute("publishDate", publishDate);
      List<BookType> bookTypeList = bookTypeService.queryAllBookType();
      request.setAttribute("bookTypeList", bookTypeList);
    return "Book/book_frontquery_result"; 
  }
     /*前台查询Book信息*/
  @RequestMapping(value="/{barcode}/frontshow",method=RequestMethod.GET)
  public String frontshow(@PathVariable String barcode,Model model,HttpServletRequest request) throws Exception {
    /*根据主键barcode获取Book对象*/
        Book book = bookService.getBook(barcode);
        List<BookType> bookTypeList = bookTypeService.queryAllBookType();
        request.setAttribute("bookTypeList", bookTypeList);
        request.setAttribute("book",  book);
        return "Book/book_frontshow";
  }
  /*ajax方式显示图书修改jsp视图页*/
  @RequestMapping(value="/{barcode}/update",method=RequestMethod.GET)
  public void update(@PathVariable String barcode,Model model,HttpServletRequest request,HttpServletResponse response) throws Exception {
        /*根据主键barcode获取Book对象*/
        Book book = bookService.getBook(barcode);
        response.setContentType("text/json;charset=UTF-8");
        PrintWriter out = response.getWriter();
    //将要被返回到客户端的对象 
    JSONObject jsonBook = book.getJsonObject();
    out.println(jsonBook.toString());
    out.flush();
    out.close();
  }
  /*ajax方式更新图书信息*/
  @RequestMapping(value = "/{barcode}/update", method = RequestMethod.POST)
  public void update(@Validated Book book, BindingResult br,
      Model model, HttpServletRequest request,HttpServletResponse response) throws Exception {
    String message = "";
      boolean success = false;
    if (br.hasErrors()) { 
      message = "输入的信息有错误!";
      writeJsonResponse(response, success, message);
      return;
    }
    try {
      bookService.updateBook(book);
      message = "图书更新成功!";
      success = true;
      writeJsonResponse(response, success, message);
    } catch (Exception e) {
      e.printStackTrace();
      message = "图书更新失败!";
      writeJsonResponse(response, success, message); 
    }
  }
    /*删除图书信息*/
  @RequestMapping(value="/{barcode}/delete",method=RequestMethod.GET)
  public String delete(@PathVariable String barcode,HttpServletRequest request) throws UnsupportedEncodingException {
      try {
        bookService.deleteBook(barcode);
              request.setAttribute("message", "图书删除成功!");
              return "message";
          } catch (Exception e) { 
              e.printStackTrace();
              request.setAttribute("error", "图书删除失败!");
        return "error";
          }
  }
  /*ajax方式删除多条图书记录*/
  @RequestMapping(value="/deletes",method=RequestMethod.POST)
  public void delete(String barcodes,HttpServletRequest request,HttpServletResponse response) throws IOException, JSONException {
    String message = "";
      boolean success = false;
        try { 
          int count = bookService.deleteBooks(barcodes);
          success = true;
          message = count + "条记录删除成功";
          writeJsonResponse(response, success, message);
        } catch (Exception e) { 
            //e.printStackTrace();
            message = "有记录存在外键约束,删除失败";
            writeJsonResponse(response, success, message);
        }
  }
  /*按照查询条件导出图书信息到Excel*/
  @RequestMapping(value = { "/OutToExcel" }, method = {RequestMethod.GET,RequestMethod.POST})
  public void OutToExcel(String barcode,String bookName,@ModelAttribute("bookTypeObj") BookType bookTypeObj,String publishDate, Model model, HttpServletRequest request,HttpServletResponse response) throws Exception {
        if(barcode == null) barcode = "";
        if(bookName == null) bookName = "";
        if(publishDate == null) publishDate = "";
        List<Book> bookList = bookService.queryBook(barcode,bookName,bookTypeObj,publishDate);
        ExportExcelUtil ex = new ExportExcelUtil();
        String _title = "Book信息记录"; 
        String[] headers = { "图书条形码","图书名称","图书所在类别","图书价格","库存","出版日期","出版社"};
        List<String[]> dataset = new ArrayList<String[]>(); 
        for(int i=0;i<bookList.size();i++) {
          Book book = bookList.get(i); 
          dataset.add(new String[]{book.getBarcode(),book.getBookName(),book.getBookTypeObj().getBookTypeName(),book.getPrice() + "",book.getCount() + "",book.getPublishDate(),book.getPublish()});
        }
        /*
        OutputStream out = null;
    try {
      out = new FileOutputStream("C://output.xls");
      ex.exportExcel(title,headers, dataset, out);
        out.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
    */
    OutputStream out = null;//创建一个输出流对象 
    try { 
      out = response.getOutputStream();//
      response.setHeader("Content-disposition","attachment; filename="+"Book.xls");//filename是下载的xls的名,建议最好用英文 
      response.setContentType("application/msexcel;charset=UTF-8");//设置类型 
      response.setHeader("Pragma","No-cache");//设置头 
      response.setHeader("Cache-Control","no-cache");//设置头 
      response.setDateHeader("Expires", 0);//设置日期头  
      String rootPath = request.getSession().getServletContext().getRealPath("/");
      ex.exportExcel(rootPath,_title,headers, dataset, out);
      out.flush();
    } catch (IOException e) { 
      e.printStackTrace(); 
    }finally{
      try{
        if(out!=null){ 
          out.close(); 
        }
      }catch(IOException e){ 
        e.printStackTrace(); 
      } 
    }
    }
}
package com.pan.controller;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.pan.pojo.BookType;
import com.pan.service.BookTypeService;
import com.pan.utils.ExportExcelUtil;
//BookType管理控制层
@Controller
@RequestMapping("/BookType")
public class BookTypeController extends BaseController {
    /*业务层对象*/
    @Resource BookTypeService bookTypeService;
  @InitBinder("bookType")
  public void initBinderBookType(WebDataBinder binder) {
    binder.setFieldDefaultPrefix("bookType.");
  }
  /*跳转到添加BookType视图*/
  @RequestMapping(value = "/add", method = RequestMethod.GET)
  public String add(Model model,HttpServletRequest request) throws Exception {
    model.addAttribute(new BookType());
    return "BookType_add";
  }
  /*客户端ajax方式提交添加图书类型信息*/
  @RequestMapping(value = "/add", method = RequestMethod.POST)
  public void add(@Validated BookType bookType, BindingResult br,
      Model model, HttpServletRequest request,HttpServletResponse response) throws Exception {
    String message = "";
    boolean success = false;
    if (br.hasErrors()) {
      message = "输入信息不符合要求!";
      writeJsonResponse(response, success, message);
      return ;
    }
        bookTypeService.addBookType(bookType);
        message = "图书类型添加成功!";
        success = true;
        writeJsonResponse(response, success, message);
  }
  /*ajax方式按照查询条件分页查询图书类型信息*/
  @RequestMapping(value = { "/list" }, method = {RequestMethod.GET,RequestMethod.POST})
  public void list(Integer page,Integer rows, Model model, HttpServletRequest request,HttpServletResponse response) throws Exception {
    if (page==null || page == 0) page = 1;
    if(rows != 0)bookTypeService.setRows(rows);
    List<BookType> bookTypeList = bookTypeService.queryBookType(page);
      /*计算总的页数和总的记录数*/
      bookTypeService.queryTotalPageAndRecordNumber();
      /*获取到总的页码数目*/
      int totalPage = bookTypeService.getTotalPage();
      /*当前查询条件下总记录数*/
      int recordNumber = bookTypeService.getRecordNumber();
        response.setContentType("text/json;charset=UTF-8");
    PrintWriter out = response.getWriter();
    //将要被返回到客户端的对象
    JSONObject jsonObj=new JSONObject();
    jsonObj.accumulate("total", recordNumber);
    JSONArray jsonArray = new JSONArray();
    for(BookType bookType:bookTypeList) {
      JSONObject jsonBookType = bookType.getJsonObject();
      jsonArray.put(jsonBookType);
    }
    jsonObj.accumulate("rows", jsonArray);
    out.println(jsonObj.toString());
    out.flush();
    out.close();
  }
  /*ajax方式按照查询条件分页查询图书类型信息*/
  @RequestMapping(value = { "/listAll" }, method = {RequestMethod.GET,RequestMethod.POST})
  public void listAll(HttpServletResponse response) throws Exception {
    List<BookType> bookTypeList = bookTypeService.queryAllBookType();
        response.setContentType("text/json;charset=UTF-8"); 
    PrintWriter out = response.getWriter();
    JSONArray jsonArray = new JSONArray();
    for(BookType bookType:bookTypeList) {
      JSONObject jsonBookType = new JSONObject();
      jsonBookType.accumulate("bookTypeId", bookType.getBookTypeId());
      jsonBookType.accumulate("bookTypeName", bookType.getBookTypeName());
      jsonArray.put(jsonBookType);
    }
    out.println(jsonArray.toString());
    out.flush();
    out.close();
  }
  /*前台按照查询条件分页查询图书类型信息*/
  @RequestMapping(value = { "/frontlist" }, method = {RequestMethod.GET,RequestMethod.POST})
  public String frontlist(Integer currentPage, Model model, HttpServletRequest request) throws Exception  {
    if (currentPage==null || currentPage == 0) currentPage = 1;
    List<BookType> bookTypeList = bookTypeService.queryBookType(currentPage);
      /*计算总的页数和总的记录数*/
      bookTypeService.queryTotalPageAndRecordNumber();
      /*获取到总的页码数目*/
      int totalPage = bookTypeService.getTotalPage();
      /*当前查询条件下总记录数*/
      int recordNumber = bookTypeService.getRecordNumber();
      request.setAttribute("bookTypeList",  bookTypeList);
      request.setAttribute("totalPage", totalPage);
      request.setAttribute("recordNumber", recordNumber);
      request.setAttribute("currentPage", currentPage);
    return "BookType/bookType_frontquery_result"; 
  }
     /*前台查询BookType信息*/
  @RequestMapping(value="/{bookTypeId}/frontshow",method=RequestMethod.GET)
  public String frontshow(@PathVariable Integer bookTypeId,Model model,HttpServletRequest request) throws Exception {
    /*根据主键bookTypeId获取BookType对象*/
        BookType bookType = bookTypeService.getBookType(bookTypeId);
        request.setAttribute("bookType",  bookType);
        return "BookType/bookType_frontshow";
  }
  /*ajax方式显示图书类型修改jsp视图页*/
  @RequestMapping(value="/{bookTypeId}/update",method=RequestMethod.GET)
  public void update(@PathVariable Integer bookTypeId,Model model,HttpServletRequest request,HttpServletResponse response) throws Exception {
        /*根据主键bookTypeId获取BookType对象*/
        BookType bookType = bookTypeService.getBookType(bookTypeId);
        response.setContentType("text/json;charset=UTF-8");
        PrintWriter out = response.getWriter();
    //将要被返回到客户端的对象 
    JSONObject jsonBookType = bookType.getJsonObject();
    out.println(jsonBookType.toString());
    out.flush();
    out.close();
  }
  /*ajax方式更新图书类型信息*/
  @RequestMapping(value = "/{bookTypeId}/update", method = RequestMethod.POST)
  public void update(@Validated BookType bookType, BindingResult br,
      Model model, HttpServletRequest request,HttpServletResponse response) throws Exception {
    String message = "";
      boolean success = false;
    if (br.hasErrors()) { 
      message = "输入的信息有错误!";
      writeJsonResponse(response, success, message);
      return;
    }
    try {
      bookTypeService.updateBookType(bookType);
      message = "图书类型更新成功!";
      success = true;
      writeJsonResponse(response, success, message);
    } catch (Exception e) {
      e.printStackTrace();
      message = "图书类型更新失败!";
      writeJsonResponse(response, success, message); 
    }
  }
    /*删除图书类型信息*/
  @RequestMapping(value="/{bookTypeId}/delete",method=RequestMethod.GET)
  public String delete(@PathVariable Integer bookTypeId,HttpServletRequest request) throws UnsupportedEncodingException {
      try {
        bookTypeService.deleteBookType(bookTypeId);
              request.setAttribute("message", "图书类型删除成功!");
              return "message";
          } catch (Exception e) { 
              e.printStackTrace();
              request.setAttribute("error", "图书类型删除失败!");
        return "error";
          }
  }
  /*ajax方式删除多条图书类型记录*/
  @RequestMapping(value="/deletes",method=RequestMethod.POST)
  public void delete(String bookTypeIds,HttpServletRequest request,HttpServletResponse response) throws IOException, JSONException {
    String message = "";
      boolean success = false;
        try { 
          int count = bookTypeService.deleteBookTypes(bookTypeIds);
          success = true;
          message = count + "条记录删除成功";
          writeJsonResponse(response, success, message);
        } catch (Exception e) { 
            //e.printStackTrace();
            message = "有记录存在外键约束,删除失败";
            writeJsonResponse(response, success, message);
        }
  }
  /*按照查询条件导出图书类型信息到Excel*/
  @RequestMapping(value = { "/OutToExcel" }, method = {RequestMethod.GET,RequestMethod.POST})
  public void OutToExcel( Model model, HttpServletRequest request,HttpServletResponse response) throws Exception {
        List<BookType> bookTypeList = bookTypeService.queryBookType();
        ExportExcelUtil ex = new ExportExcelUtil();
        String _title = "BookType信息记录"; 
        String[] headers = { "图书类别","类别名称","可借阅天数"};
        List<String[]> dataset = new ArrayList<String[]>(); 
        for(int i=0;i<bookTypeList.size();i++) {
          BookType bookType = bookTypeList.get(i); 
          dataset.add(new String[]{bookType.getBookTypeId() + "",bookType.getBookTypeName(),bookType.getDays() + ""});
        }
        /*
        OutputStream out = null;
    try {
      out = new FileOutputStream("C://output.xls");
      ex.exportExcel(title,headers, dataset, out);
        out.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
    */
    OutputStream out = null;//创建一个输出流对象 
    try { 
      out = response.getOutputStream();//
      response.setHeader("Content-disposition","attachment; filename="+"BookType.xls");//filename是下载的xls的名,建议最好用英文 
      response.setContentType("application/msexcel;charset=UTF-8");//设置类型 
      response.setHeader("Pragma","No-cache");//设置头 
      response.setHeader("Cache-Control","no-cache");//设置头 
      response.setDateHeader("Expires", 0);//设置日期头  
      String rootPath = request.getSession().getServletContext().getRealPath("/");
      ex.exportExcel(rootPath,_title,headers, dataset, out);
      out.flush();
    } catch (IOException e) { 
      e.printStackTrace(); 
    }finally{
      try{
        if(out!=null){ 
          out.close(); 
        }
      }catch(IOException e){ 
        e.printStackTrace(); 
      } 
    }
    }
}
相关文章
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的兰亭序图书管理系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的兰亭序图书管理系统附带文章和源代码部署视频讲解等
124 6
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的图书管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的图书管理系统附带文章源码部署视频讲解等
99 0
基于springboot+vue.js+uniapp小程序的图书管理系统附带文章源码部署视频讲解等
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的图书管理系统附带文章和源代码设计说明文档ppt
基于ssm+vue.js+uniapp小程序的图书管理系统附带文章和源代码设计说明文档ppt
120 1
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的图书管理系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的图书管理系统的详细设计和实现
161 2
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的图书大厦图书管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的图书大厦图书管理系统附带文章源码部署视频讲解等
93 0
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的图书管理系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的图书管理系统附带文章和源代码部署视频讲解等
80 0
|
小程序 前端开发 JavaScript
ssm+vue基本微信小程序的智能图书管理系统
图书管理系统可以有效实现图书管理的规范化、系统化化管理,减少了手工管理过程中的缺陷。能对所有图书资料进行统一的操作管理,让读者可以更方便借阅图书,能使图书馆更好的发挥其功能,使读者能更好地享受图书资源。现如今,计算机发展是最快的,计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性同时,建立一个实用而操作简便的检索查询系统也同样重要。 社区图书管理系统可以有效实现对图书的管理的规范化,系统化管理,减少人工服务情况下的各种错误和缺陷,可对现有的图书馆内资源进行统一的管理。对于社区图书管理员,该系统可以帮助管理员能以更快捷的服务速度对读
325 0
|
小程序 前端开发 Java
ssm+vue基本微信小程序的智能图书管理系统
本设计旨在研究一种社区图书管理系统设计与实现系统,以各种浏览器web页面加上云服务器后端服务系统,通过这一设计过程,进一步熟悉web前端开发技术和云服务器后端开发技术和方法,培养理论联系实际及知识的综合运用能力。 图书管理系统可以有效实现图书管理的规范化、系统化化管理,减少了手工管理过程中的缺陷。能对所有图书资料进行统一的操作管理,让读者可以更方便借阅图书,能使图书馆更好的发挥其功能,使读者能更好地享受图书资源。现如今,计算机发展是最快的,计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性同时,建立一个实用而操作简便的检索查询系统也
272 0
|
小程序 前端开发 Java
微信小程序实现图书管理系统
系统使用SSM框架开发图书管理的后台管理接口功能,小程序通过接口进行调用显示,并提供给客户相应的处理操作功能,主要包括图书的增删改查功能 运行环境 Jdk8+tomcat8+mysql5.7+eclipse或IDEA+微信小程序 项目技术(必填) spring+spring mvc+mybatis+微信小程序
1064 0
微信小程序实现图书管理系统
|
5月前
|
监控 前端开发 小程序
陪练,代练,护航,代打小程序源码/前端UNIAPP-VUE2.0开发 后端Thinkphp6管理/具备家政服务的综合型平台
这款APP通过技术创新,将代练、家政、娱乐社交等场景融合,打造“全能型生活服务生态圈”。以代练为切入点,提供模块化代码支持快速搭建平台,结合智能匹配与技能审核机制,拓展家政服务和商业管理功能。技术架构具备高安全性和扩展性,支持多业务复用,如押金冻结、录屏监控等功能跨领域应用。商业模式多元,包括交易抽成、增值服务及广告联名,同时设计跨领域积分体系提升用户粘性,实现生态共生与B端赋能。
415 12

热门文章

最新文章