终于做的差不多了 暂时还不能公开源码
在此纪录自己大学考研前做的最后一个项目
纪录一下web开发的一些注意点
1 首先掌握了springboot中整合redis的使用(可参考下面笔记)
https://blog.csdn.net/weixin_45678130/article/details/122556156?spm=1001.2014.3001.5501
2 在开发过程当中 学习到了各种前后端当中传参的方法使用
https://blog.csdn.net/weixin_45678130/article/details/122042819?spm=1001.2014.3001.5502
其中较多的为如下这种,新建一个java类表示传参的实体类
另一种则是传一个json字符串过来,需要先将字符串转化为json对象然后解析里面的值
另一种则是传过来是一个数组时的解决方法(用Jsonarray接收)
3 搜索功能的后端实现:
传过来的一般是一个字段+值 我采用map的方式存储并传入sql语句
关于#{}和${}的区别:
https://blog.csdn.net/weixin_41231928/article/details/105120292?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164342243116780357246678%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164342243116780357246678&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-105120292.first_rank_v2_pc_rank_v29&utm_term=%24%7B%7D&spm=1018.2226.3001.4187
4 分页查询的后端实现:
https://blog.csdn.net/weixin_45678130/article/details/120874288?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164342285816781685391153%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=164342285816781685391153&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-1-120874288.nonecase&utm_term=%E5%88%86%E9%A1%B5%E6%9F%A5%E8%AF%A2&spm=1018.2226.3001.4450
5 编辑数据的后端实现:
前端我是传过来一个实体类 需要修改的字段有值 不需要修改的话为null
所以sql语句需要判断是否为null再进行update
并且如果传过来是一个list集合,多条数据需要修改时
6 插入数据的后端实现:
7 查询方法的后端实现
查询sql没什么好说的,主要在于返回的数据类型方面,因为数据表大多都是有外键对应的,所以sql语句的查询大多是好几个表连接在一起查询的,所以需要 resultMap重新定义一下数据返回类型
实体类和数据库字段名字一定要提前规划好 对应好 开发会方便特别多!!
<resultMap id="BuyorderResultMap" type="Buyorder">
<id column="buy_ID" property="buyid"/>
<result property="quantity" column="quantity"></result>
<result property="datetime" column="datetime"></result>
<result property="status" column="status"></result>
<association property="materialid" javaType="Material">
<id property="materialid" column="material_ID"/>
<result property="name" column="name"/>
</association>
<association property="supplierid" javaType="Supplier">
<id property="Supplierid" column="Supplier_ID"/>
<result property="Name" column="Names"/>
</association>
<!--
association 配置属性一对一
property 对应videoOrder里面的user属性名
javType 这个属性的类型
-->
<association property="employeeid" javaType="Employee">
<id property="Employeeid" column="employee_ID"/>
<result property="name" column="namee"/>
</association>
</resultMap>
<select id="selectAll" resultMap="BuyorderResultMap">
select m.name as name,b.buy_ID as buy_ID,b.quantity as quantity,b.datetime as datetime,b.status as status,s.Name as Names,p.Name as namee
from buy_list b left join supplier s on b.supplier_ID=s.Supplier_ID left join employee p on b.employee_ID=p.Employee_ID left join material m on b.material_ID=m.material_ID
limit ${(page-1)*pageSize},#{pageSize};
</select>
8 数据统计的后端实现
例如最近七天 最近一个月的销售额等等
<select id="selectRecent" resultMap="BuyorderRecentMap">
select b.buy_ID as buy_ID,b.quantity as quantity,b.datetime as datetime,b.money as money,s.Name as Names,m.name as name
from buy_list b left join supplier s on b.supplier_ID=s.Supplier_ID left join material m on b.material_ID=m.material_ID
where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <![CDATA[ <= ]]> date(b.datetime) and b.material_ID=#{id}
</select>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.ldu.demo.mapper.AnalysisMapper">
<select id="selectSale" resultType="Analysis">
SELECT
MONTH (datetime) AS x,
SUM(
price
) AS y
FROM
sale_list
WHERE
YEAR (datetime) = 2022
GROUP BY
MONTH (datetime)
</select>
<select id="selectBuy" resultType="Analysis">
SELECT
MONTH (datetime) AS x,
SUM(
money
) AS y
FROM
buy_list
WHERE
YEAR (datetime) = 2022
GROUP BY
MONTH (datetime)
</select>
<select id="selectSupplier" resultType="Analysis">
SELECT
supplier_ID as x,count(supplier_ID) as y
FROM
buy_list
GROUP BY
supplier_ID
</select>
<select id="selectCustomer" resultType="Analysis">
SELECT
customer_ID as x,count(customer_ID) as y
FROM
sale_list
GROUP BY
customer_ID
</select>
<select id="selectMaterial" resultType="Analysis">
SELECT
material_ID as x,count(material_ID) as y
FROM
buy_list
GROUP BY
material_ID
</select>
<select id="selectProduct" resultType="Analysis">
SELECT
product_ID as x,count(product_ID) as y
FROM
sale_list
GROUP BY
product_ID
</select>
</mapper>
9 用户权限问题
我只需要在后端返回角色类型即可,然后和token一起传回前端,然后靠前端框架进行页面权限的问题即可。不愧是框架!
1 前端这块用的是vue框架 可谓真的是耽误了太多时间 得从头看这个项目的开发文档 然后重构页面 重构数据连接 重构数据显示 太麻烦了!!
再也不看前端了
2 这里不细讲vue的开发知识点了,只能说这段开发过程中,确实明显感觉到相对于原生前端来说,框架的使用真的是方便太多了,看开发文档才是提高开发效率的最佳办法,此次开发过后,对vue也是熟悉了不少
3 其中父子组件传值 算是用的最多的地方然后layer弹窗的使用方法
layer弹窗官网不更新了 关于vue的使用方法见下面的文档
https://github.com/zuoyanart/vue-layer
算法保密 但是感觉可以使用强化学习的 还是有很大差距 希望考完研能学一下强化学习 优化一下
1 目前前端使用Nginx服务器进行部署,vue项目打包上传然后修改配置文件即可
2 后端使用jdk1.8+mysql环境即可
但是这次想试试docker部署 成功了就再来更新