基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的红酒朔源管理系统(java+SSM+JSP+LayUI+jQuery+Mysql)

项目介绍

本项目分为前后台,分为普通用户、管理员、企业用户三种角色; 普通用户无需登录,可在前台直接进行溯源查询,管理员、企业用户可登录后台进行管理; 超级管理员角色包含以下功能: 登录,管理企业,设置管理员,增加管理员,删除管理员等功能。

用户角色包含以下功能: 用户首页,用户进行溯源查询,溯源结果等功能。

企业角色包含以下功能: 注册,登录,企业登录后主页,增删改查红酒列表,新增红酒,二维码列表查看,溯源列表,查看近期溯源人数,修改企业信息,查看溯源二维码等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;  5.数据库:MySql 5.7版本; 6.是否Maven项目:是;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+CSS+JavaScript+LayUI+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中database.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入http://localhost:8080/ncpsy 登录  注:Tomcat中配置路径必须为/ncpsy 否则会有异常 管理员账号/密码:admin/admin 企业账号/密码:user/123456 用户不需要账号密码

订单链条管理控制层:

@RestController

@RequestMapping(“orderTbl”)

public class OrderTblController {

/**

  • 服务对象

*/

@Resource

private OrderTblService orderTblService;

@Resource

private AnimalService animalService;

@Resource

private ProductService productService;

@Resource

private EntController entController;

@Resource

private EntService entService;

/**

  • 通过主键查询单条数据

  • @param oid 主键

  • @return 单条数据

*/

@GetMapping(“selectOne”)

public OrderTbl selectOne(Integer oid) {

return this.orderTblService.queryById(oid);

/**

  • 生成订单链条

  • @param gid 主键

  • @param type 货物类型

  • @return 订单链条

*/

@GetMapping(“ChainForm”)

public Result Chain_Form(Integer gid,Integer type){

Result result=new Result();

result.setDetail(null);

result.setSuccess(false);

Integer id;

if(type==0)//整猪

id=animalService.queryById(gid).getLastOid();

if(orderTblService.queryById(id)==null){

result.setMsg(“牲畜信息记录有误”);

return result;

else if(type==1)//切割后

id=productService.queryById(gid).getLastOid();

if(orderTblService.queryById(id)==null){

result.setMsg(“产品信息记录有误”);

return result;

else{

result.setMsg(“输入类型错误”);

return result;

OrderTbl tempOT=this.orderTblService.queryById(id);

List List_OT=new ArrayList();

List_OT.add(tempOT);

while(tempOT.getLastOid()!=null)

tempOT=this.orderTblService.queryById(tempOT.getLastOid());

List_OT.add(0,tempOT);

Iterator iterator= List_OT.listIterator();

while(iterator.hasNext())

System.out.println(iterator.next().getOid());

List chain=new ArrayList();

Iterator it=List_OT.listIterator();

while (it.hasNext())

ChainModel chainModel=new ChainModel();

OrderTbl orderTbl=(OrderTbl)it.next();

chainModel.setEid(orderTbl.getOutEid());

EntModel entModel1=entService.queryModelById(chainModel.getEid());

chainModel.setEname(entModel1.getEname());

chainModel.setEtype(entModel1.getEtype());

chainModel.setEid(orderTbl.getOutEid());

chainModel.setTime(orderTbl.getConfirmTime());

chain.add(chainModel);

if(!it.hasNext())

ChainModel temp=new ChainModel(chainModel);

temp.setEid(orderTbl.getInEid());

EntModel entModel2=entService.queryModelById(temp.getEid());

temp.setEtype(entModel2.getEtype());

temp.setEname(entModel2.getEname());

if(type==0)//整只

AnimalModel animalModel=animalService.queryModelById(orderTbl.getGid());

result.setInfo(animalModel);

else if(type==1)//切割

ProductModel productModel=productService.queryModelById(orderTbl.getGid());

result.setInfo(productModel);

chain.add(temp);

result.setDetail(chain);

result.setMsg(“链条合成成功”);

result.setSuccess(true);

return result;

@GetMapping(“insertOne”)

public OrderTbl insert(Integer oeid,Integer ieid,Integer lastoid,Integer gid,short gtype,String ctime,String plate,String info) {

OrderTbl orderTbl=new OrderTbl();

SimpleDateFormat format=new SimpleDateFormat(“yyyy-MM-dd”);

try {

// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01

format.setLenient(false);

format.parse(ctime);

} catch (ParseException e) {

System.out.println(“时间输入格式错误”);

e.printStackTrace();

// e.printStackTrace();

// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对

if(!lastoid.equals(0))

orderTbl.setLastOid(lastoid);

if (info!=null)

orderTbl.setInfo(info);

orderTbl.setGtype(gtype);

orderTbl.setInEid(ieid);

orderTbl.setGid(gid);

orderTbl.setOutEid(oeid);

orderTbl.setPlate(plate);

orderTbl.setConfirmTime(ctime);

return orderTblService.insert(orderTbl);

/**

  • 通过主键删除数据

  • @param oid 主键

  • @return 是否成功

*/

@GetMapping(“deleteOne”)

public boolean deleteById(Integer oid) {

return this.orderTblService.deleteById(oid);

/**

  • 修改数据

*/

//http://127.0.0.1:11451/orderTbl/updateOne?oid=1

@GetMapping(“updateOne”)

public OrderTbl update(Integer oid, Integer outEid, Integer inEid,Integer lastOid,Integer gid,Short gtype, String confirmTime,String plate,String info) {

OrderTbl orderTbl=new OrderTbl();

orderTbl.setOid(oid);

orderTbl.setOutEid(outEid);

orderTbl.setInEid(inEid);

orderTbl.setLastOid(lastOid);

orderTbl.setGid(gid);

orderTbl.setGtype(gtype);

orderTbl.setConfirmTime(confirmTime);

orderTbl.setPlate(plate);

orderTbl.setInfo(info);

return this.orderTblService.update(orderTbl);

加工管理控制层:

@RestController

@RequestMapping(“product”)

public class ProductController {

/**

  • 服务对象

*/

@Resource

private ProductService productService;

@Resource

private ProcessController processController;

/**

  • 通过主键查询单条数据

  • @param pid 主键

  • @return 单条数据

*/

@GetMapping(“selectOne”)

public Product selectOne(Integer pid) {

return this.productService.queryById(pid);

/**

  • 新增数据

*/

//http://127.0.0.1:11451/product/insertOne?pid=1&type=5001001&weight=3.5&ptime=2016-12-12&lastOid=1&state=1

// @GetMapping(“insertOne”)

// public Product insert(Integer pid, Integer type, Double weight, String ptime,Integer lastOid,Short state) {

// Product product=new Product();

// product.setPid(pid);

// product.setType(type);

// product.setWeight(weight);

// product.setPtime(ptime);

// product.setLastOid(lastOid);

// product.setState(state);

// return this.productService.insert(product);

// }

/**

  • 更新数据

*/

//http://127.0.0.1:11451/product/updateOne?pid=1&bid=2

@GetMapping(“updateOne”)

public Product update(Integer pid, Integer type, Double weight, String ptime,Integer lastOid,Short state) {

Product product=new Product();

product.setPid(pid);

product.setType(type);

product.setWeight(weight);

product.setPtime(ptime);

product.setLastOid(lastOid);

product.setState(state);

return productService.update(product);

/**

  • 删除数据

*/

//http://127.0.0.1:11451/product/deleteOne?pid=2

@GetMapping(“deleteOne”)

public boolean deleteById(Integer pid) {

return productService.deleteById(pid);

/**

  • 插入新数据

  • @param type 肉品类型

  • @param weight 重量

  • @param time 加工时间

  • @param lastoid 最新订单号

  • @param state 状态

  • @param bid 屠宰着id

  • @param aid 牲畜id

  • @return 单条数据

*/

@GetMapping(“insert”)

public Result insert(Integer type, Double weight, String time, Integer lastoid, short state,Integer bid,Integer aid) {

Result result=new Result();

result.setSuccess(false);

result.setDetail(null);

Product product=new Product();

SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd”);

try {

// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01

format.setLenient(false);

format.parse(time);

} catch (ParseException e) {

System.out.println(“时间输入格式错误”);

e.printStackTrace();

result.setMsg(“时间未按格式输入”);

return result;

// e.printStackTrace();

// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对

product.setLastOid(lastoid);

product.setPtime(time);

product.setState(state);

product.setType(type);

product.setWeight(weight);

product=productService.insert(product);

this.processController.insert(bid,aid,product.getPid());

result.setMsg(“加工完成”);

result.setDetail(product);

result.setSuccess(true);

return result;

管理员管理控制层:

@CrossOrigin

@RestController

@RequestMapping(“admin”)

public class AdminAcctController {

/**

  • 服务对象

*/

@Resource

private AdminAcctService adminAcctService;

@Resource

private LicService licService;

@Resource

private EntService entService;

@Resource

private TypeTblService typeTblService;

/**

  • 通过主键查询单条数据

  • @param id 主键

  • @return 单条数据

*/

public AdminAcct selectOne(Integer id) {

return this.adminAcctService.queryById(id);

/**

  • 查询指定行数据

  • @param offset 查询起始位置

  • @param limit 查询条数

  • @return 对象列表

*/

public List queryAllByLimit(@Param(“offset”) int offset, @Param(“limit”) int limit) {

return this.adminAcctService.queryAllByLimit(offset, limit);

/**

  • 通过主键删除数据

  • @param id 主键

  • @return 是否成功

*/

public boolean deleteById(Integer id) {

return this.adminAcctService.deleteById(id);

/**

  • 修改数据

*/

public AdminAcct update(Integer id,String username,String pwd) {

AdminAcct adminAcct=new AdminAcct();

adminAcct.setId(id);

adminAcct.setUsername(username);

adminAcct.setPwd(pwd);

return this.adminAcctService.update(adminAcct);

//登录注册

/**

  • 登录

  • @param username 用户名

  • @param password 密码

  • @return Result对象

*/

@GetMapping( “login”)

public Result login(String username, String password) {

BCryptPasswordEncoder bCryptPasswordEncoder=new BCryptPasswordEncoder();

Result result=new Result();

result.setSuccess(false);

result.setDetail(null);

if (usernamenull||username"")

result.setMsg(“用户名不可为空”);

System.out.println(“用户名不可为空”);

return result;

if(password==“”||password==null)

result.setMsg(“密码不可为空”);

System.out.println(“密码不可为空”);

return result;

AdminAcct temp=new AdminAcct();

temp=this.adminAcctService.queryByUserName(username);

if(temp==null) {

System.out.println(“用户名不存在”);

result.setMsg(“用户名不存在”);

return result;

System.out.println(bCryptPasswordEncoder.encode(password));

boolean flag=password.equals(temp.getPwd());

// boolean flag=bCryptPasswordEncoder.matches(password,temp.getPwd());

if(flag)

temp.setPwd(“”);

System.out.println(“登录成功”);

result.setMsg(“登录成功”);

result.setSuccess(true);

if(temp.getToken()==null)

String uuid = UUID.randomUUID().toString().replaceAll(“-”,“”);

temp.setToken(uuid);

this.adminAcctService.update(temp);

result.setDetail(temp);

return result;

else

result.setMsg(“密码错误”);

System.out.println(“密码错误”);

return result;

/**

  • 注册

  • @param username 用户名

  • @param password 密码

  • @return Result对象

*/

@PostMapping(“register”)

public Result register(String username,String password) {

BCryptPasswordEncoder bCryptPasswordEncoder=new BCryptPasswordEncoder();

Result result=new Result();

AdminAcct temp=new AdminAcct();

result.setSuccess(false);

result.setDetail(null);

temp=this.adminAcctService.queryByUserName(username);

if (usernamenull||username"")

result.setMsg(“用户名不可为空”);

System.out.println(“用户名不可为空”);

return result;

if (temp!=null)

result.setMsg(“用户名重复”);

System.out.println(“用户名重复”);

return result;

temp=new AdminAcct();

temp.setUsername(username);

password=bCryptPasswordEncoder.encode(password);

temp.setPwd(password);

String uuid = UUID.randomUUID().toString().replaceAll(“-”,“”);

temp.setToken(uuid);

this.adminAcctService.insert(temp);

temp.setPwd(“”);

result.setDetail(temp);

result.setMsg(“注册成功”);

result.setSuccess(true);

System.out.println(“注册成功”);

return result;

//备案审核相关

/**

  • 输出待审核列表

  • @param id 主键

  • @return

*/

public Result licOfAudit_list(Integer id){

Result result=new Result();

result.setSuccess(false);

if(adminAcctService.queryById(id)==null){

result.setMsg(“企业id错误”);

return result;

result.setDetail(licService.getModelByState(0));

result.setSuccess(true);

result.setMsg(“待审核证书获取成功”);

return result;

/**

  • @param lid

  • @param state

  • @return

*/

/**

  • 审核证书

  • @param lid 证书id

  • @param state 证书状态

  • @return

*/

@PostMapping(“setLicState”)

public Result SetLicState(Integer lid,Integer state){

Result result=new Result();

result.setSuccess(false);

if(lid==null){

result.setMsg(“lid不可为空”);

return result;

Lic lic=licService.queryById(lid);

if(lic==null){

result.setMsg(“证书id错误”);

return result;

result.setSuccess(true);

result.setMsg(“证书通过成功”);

lic.setLicState(state);

result.setDetail(licService.update(lic));

return result;

/**

  • 证书筛选

  • @param ename 企业名

  • @param lictype 证书类型

  • @param sernum 编号

  • @return

*/

@Transactional(readOnly = true)

@GetMapping(“licList”)

public Result Lic_Screen(String ename, Integer lictype, String sernum,Integer licstate){

Result result=new Result();

result.setSuccess(false);

List list=new ArrayList();

if(ename!=null){

list=entService.queryByEName(ename);

if(list.isEmpty()){

result.setMsg(“无该企业名的类似企业”);

System.out.println(“企业名错误”);

return result;

if (lictype!=null&&typeTblService.queryById(lictype)==null){

result.setMsg(“企业类型错误”);

System.out.println(“企业类型错误”);

return result;

List list_lic=new ArrayList();

if(!list.isEmpty()){

Iterator iterator=list.listIterator();

while (iterator.hasNext()) {

Lic lic = new Lic();

lic.setEid(((Ent)iterator.next()).getEid());

lic.setLicType(lictype);

lic.setSerNum(sernum);

lic.setLicState(licstate);

List temp=licService.queryAllModel(lic);

list_lic.addAll(temp);

else {

Lic lic = new Lic();

lic.setLicType(lictype);

lic.setSerNum(sernum);

lic.setLicState(licstate);

list_lic=licService.queryAllModel(lic);

if(list_lic.isEmpty()){

result.setMsg(“无此类证书”);

return result;

result.setMsg(“筛选成功”);

result.setSuccess(true);

result.setDetail(list_lic);

return result;

/**

  • 删除证书

  • @param lid 证书编号

  • @return Result

*/

@PostMapping(“licdelete”)

public Result Lic_Delete(Integer lid){

Result result=new Result();

result.setSuccess(false);

if(licService.deleteById(lid)) {

result.setSuccess(true);

result.setMsg(“删除成功”);

return result;

else {

result.setMsg(“删除失败,证书不存在”);

return result;

/**@PostMapping(“”)

public Result lic_Pass(Integer lid){

Result result=new Result();

result.setSuccess(false);

Lic lic=licService.queryById(lid);

if(lic==null){

result.setMsg(“证书id错误”);

return result;

result.setSuccess(true);

result.setMsg(“证书通过成功”);

lic.setLicState((short)1);

result.setDetail(licService.update(lic));

return result;

@PostMapping(“LicNoPass”)

public Result lic_NoPass(Integer lid){

Result result=new Result();

result.setSuccess(false);

Lic lic=licService.queryById(lid);

if(lic==null){

result.setMsg(“证书id错误”);

return result;

result.setSuccess(true);

result.setMsg(“证书不通过成功”);

lic.setLicState((short)2);

result.setDetail(licService.update(lic));

return result;

*/

//企业信息相关

/**

  • 企业信息筛选

  • @param username 用户名

  • @param ename 企业名

  • @param etype 企业类型

  • @param tel 电话

  • @param email 邮箱

  • @return

*/

@GetMapping(“userList”)

public Result Account_Screen(String username,String ename,Integer etype,String tel,String email){

Result result=new Result();

result.setSuccess(false);

String regEx = “^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$”;

Pattern pattern = Pattern.compile(regEx);

Matcher matcher ;

/**if(email!=null) {

//邮箱格式验证

matcher=pattern.matcher(email);

if (!matcher.matches()) {

result.setMsg(“邮箱格式错误”);

System.out.println(“邮箱格式错误”);

return result;

}*/

//用户名格式验证

/**regEx=“-1{4,16}$”;

pattern=Pattern.compile(regEx);

if(username!=null){

matcher=pattern.matcher(username);

if(!matcher.matches()){

result.setMsg(“用户名格式错误”);

System.out.println(“用户名格式错误”);

return result;

}*/

if (etype!=null&&typeTblService.queryById(etype)==null){

result.setMsg(“企业类型错误”);

System.out.println(“企业类型错误”);

return result;

Ent ent=new Ent();

ent.setTel(tel);

ent.setUsername(username);

ent.setEname(ename);

ent.setEmail(email);

ent.setEtype(etype);

List list=entService.queryAll(ent);

if (list.isEmpty()){

result.setMsg(“无此类信息”);

return result;

result.setDetail(entService.queryAll(ent));

result.setSuccess(true);

result.setMsg(“筛选成功”);

return result;

/**

  • 修改企业信息

  • @param eid 企业id

  • @param etype 企业类型

  • @param tele 电话

  • @param ename 企业名字

  • @param email 邮箱

  • @return

*/

@PostMapping(“editEntDetail”)

public Result EditEnt(Integer eid,Integer etype,String tele,String ename,String email){

//邮箱格式验证

Result result=new Result();

result.setSuccess(false);

String regEx=“^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$”;

Pattern pattern=Pattern.compile(regEx);

Matcher matcher;

if(email!=null) {

matcher=pattern.matcher(email);

if (!matcher.matches()) {

result.setMsg(“邮箱格式错误”);

System.out.println(“邮箱格式错误”);

return result;

Ent ent=new Ent();

ent.setEid(eid);

ent.setEtype(etype);

ent.setTel(tele);

ent.setEname(ename);

result.setSuccess(true);

result.setMsg(“修改成功”);

ent=entService.update(ent);

ent.setPwd(“”);

result.setDetail(ent);

return result;

/**

*重置企业账号token

  • @param eid 企业id

  • @return

*/

@PostMapping(“resetEntToken”)

public Result ResetEntToken(Integer eid){

Result result=new Result();

result.setSuccess(false);

if(eid==null){

result.setMsg(“eid不可为空”);

return result;

if(entService.queryById(eid)==null){

result.setMsg(“eid错误”);

return result;

Ent ent=entService.queryById(eid);

String token=UUID.randomUUID().toString().replaceAll(“-”,“”);

ent.setToken(token);

ent=entService.update(ent);

result.setMsg(“重置token成功”);

result.setSuccess(true);

result.setDetail(ent);

return result;



  1. \w\d_ ↩︎

基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql)相关推荐

  1. Java项目:红酒朔源管理系统(java+SSM+JSP+LayUI+jQuery+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本项目分为前后台,分为普通用户.管理员.企业用户三种角色: 普通用户无需登录,可在前台直接进行溯源查询,管理员.企业用户可登录 ...

  2. 基于javaweb的企业绩效考核管理系统(java+ssm+jsp+bootstrap+jquery+mysql)

    基于javaweb的企业绩效考核管理系统(java+ssm+jsp+bootstrap+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclips ...

  3. 基于javaweb的家校通管理系统(java+ssm+jsp+bootstrap+echarts+mysql)

    基于javaweb的家校通管理系统(java+ssm+jsp+bootstrap+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/ ...

  4. 基于javaweb的台球室计费管理系统(java+ssm+jsp+html+javascript+mysql)

    基于javaweb的台球室计费管理系统(java+ssm+jsp+html+javascript+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/ ...

  5. 基于javaweb的医院病历信息管理系统(java+ssm+jsp+bootstrap+easyui+mysql)

    基于javaweb的医院病历信息管理系统(java+ssm+jsp+bootstrap+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclips ...

  6. 基于javaweb的社区居民户籍管理系统(java+ssm+jsp+js+html+mysql)

    基于javaweb的社区居民户籍管理系统(java+ssm+jsp+js+html+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...

  7. 基于javaweb的农产品溯源管理系统(java+ssm+jsp+layui+jquery+mysql)

    基于javaweb的农产品溯源管理系统(java+ssm+jsp+layui+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/ide ...

  8. 基于javaweb的校园共享自行车管理系统(java+ssm+jsp+easyui+bootstrap+mysql)

    基于javaweb的校园共享自行车管理系统(java+ssm+jsp+easyui+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclip ...

  9. 基于javaweb的学生课堂考勤管理系统(java+ssm+jsp+layui+mysql)

    基于javaweb的学生课堂考勤管理系统(java+ssm+jsp+layui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myec ...

最新文章

  1. BZOJ5319 洛谷4559 LOJ2551:[JSOI2018]军训列队——题解
  2. vulnhub_内网渗透测试的记录——网络安全
  3. uniapp动态显示数组_uni-app学习:4、数据绑定(变量、数组、显示控制)
  4. Socket网络通讯开发总结之:Java 与 C进行Socket通讯
  5. python惰性求值效果_让Python中类的属性具有惰性求值的能力
  6. 生活质量衡量系统_16个你需要了解的DevOps指标,助你提升软件质量
  7. WINRAR青绿色透明主题皮肤 Vista/win 7下效果极佳
  8. 非合作博弈篇——动作空间连续的博弈问题
  9. 转发表(MAC表)、ARP表、路由表总结
  10. 泡泡玛特动作频频,是“多点开花”还是“雷声大雨点小”?
  11. Samsung 6818平台首次编译遇到的问题
  12. 计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年4月份最新版)
  13. 一些快捷键的用法,linux终端操作下
  14. Sectigo邮件签名证书安装指南
  15. 建立统一标准的教育大数据
  16. 将镭神C32激光雷达的PointXYZ数据转化为PointXYZIR格式 - 附代码
  17. 2.2.1 Nginx高性能负载均衡器
  18. 找工作总结(微电子、FPGA方向)
  19. 小学加减法数学题自动生成
  20. 透过上层div点击下层div

热门文章

  1. 博云入选 Gartner 中国云原生领域代表性厂商
  2. 2020年10款实用的电脑软件大盘点,强烈推荐!
  3. c++fstream 中 ios::in ios::out ios::ate ios::app ios::trunc ios::binary
  4. 2013年国外十大最受欢迎搜索引擎网站
  5. ResizeObserver loop limit exceeded 解决
  6. 西南大学计算机科学与技术学院怎么样,西南大学计算机科学与技术专业考研录取比例-报录比-研究生录取人数...
  7. R语言代码中的中文乱码和功能窗口下文件名乱码解决办法
  8. 2017年浙江工业大学大学生程序设计迎新赛预赛 H - 栗酱的文明
  9. Kafka的存储机制以及可靠性
  10. bmp格式怎么转换?教你三步快速转图片格式