1.数据库可以直接设置默认值吗2.新增的时候:创建时间和更新时间都设置为当前时间3.雪花算法:4.新增数据的时候,sql语句:字段名按实体类写,字段的顺序是按表的顺序。5.js接收长整型或大整型精度丢失:6.消息转换器:JacksonObjectMapper???7.具体细节的错误提示,如何从错误日志中抓取信息?8.异常类要放在那个包里呀?9.设计数据库时,为啥不直接把id设计成字符串类型?10.为什么前台的传过来的json能直接转成实体类对象?11.全局异常处理器:12.resultInfo尽量放到controller层,当无法满足时再放到service层。13.写代码思路:
1.数据库可以直接设置默认值吗可以,设置默认字符串时,记得加单引号。
2.新增的时候:创建时间和更新时间都设置为当前时间更新的时候:只设置更新时间为当前时间。
3.雪花算法:这 64 个 bit 中,其中 1 个 bit 是不用的,然后用其中的 41 bit 作为毫秒数,用 10 bit 作为工作机器 id,12 bit 作为序列号。
给大家举个例子吧,比如下面那个 64 bit 的 long 型数字:
第一个部分,是 1 个 bit:0,这个是无意义的。
第二个部分是 41 个 bit:表示的是时间戳。
第三个部分是 5 个 bit:表示的是机房 id,10001。
第四个部分是 5 个 bit:表示的是机器 id,1 1001。(三四部分组合就是服务器的编号)
第五个部分是 12 个 bit:表示的序号,就是某个机房某台机器上这一毫秒内同时生成的 id 的序号,0000 00000000。
原文链接:https://blog.csdn.net/lq18050010830/article/details/89845790
java的(biginteger,long)类型,js会自动用int来接收,int位数比较短,所以后面的位数会四舍五入。损失精度。
后端返回比较大的数据的时候,要转为字符串再给前端。
添加一个消息转换器:JacksonObjectMapper
6.消息转换器:JacksonObjectMapper??? 7.具体细节的错误提示,如何从错误日志中抓取信息?从异常中获取信息方法:
java.lang.Throwable
Throwable是所有异常类的根类
1)getMessage():String 返回描述该异常对象的信息
2)toString():String 返回三个字符串的连接:1)异常类的全名;2)“:”(一个冒号和空白)3)getMessage(方法)
3)printStackTrace():void 在控制台上打印Throwable对象和它的调用堆栈信息
4)geteStckTrance():StackTranceElement[] 返回和该异常对象相关的代表对栈跟踪的一个对栈跟踪元素的数组
原文链接:https://blog.csdn.net/weixin_44199924/article/details/100044978
异常类放在common包下
统一异常处理器放到web包的handler下
9.设计数据库时,为啥不直接把id设计成字符串类型?无法实现自动增长,自动增长必须时整形int。
10.为什么前台的传过来的json能直接转成实体类对象?springMvc(集成了jackson工具包)的前端控制器帮我们做了这个转换,之前我们都是自己转的,用Jackson。
Jackson的核心类是ObjectMapper,通过ObjectMapper可以序列化和反序列化Json。
使用Jackson把Java对象转Json:
//1-2 读取流中的数据,读取json字符串 String json = IoUtil.read(inputStream, "utf-8"); //1-3 将json字符串转换成student对象 Student student = new ObjectMapper().readValue(json, Student.class);11.全局异常处理器:
全局异常处理类,处理的异常主要分为三类:
【通过具体的异常类型定位】 ① 特定的一些异常 对于他们,我们直接捕获,给前端提示
【自定义一个业务异常】 ② 业务异常 对于他们,我们直接捕获,捕获完了,将业务报错,返回给前端
【除了上面两种】 ③ 非预期异常 对于他们,我们直接捕获,捕获完了,记录日志, 给前端一个假提示
12.resultInfo尽量放到controller层,当无法满足时再放到service层。 13.写代码思路:先画图,照着图写代码,不会了再瞅一眼。



