猎聘第一个项目总结
1,数据库建立
https://www.cnblogs.com/xrq730/p/8446246.html
https://www.runoob.com/mysql/mysql-data-types.html
varchar上面的字节,要根据字符集算容量,varchar最后也变了text储存
- 所有英文无论其编码方式,都占用1个字节,但对于gbk编码,一个汉字占两个字节,因此最大M=65532/2=32766;对于utf8编码,一个汉字占3个字节,因此最大M=65532/3=21844,上面的结论都成立
但是blob完全是字节,根据照片大小限制
2,前后端项目想清楚接受的是什么,返回的是什么
springmvc 在进入方法时候自动注入parameter上的对象,但要看get请求对应的参数(可以用@requestparam控制)post请求可以用传输的格式(表单/ json)json要用@requestBody,其他对象也会帮你生成,但无实际含义
只返回json(list时候返回对象,其他状态码),要前端控制路由
想要后端控制路由,可以配一个model,mvc就是model view control,只能用在jsp(java server page)中,原理是跳到下一个jsp(本质也是servlet)可以可以用到传过去的对象
3,springboot的作用:约定大于配置convention over configuration
具体实现为starter包,不用配置
4,druid,数据库连接池,可以监控
5,
6,关于base64引发的问题,因为数据是blob二进制数据,所以Java最后dao的类型是byte[],直接存,传到前端是一个编码成的string,所以要
String base64 = Base64.getEncoder().encodeToString(userDTO.getUserAddtional().getPhoto());
更多编码知识:https://www.cnblogs.com/vhyc/p/16147359.html
7, 关于form表单和ajax的上传带图片的操作,ajax可以有更多的控制权,比如什么不为空,详细方法看
https://www.cnblogs.com/vhyc/p/9005845.html
到现在,图片这里的二进制我们已经知道怎么放上去服务器,如何存在数据库,自己系统(新建文件),云
然后我们怎么才能让服务器的内容让别人下载,
先在数据库,自己系统(inputstream),云,把数据放在内存中,然后设置http的头,让他知道是下载的(文件系统也是相当于一个端,要输入输出)