登录注册及书籍管理功能

  • 登录注册
    • 实体类
    • dao包
    • web包
  • 书籍管理
    • 实体类
    • dao包
    • web包
    • mvc.xml的配置
  • 界面代码及效果
    • 界面代码
    • 样式
    • 界面效果

登录注册

登录注册所需要用的的实体类,dao包,web包

实体类

User用户表(用户表中的type类型分为 1 跟2 ,1 代表着老板 ,2 代表着客户)

package com.tang.entity;
/*** * @author tangxinlian**2020年7月1日 上午10:11:01*/
public class User {private long id;private String name;//用户名private String pwd;//密码private int type;//类型public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public int getType() {return type;}public void setType(int type) {this.type = type;}public User() {super();}public User(long id, String name, String pwd, int type) {super();this.id = id;this.name = name;this.pwd = pwd;this.type = type;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + ", type=" + type + "]";}
}

dao包

UserDao 中写了登录,注册的方法

package com.tang.dao;import java.util.List;import com.tang.entity.User;
import com.tang.util.BaseDao;
import com.tang.util.StringUtils;public class UserDao extends BaseDao<User>{//登录public User login(User user) throws Exception {String name = user.getName();String pwd = user.getPwd();String sql = "select * from t_easyui_user where true";if(StringUtils.isNotBlank(name)) {sql += " and name = '"+name+"'";}if(StringUtils.isNotBlank(pwd)) {sql += " and pwd = '"+pwd+"'";}List<User> list = super.executeQuery(sql, null, User.class);if(list.size() == 0) {return null;}return list.get(0);      }//注册public int add(User user) throws Exception {String sql = "insert into t_easyui_user(name,pwd) values(?,?)";return super.executeUpdate(sql, user, new String[] {"name","pwd"});}}

web包

UserAction 中写 你登录成功会跳转到那个界面,如果你没有登录成功会跳回登录界面;注册界面是你注册成功跳转到登录界面,没有成功回到注册界面

package com.tang.web;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.tang.dao.UserDao;
import com.tang.entity.User;
import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriven;public class UserAction extends ActionSupport implements ModelDriven<User>{private User user = new User();private UserDao UserDao = new UserDao();@Overridepublic User getModel() {return user;}public String login(HttpServletRequest req,HttpServletResponse resp) {try {User current = this.UserDao.login(user);if(current == null) {
//              如果数据库没有这个用户,那么跳转回登录页面return "login";}req.getSession().setAttribute("currentUser", current);} catch (Exception e) {e.printStackTrace();return "login";}return "mainTemp";     }public String add(HttpServletRequest req,HttpServletResponse resp) {try {this.UserDao.add(user);} catch (Exception e) {e.printStackTrace();return "register";}return "login";}}

书籍管理

书籍管理所需要用的的实体类,dao包,web包

实体类

书籍信息表 book

package com.tang.entity;import java.util.Date;import com.fasterxml.jackson.annotation.JsonFormat;
import com.tang.util.PinYinUtil;
/*** * @author tangxinlian**2020年7月1日 上午10:00:45**ctrl+shift+o 快速导包*/
public class Book {private long id;private String name;//书籍名称private String pinyin;//拼音private long cid;//书籍分类private String author;//作者private float price;//价格private String image="暂无图片";//图片路径private String publishing;//出版社private String description;//描述private int state;//书籍状态(1 未上架  2已上架  3已下架  默认值1)@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")private Date deployTime;//上架时间private int sales;//销量public void setName(String name) {this.name = name;this.pinyin = PinYinUtil.getAllPingYin(name);}public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public String getPinyin() {return pinyin;}public void setPinyin(String pinyin) {this.pinyin = pinyin;}public long getCid() {return cid;}public void setCid(long cid) {this.cid = cid;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}public String getImage() {return image;}public void setImage(String image) {this.image = image;}public String getPublishing() {return publishing;}public void setPublishing(String publishing) {this.publishing = publishing;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public int getState() {return state;}public void setState(int state) {this.state = state;}public Date getDeployTime() {return deployTime;}public void setDeployTime(Date deployTime) {this.deployTime = deployTime;}public int getSales() {return sales;}public void setSales(int sales) {this.sales = sales;}public Book(long id, String name, String pinyin, long cid, String author, float price, String image,String publishing, String description, int state, Date deployTime, int sales) {super();this.id = id;this.name = name;this.pinyin = pinyin;this.cid = cid;this.author = author;this.price = price;this.image = image;this.publishing = publishing;this.description = description;this.state = state;this.deployTime = deployTime;this.sales = sales;}public Book() {super();}@Overridepublic String toString() {return "Book [id=" + id + ", name=" + name + ", pinyin=" + pinyin + ", cid=" + cid + ", author=" + author+ ", price=" + price + ", image=" + image + ", publishing=" + publishing + ", description="+ description + ", state=" + state + ", deployTime=" + deployTime + ", sales=" + sales + "]";}
}

书籍类别表 Category

package com.tang.entity;
/*** * @author tangxinlian**2020年7月1日 上午10:07:13*/
public class Category {private long id;private String name;//类别(玄幻、科幻等等...)public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Category(long id, String name) {super();this.id = id;this.name = name;}public Category() {super();}@Overridepublic String toString() {return "Category [id=" + id + ", name=" + name + "]";}}

权限表 Permission

package com.tang.entity;
/*** * @author tangxinlian**2020年7月1日 上午10:07:34*/
public class Permission {private long id;//权限idprivate String name;//权限名字private String description;//权限描述private String url;//菜单路径private long pid;//父权限private int ismenu;//是否为菜单(1 菜单  2 按钮)private long displayno;//展现顺序public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public long getPid() {return pid;}public void setPid(long pid) {this.pid = pid;}public int getIsmenu() {return ismenu;}public void setIsmenu(int ismenu) {this.ismenu = ismenu;}public long getDisplayno() {return displayno;}public void setDisplayno(long displayno) {this.displayno = displayno;}public Permission() {super();}public Permission(long id, String name, String description, String url, long pid, int ismenu, long displayno) {super();this.id = id;this.name = name;this.description = description;this.url = url;this.pid = pid;this.ismenu = ismenu;this.displayno = displayno;}@Overridepublic String toString() {return "Permission [id=" + id + ", name=" + name + ", description=" + description + ", url=" + url + ", pid="+ pid + ", ismenu=" + ismenu + ", displayno=" + displayno + "]";}
}

用户角色权限中间表 RolePermission

package com.tang.entity;
/*** * @author tangxinlian**2020年7月1日 上午10:07:45*/
public class RolePermission {private long rid;//用户角色private long pid;//用户权限public long getRid() {return rid;}public void setRid(long rid) {this.rid = rid;}public long getPid() {return pid;}public void setPid(long pid) {this.pid = pid;}public RolePermission() {super();}public RolePermission(long rid, long pid) {super();this.rid = rid;this.pid = pid;}@Overridepublic String toString() {return "RolePermission [rid=" + rid + ", pid=" + pid + "]";}}

dao包

BookDao 中写了查询 跟增加 的方法

package com.tang.dao;import java.util.List;import com.tang.entity.Book;
import com.tang.util.BaseDao;
import com.tang.util.PageBean;
import com.tang.util.StringUtils;public class BookDao extends BaseDao<Book>{//    查询public List<Book> list(Book book,PageBean pageBean) throws Exception{String sql = "select * from t_easyui_book where true ";String name = book.getName();long cid = book.getCid();int state = book.getState();if(StringUtils.isNotBlank(name)) {sql += " and name like '%"+name+"%'";}if(state != 0) {sql += " and state ="+state;}if(cid != 0) {sql += " and cid ="+cid;}return super.executeQuery(sql, pageBean, Book.class);}//    新增public int add(Book book) throws Exception {String sql = "insert into t_easyui_book(name,pinyin,cid,author,price,image,publishing,description,state,deployTime,sales) " +"values(?,?,?,?,?,?,?,?,?,now(),?)";return super.executeUpdate(sql, book, new String[]{"name", "pinyin", "cid", "author", "price", "image", "publishing", "description", "state", "sales"});}}

CategoryDao 中写了查询方法

package com.tang.dao;import java.util.List;import com.tang.entity.Category;
import com.tang.util.BaseDao;
import com.tang.util.PageBean;public class CategoryDao extends BaseDao<Category>{//查询书籍分类public List<Category> list(Category category,PageBean pageBean) throws Exception{String sql = "select * from t_easyui_category where true";return super.executeQuery(sql, pageBean, Category.class);}}

PermissionDao 中写了 树形菜单加载和 通过ids 查出ids指定的树形菜单

package com.tang.dao;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import com.tang.entity.Permission;
import com.tang.util.BaseDao;
import com.tang.util.BuildTree;
import com.tang.vo.TreeVo;public class PermissionDao extends BaseDao<Permission>{//树形菜单加载public List<Permission> menuTree() throws Exception{String sql = "select * from t_easyui_permission where true"; return super.executeQuery(sql, null, Permission.class);}//通过ids 查出ids指定的树形菜单public List<Permission> menuTree(String ids) throws Exception{String sql = "select * from t_easyui_permission where id in ("+ids+") "; return super.executeQuery(sql, null, Permission.class);}//树形菜单加载public List<TreeVo<Permission>> menuTreeHandler() throws Exception{List<Permission> permissions = this.menuTree();List<TreeVo<Permission>> nodes = new ArrayList<>();TreeVo<Permission> node;for (Permission permission : permissions) {node = new TreeVo<>();node.setId(String.valueOf(permission.getId()));node.setText(permission.getName());node.setParentId(String.valueOf(permission.getPid()));Map map = new HashMap();map.put("self", permission);node.setAttributes(map);nodes.add(node);}return BuildTree.buildList(nodes, "0");}public List<TreeVo<Permission>> menuTreeHandler(String pids) throws Exception {List<Permission> permissions = this.menuTree(pids);List<TreeVo<Permission>> nodes = new ArrayList<>();TreeVo<Permission> node;for (Permission permission : permissions) {node = new TreeVo<>();node.setId(String.valueOf(permission.getId()));node.setText(permission.getName());node.setParentId(String.valueOf(permission.getPid()));Map map = new HashMap();map.put("self",permission);node.setAttributes(map);nodes.add(node);}return BuildTree.buildList(nodes,"0");}}

RolePermissionDao 中写了 获取角色对应的权限id

package com.tang.dao;import java.util.List;import com.tang.entity.RolePermission;
import com.tang.util.BaseDao;public class RolePermissionDao extends BaseDao<RolePermission>{//  获取角色对应的权限idpublic List<RolePermission> getPids(long rid) throws Exception {String sql = "select * from t_easyui_role_permission where rid = " + rid;return super.executeQuery(sql, null, RolePermission.class);}}

web包

CategoryAction

package com.tang.web;import java.util.List;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.tang.dao.CategoryDao;
import com.tang.entity.Category;
import com.tang.util.ResponseUtil;
import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriven;public class CategoryAction extends ActionSupport implements ModelDriven<Category>{private Category category = new Category();private CategoryDao categoryDao = new CategoryDao();@Overridepublic Category getModel() {return category;}public String list(HttpServletRequest req,HttpServletResponse resp) {try {List<Category> list = categoryDao.list(category, null);ResponseUtil.writeJson(resp, list);} catch (Exception e) {e.printStackTrace();}return null;}}

PermissionAction

package com.tang.web;import java.util.List;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.fasterxml.jackson.databind.ObjectMapper;
import com.tang.dao.PermissionDao;
import com.tang.dao.RolePermissionDao;
import com.tang.entity.Permission;
import com.tang.entity.RolePermission;
import com.tang.entity.User;
import com.tang.util.ResponseUtil;
import com.tang.vo.TreeVo;
import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriven;public class PermissionAction extends ActionSupport implements ModelDriven<Permission>{private Permission permission = new Permission();private PermissionDao permissionDao = new PermissionDao();private RolePermissionDao rolePermissionDao = new RolePermissionDao();@Overridepublic Permission getModel() {return permission;}public String menuTree(HttpServletRequest req,HttpServletResponse resp) {ObjectMapper om = new ObjectMapper();User currentUser = (User) req.getSession().getAttribute("currentUser");try {List<RolePermission> pids = rolePermissionDao.getPids(currentUser.getType());StringBuilder sb = new StringBuilder();for (RolePermission pid : pids) {sb.append(",").append(pid.getPid());}List<TreeVo<Permission>> treeVos = this.permissionDao.menuTreeHandler(sb.substring(1));String json = om.writeValueAsString(treeVos);ResponseUtil.write(resp, json);;} catch (Exception e) {e.printStackTrace();}return null;}}

mvc.xml的配置

mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<config><!--用户相关业务--><action path="/user" type="com.tang.web.UserAction"><forward name="login" path="/login.jsp" redirect=""/><forward name="register" path="/register.jsp" redirect=""/><forward name="mainTemp" path="/bg/mainTemp.jsp" redirect="false"/></action><!--权限相关业务--><action path="/permission" type="com.tang.web.PermissionAction"></action><!--书籍相关业务--><action path="/book" type="com.tang.web.BookAction"><forward name="findBook" path="/fg/findBook.jsp" redirect="false"/></action><!--书籍类别相关业务--><action path="/category" type="com.tang.web.CategoryAction"></action></config>

界面代码及效果

界面代码

login 登录界面

<%@ 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>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>网上书城登录</title><link href="https://cdn.bootcss.com/twitter-bootstrap/4.4.1/css/bootstrap.css" rel="stylesheet"><link href="${pageContext.request.contextPath}/static/css/fg.css" rel="stylesheet"><script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script><script src="https://cdn.bootcss.com/twitter-bootstrap/4.4.1/js/bootstrap.js"></script>
</head>
<body><form class="form-signin" action="${pageContext.request.contextPath}/user.action?methodName=login" method="post"><div class="text-center mb-4"><img class="mb-4" src="/docs/assets/brand/bootstrap-solid.svg" alt="" width="72" height="72"><h1 class="h3 mb-3 font-weight-normal">用户登录</h1>              </div><div class="form-label-group"><input type="text" id="name" name="name" class="form-control" placeholder="请输入用户名..." required autofocus></div>         </br><div class="form-label-group"><input type="password" id="pwd" name="pwd" class="form-control" placeholder="请输入密码..." required></div></br><div class="checkbox mb-3"><label><input type="checkbox" value="remember-me"> Remember me</label></div><button class="btn btn-lg btn-primary btn-block" type="submit">登录</button><p class="mt-5 mb-3 text-muted text-center">&copy; 2017-2020</p></form></body>
</html>

register 注册界面

<%@ 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>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>网上书城注册</title>
<link href="https://cdn.bootcss.com/twitter-bootstrap/4.4.1/css/bootstrap.css" rel="stylesheet"><link href="${pageContext.request.contextPath}/static/css/fg.css" rel="stylesheet"><script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script><script src="https://cdn.bootcss.com/twitter-bootstrap/4.4.1/js/bootstrap.js"></script>
</head>
<body><form class="form-signin" action="${pageContext.request.contextPath}/user.action?methodName=add" method="post"><div class="text-center mb-4"><img class="mb-4" src="/docs/assets/brand/bootstrap-solid.svg" alt="" width="72" height="72"><h1 class="h3 mb-3 font-weight-normal">用户注册</h1>                </div><div class="form-label-group"><input type="text" id="name" name="name" class="form-control" placeholder="请输入用户名..." required autofocus></div>         </br><div class="form-label-group"><input type="password" id="pwd" name="pwd" class="form-control" placeholder="请输入密码..." required></div></br><div class="checkbox mb-3"><label><input type="checkbox" value="remember-me"> Remember me</label></div><button class="btn btn-lg btn-primary btn-block" type="submit">注册</button><p class="mt-5 mb-3 text-muted text-center">&copy; 2017-2020</p></form></body>
</html>

mainTemp 后台管理

<%@ 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><title>后管主界面</title><link rel="stylesheet" type="text/css"href="${pageContext.request.contextPath}/static/js/easyui/themes/default/easyui.css"><link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/js/easyui/themes/icon.css"><script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script><script type="text/javascript"src="${pageContext.request.contextPath}/static/js/easyui/jquery.easyui.min.js"></script><script src="${pageContext.request.contextPath}/static/js/main.js"></script>
</head>
<body class="easyui-layout">
<<input type="text" name="ctx" id="ctx" value="${pageContext.request.contextPath}">
<div data-options="region:'north',border:false" style="height:60px;background:#B3DFDA;padding:10px">网上书城</div>
<div data-options="region:'west',split:true,title:'West'" style="width:150px;padding:10px;"><ul id="bookMenus"></ul>
</div>
<div data-options="region:'south',border:false" style="height:50px;background:#A9FACD;padding:10px;">底部版权</div>
<div data-options="region:'center',title:'Center'"><div id="bookTabs" class="easyui-tabs" style="width:100%;height:100%;"><div title="首页" style="padding:20px;display:none;">欢迎来到网上书城</div></div>
</div>
</body>
</html>

addBook 书籍新增

<%@ 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>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css"href="${pageContext.request.contextPath}/static/js/easyui/themes/default/easyui.css"><link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/js/easyui/themes/icon.css"><script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script><script type="text/javascript"src="${pageContext.request.contextPath}/static/js/easyui/jquery.easyui.min.js"></script><script src="${pageContext.request.contextPath}/static/js/main.js"></script>
<title>书籍新增</title>
</head>
<body><div style="margin:20px 0;"></div>
<div class="easyui-panel" title="新增书籍" style="width:100%;padding:30px 60px;"><form id="ff" action="${pageContext.request.contextPath}/book.action?methodName=add" method="post"><div style="margin-bottom:20px"><input class="easyui-textbox" name="name" style="width:100%" data-options="label:'书名:',required:true"></div><div style="margin-bottom:20px"><input id="cid" name="cid" value="" label="类别" >          </div><div style="margin-bottom:20px"><input class="easyui-textbox" name="author" style="width:100%" data-options="label:'作者:',required:true"></div><div style="margin-bottom:20px"><input class="easyui-textbox" name="price" style="width:100%"data-options="label:'价格:',required:true"></div><div style="margin-bottom:20px"><input class="easyui-textbox" name="publishing" style="width:100%"data-options="label:'出版社:',required:true"></div><div style="margin-bottom:20px"><input class="easyui-textbox" name="description" style="width:100%;height:60px"data-options="label:'简介:',required:true"></div><%--默认未上架--%><input type="hidden" name="state" value="1"><%--默认起始销量为0--%><input type="hidden" name="sales" value="0"></form><div style="text-align:center;padding:5px 0"><a href="javascript:void(0)" class="easyui-linkbutton" onclick="submitForm()" style="width:80px">Submit</a><a href="javascript:void(0)" class="easyui-linkbutton" onclick="clearForm()" style="width:80px">Clear</a></div>
</div>
<script>$(function () {$('#cid').combobox({url:'${pageContext.request.contextPath}/category.action?methodName=list',valueField:'id',textField:'name'});});function submitForm() {$('#ff').form('submit',{success:function (param) {$('#ff').form('clear');}});}function clearForm() {$('#ff').form('clear');}
</script></body>
</html>

样式

fg 登录注册界面所用到的css样式

.form-signin{height: 600px;width: 400px;position: relative;left: 35%;top: 80%;margin-top: 150px;
}

main.js 样式

$(function () {var ctx  = $("#ctx").val();$('#bookMenus').tree({url:ctx+'/permission.action?methodName=menuTree',onClick: function(node){// alert(node.text);  // 在用户点击的时候提示// alert($('#bookTabs').tabs('exists',node.text));if($('#bookTabs').tabs('exists',node.text)){$('#bookTabs').tabs('select',node.text)}else {var url = node.attributes.self.url;if(url){var content = '<iframe width="100%" height="100%" src="'+ctx+url+'"></iframe>>';$('#bookTabs').tabs('add',{title:node.text,content:content,closable:true,tools:[{// iconCls:'icon-mini-refresh',// handler:function(){//     alert('refresh');// }}]});}}}});});

界面效果

登录注册界面


书籍新增界面

后台管理界面
登录为老板的后台管理界面

登录为客户的后台管理界面

网上书城的登录注册及书籍管理功能相关推荐

  1. 网上书城(登录、注册、权限管理)

    网上书城(登录.注册.权限管理) 前言 登录 注册 权限管理 前言 网上书城包括前台.后台 网上书城前台内容: 1 .首页 2. 用户注册/登陆 3. 书籍查询 4 .购物车 5. 订单管理 5.1. ...

  2. 网上书城项目之后台实现书籍分类、新书上架、热销图书

    网上书城项目 前言 书籍分类 效果演示 新书上架 效果演示 热销图书 效果演示 注意要点 总结 前言 嘿,今天为大家分享的知识点呢,是后台编码实现前端页面上的书籍分类.新书上架.热销图书这三个主要功能 ...

  3. 图书馆馆藏书籍管理功能

    1)程序提供图书馆馆藏书籍管理功能:(使用Map实现) a.书籍信息包括书名.作者(可能多人,使用ArrayList实现).出版社.及馆藏数量. b.提供针对书籍书名.作者.出版社的查询功能:书名可进 ...

  4. c/c++编程日记:纯C实现登录注册和忘记密码功能(附源码)

    这是一个用纯C语言和文件操作实现的系统的登录.注册和忘记密码功能.可以用于c语言大作业的登录系统.下面分享一下具体的代码. 首先定义一个结构体来存放用户的注册信息,账号密码等. typedefstru ...

  5. Node.js + Express 4.x + MongoDB 构建登录注册-简易用户管理(四)

    登录和注册的功能算实现了,下面封装DBHelp和增加一个简单的用户管理,这样增删查改就集齐了. 在routes文件夹下面新建DBHelp.js,代码如下: const MongoClient=requ ...

  6. SSM框架+VUE+Mysql实现的疫苗预约接种管理系统(功能包含分角色,登录/注册、疫苗管理、接种点管理、用户管理、疫苗类型管理、我的预约、预约接种管理、关于等)

    博客目录 SSM框架+VUE+Mysql实现的疫苗预约接种管理系统 实现功能截图 系统功能 使用技术 代码 完整源码 SSM框架+VUE+Mysql实现的疫苗预约接种管理系统 本系统为了解决疫苗线下预 ...

  7. 【JAVA项目实战】【图书管理系统】书籍管理功能【Servlet】+【JSP】+【MySql】+【Ajax】

  8. SSM+网上书城系统 毕业设计-附源码180919

    目  录 摘要 1 绪论 1.1 研究意义 1.2开发背景 1.3论文结构与章节安排 2网上书城系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2. ...

  9. 网上书城项目的书籍分类列表展示及新书上架和热销书籍效果展示功能(项目进度四)

    网上书城项目的书籍分类列表展示及新书上架和热销书籍效果展示功能(项目进度四) 前言 需实现的目标(效果图) 书籍分类展示 新书上架展示 热销书籍展示 1.书籍分类展示(实现动态加载数据) 1.1 加载 ...

最新文章

  1. thymeleaf 使用页面报错_异常处理-SpringBoot中thymeleaf对应前台页面大于号\小于号使用问题...
  2. 《七笔勾》--陕北风光
  3. 超级猩猩获 3.6 亿元 D 轮融资,计划今年新开100家门店
  4. 计算机键盘的设计原理图,人体工程学键盘的设计原理
  5. dataframe去重复 python_python – 在DataFrame中组合重复的列
  6. java动态调用c++库
  7. JVM中安全点safePoint有哪些?
  8. linux内核中union,Linux上的Union mount
  9. 如何用纯 CSS 创作 404 文字变形为 NON 文字的交互特效
  10. Sparsity and Some Basics of L1 Regularization
  11. localhost 和ip 地址访问的html页面样式不一样_搭建一个弹幕查询页面(1)
  12. c语言正则表达式替换,Linux C 支持正则表达式的字符串替换函数...
  13. 初级电工技术实训考核装置
  14. Cisco(PacketTracer) - 三层交换机
  15. 微软bi报表服务器,升级 Power BI 报表服务器
  16. 用php语言说句情话,最甜蜜的情话句子(精选50句)
  17. 解决各大浏览器下载文件,文件名中文乱码的问题
  18. linux tc流量控制(一):classless qdisc
  19. 关于ESP8266WIFI转串口的速率问题(含测试数据)
  20. 智能城市应用中的安全和隐私:挑战和解决方案

热门文章

  1. 一点可导和领域内可导能推出
  2. 编码器改造,得到方向和脉冲
  3. 社会教育领域中的创客实践教育
  4. 零基础转行IT,是学Java、C++、Linux和Web前端哪个好?
  5. 基于servlet+mysql+jsp实现体育用品商城
  6. 多商家体育用品商城nodejs+vue
  7. U盘太土没个性?快来定制盘符图像!
  8. 安全多方计算从入门到精通:MPC简介JUGO平台
  9. 使用C#制作Windows窗体应用,实现一个微端下载器功能(多线程/断点续传/微端/下载器)
  10. C语言实现简易网络进程及线程间通信