记一次SpringMVC框架练习:一个简单的外卖点餐平台
这是本人今年寒假培训团队合作作品,一个使用SpringMVC+Mybatis框架的外卖点餐平台,由于本人第一次使用SpringMVC框架,实现的功能还比较简单。
目前实现的功能:
前台的用户注册,登录,修改身份信息。
用户点餐的基本功能(添加到购物车,下单等等)。
后台的管理员注册,登录,修改密码。
菜单、菜单分类和通知的增删改查。
总结:通过此次培训,感觉到平时学习到的各种框架没有深入理解,只是停留于看老师教的内容,而没有去自己动手操作,导致运用框架进行开发的时候出现问题。在出现问题时要善于查找框架的官方文档和网上的资料,通过此次培训还是学到了很多,巩固了以前学习的jsp,session与cookie,git,前后端传值以及数据库的相关操作和知识。
遇到的问题:[1]Spring+SpringMVc+Mybatis实现数据库查询 - Yrion - 博客园[EB/OL]. /2021-02-15. https://www.cnblogs.com/wyq178/p/6815373.html.
[2]基于springmvc+mysql+mybatis实现用户登陆功能_osca ...
Melkman算法处理凸包问题
update:2023-3-26Melkman算法无需进行数据预处理,只需要给出点集合,算法会自动处理。实现代码待修改,无需进行快排。
Melkman算法是1985年Avraham A. Melkman在其在线简单折线的凸包的在线构造中引入的。他提出了复杂度为O(n)的增量算法计算。简单之处是使用了双向表的方法来实现。
算法思想:
逐个比较所给点的y坐标值,选出y坐标最大的点,若两个点的y坐标值相同时,取x坐标最小的点,并将该点作为该点集的第一个元素
计算出其他所有点与y坐标最小点的斜率,并将点集按照斜率从小到大排序:
第一次首先找出第一个点的左右相邻的两个点,构成三角形,如果初始的点与该点相邻的两个点共线,则依次找下一个点;
整个查找按照逆时针方向,判断当前点是不是在凸包内部,则去掉上一个点(因为该点在凸包内),将当前点添加到凸包上的点集中;
直到查找到最后一个点结束,此时该点集的左右两端为同一点,即形成闭包。
注:首先将初始点(y坐标最小的点)放在所求点集的中间,分别向该点的左右两边添加元素。因为该双向表的两端的元素相同,所以满足上一点的两条边和当前点与上一点连成的直线均 ...
近期的一点点想法[21.1.14]
近况总结:关于学习与个人网站:经过一个多星期的复习,终于迎来了寒假,并在期末考试中取得了较为理想的成绩。但是还是对自己的英语考试成绩不太有信心,可能还是对于英语的考试要认真准备一番,不能够全靠吃老本。然后得对自己这一学期的学习进行整理,顺便整理一下自己的小网站,由于准备考试,这个网站也一直没什么更新,希望自己的文章能够少而精吧,尽量不要从网上仅仅是复制粘贴,要有自己的思考过程,这也算是对自己的一个小要求吧。
购买:
购入了树莓派4B ¥390
红米路由器AX5
之前一直对硬件(嵌入式)十分抵触的我,在犹豫了好久后终于买下了这台树莓派4B,本来打算在上面跑跑爬虫、脚本什么的,后来发现可以连接外置传感器,使用HomeBridge接入ios,传感器的价格还可以接受(感觉找到了新的折腾点,接下来可以尝试温湿度传感器和空气质量传感器 :arrow: ),尝试看看GIOP相关的库,写写HomeBridge的插件。与此同时,全栈组那边的JavaWeb项目的学习还不能停止,得继续学习JavaWeb相关的知识(还能在树莓派上跑数据库,哈哈哈哈),以及蓝桥杯和飞行器算法设计比赛,感觉这个寒假的真的安 ...
基于TCP/IP的Java聊天室软件
基于TCP/IP的Java聊天室软件GitHub:https://github.com/CodingLink/tcp-chat
流程图:
代码实现:客户端:
在ClientFrame中创建Socket的对象,将IP和端口号分别存入ipIn和portIn两个String类型变量中;
连接服务器;
使用BufferedWriter和BufferedReader读取Socket中的输入流和输出流;
关闭连接。
ClientFrame方法用于客户端的界面显示。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556public ClientFrame() { this.setDefaultLookAndFeelDecorated(true); //关闭窗口即关闭进程 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle(&q ...
基于arm64架构的JupyterLab cpp环境安装(二)
安装cpp内核1. 安装前的准备由于该内核编译时需要Python的import模块,而此模块在Python3中被移除,使用importlib.import替代,所以新建conda环境,设置Python=2.7
12conda create -n lab python=2.7conda activate lab
安装Python-devel gcc cmake gcc-c++
1yum install gcc gcc-c++ cmake python-devel
安装distro
1conda install distro
下载源代码并编译c++库
1python cpt.py --create-dev-env Release --with-workdir=./cling-build/
//此处软件作者使用Debug方式进行编译,但我发现此方式会出现memory exhausted错误
解决办法参考自stackoverflow.com
2. 修改环境变量1export PATH=/cling-install-prefix/bin:$PATH
3. 安装cling内核12345678 ...
基于arm64架构的JupyterLab cpp环境安装(一)
基于arm64架构的JupyterLab cpp环境安装1. 安装conda环境由于miniconda和anaconda官方没有arm64版本的,在github上面有修改版的archiconda3 可以通过wget下载,全程根据提示安装
1234cd /usr/local/srcwget https://github.com/Archiconda/build-tools/releases/download/0.2.3/Archiconda3-0.2.3-Linux-aarch64.shchmod +x Archiconda3-0.2.3-Linux-aarch64.sh./Archiconda3-0.2.3-Linux-aarch64.sh
导入环境变量
1source ~/.bashrc
查看conda版本
1conda --v
修改conda源为清华镜像源
1234567891011121314conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda con ...
Springboot零基础搭建简单后台练习(二)
二、创建数据库表实体类以及实现对数据库表的增删改查操作分别创建三个表:
customs表:用于存放用户信息
goods表:用于存放商品信息及库存量
orders表:用于存放订单信息
设定触发器reduce:用于根据订单增减商品库存12create trigger reduce after insert on orders for each rowupdate orders t1,goods t2 set t2.num=t2.num-t1.num where t1.gid=t2.gid and id=new.id;
创建相应的包: entity包:用于存放Mysql表的实体类 mapper包:用于存放执行Mysql数据库的操作 modle包:用于存放json的封装类 service包:用于调用mapper包实现相应的服务 controller包:用于实现Request的控制
1.创建用户表的实体类CustomInfo.java1234567891011121314151617181920212223242526272829303132333435363738394041424 ...
Springboot零基础搭建简单后台练习(一)
一、创建SpringBoot项目1. 新建项目,选择Spring Initializr–>next
2. 项目设置类型:maven 语言:java 打包:jar java版本:11 然后next
3. SpringBoot依赖选择选择Spring Web、JDBC api和MYSQL Driver
4. 编辑项目名称和存储路径
5. finish后编辑pom.xml文件添加所需jar包123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
Spring JDBC学习笔记(Maven导入jar包)
Spring JDBCSpring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发步骤:1. 导入jar包12345678910111213141516171819202122232425<dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.2.8.RELEASE</version></dependency><dependency> <grou ...
JDBC数据库连接池笔记
数据库JDBC连接池1. 概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。
2. 好处:
节约资源
用户访问高效
3. 实现:1. 标准接口:DataSource javax.sql包下的1. 方法:
获取连接:getConnection()
归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会再关闭连接了。而是归还连接
2. 一般我们不去实现它,有数据库厂商来实现
C3P0:数据库连接池技术
Druid:数据库连接池实现技术,由阿里巴巴提供的
4. C3P0:数据库连接池技术步骤:1. 导入jar包 (两个) c3p0-0.9.5.5.jar mchange-commons-java-0.2.20.jar ,
不要忘记导入数据库驱动jar包
maven导入:12345678910<dependency ...