- 博客(33)
- 收藏
- 关注
原创 自存,js关于日期相关的操作
代码意思就是把根据年月日(不能添加时间和秒否则不一样)生成新的时间戳,然后比对时间戳判断是不是在同一天。如果todayStart 和targetDateStart 相等就是同一天否则则不是。在data类后面加上.time就变成时间戳了。因为月份是从0开始算起,所以获取月份要加1。new data();通过时间戳判断某个日期是否为同一天。可以获取对应的年月日 时分秒。data转换成时间戳。
2024-12-24 10:37:09
150
1
原创 自存 sql常见语句和实际应用
因为文章和评论属于1对多的关系,左外连接评论表就会产生许多多余的文章数据,所以要对文章id进行分组,然后统计文章id的数量就是这个文章的评论数量。分组查询,就是对某一列的数据的相同的分组 group by 这一列。左外连接,就是主表都查询出来,然后右表根据条件匹配。查询的就是两个表相乘,结果为两个表的笛卡尔积。那么就会查询id=article_id的数据。查询文章列表,并且查询每条文章的评论数。相比于上面这种把主表的数据都查出来了。这种并不是我们想要的结果。通常会添加一些查询条件。然后这样的查询结果为。
2024-11-19 14:40:31
705
原创 自存 关于RestController请求传参数 前端和后端相关
关于data 和params两种传递参数的方法 data传递的是再请求体里面传递参数,而params是在请求头传递参数 post 就既可以用请求头也可以用请求体。@RequestBody是找寻请求体里的数据的,我测试下来 @RequestBody可以接受实体类,可以接收list集合 但接收字符串有一点点问题。Get请求是通过Url方式传递的 ,所以Get请求不能用@RequestBody来传递参数。接收字符串有一点问题好像。也可以定义一个实体类来接收。Get请求传递参数一般是。
2024-11-15 15:58:22
678
原创 自存,vue中组件封装和组件通讯
这就是父传子的基本用法,但还是有很多问题,就比如在组件封装的时候如何在子组件设置哪些参数必须要上传,那些参数可传可不传,参数在不传的时候设置默认值,参数传递参数是规定要传递哪些参数,这些在子组件都是可以配置的。以前没有setup的时候好像是直接return回去。如果我让type为Number,子组件就会报错。说明这种校验方法有效,默认值和是否必须传同理。父组件通过ref来获取子组件的方法。1.父组件向子组件传递数据。在子组件接收方式就变成这样。父组件向子组件传递数据。子组件向父组件传递方法。
2024-10-28 14:51:25
178
原创 关于git分支
可以看到master主分支的test文件内容变成了test分支下面的test文件的内容,但是这里没有提示?原因我推测是在test分支修改了,但是在master分支没有修改过这个文件,所以test分支下的这个文件优先级别更高?,但这样会不会有一个问题,就是在主分支合并其他分支的时候,操作主分支的人并不知到谁修改了这个文件,如果操作test分支的人修改了一个文件 这个文件在在主分支和从分支下都有,但是从分支修改了这个文件,主分支没有修改过这个文件,这个文件不就被覆盖了吗?
2024-10-12 15:45:33
634
原创 自存,关于rabbitmq的个人理解
我的理解是springboot里一个接口的主要任务一般都是操作这个表的增删改查,这是这个方法主要任务,但是这个方法又要执行其他任务,前提是这个任务对这张表的增删改查没有影响,然后这个方法又相对来说很耗时的方法,我觉得这种就可以使用rabbitmq异步发送消息来让这个函数快速执行,就比如在文件合并接口时,需要把这个文件的数据存到数据库里面,然后合并文件这个方法又是需要耗时的,那么我们就可以发送一个消息,然后让这个方法监听这个队列从而实现异步调用。这个时候我在写一个方法来监听q1,打印一下这个项目。
2024-10-09 15:27:55
359
原创 自存,关于RandomAccessFile和response实现视频播放
应该是只能用RandomAccessFile来读分片读文件,如果我用InputStream就只能读取整个文件了,这样子视频就不能拖动进度条了,因为inputstrem不能指定要读取的位置。RandomAccessFile类是随机读取文件类可以支持读和写,还可以冲指定位置开始读,从我在网上查到的资料来看,RandomAccessFile一般是用于视频播放的实现,一般来说,前端在播放视频时请求头会携带range这个参数,这个参数记录了,当前播放到了哪一个字节。我是根据文件md5和名字存文件的,这里可以忽略,
2024-09-18 15:46:00
307
原创 自存 ,javaIO流,outputstrem,inputstrem
如果我们想要写入多个字节要怎么办呢,实际上write()方法不仅可以添加单个字节,也可以添加byte类型的数组,当然在Java中字符串有可以转成字节数组的方法。new FileOutputStrem里面接收的可以是一个文件路径,也可以是一个file对象,原因是在创建输入输出流时也会根据这个路径创建一个file对象。inputstrem意思就是输入流,方法为read,是只读取一个字节,也指定读取多少,可以读取到指定的数组。可以看到上面是没有读取的数组,全是0,下面则是read了之后的结果。
2024-09-18 14:34:59
223
原创 自存,关于response
response是返回给浏览器的数据,可以返回文件,图片文字字节,后端可以对response设置信息,就比如是让浏览器下载还是让浏览器展示,主要是图片,还是文件,一些文件没办法展示只能下载了。如果是这样的话,浏览器会判断这个文件是什么文件,可不可以展示,个人测试下来图片,文件可以展示,然后压缩包展示不了,如果是图片(上述代码),那么就会展示。但有一些文件他是展示不了的,比如说zip压缩包或其他,那么他就会下载这个文件。这种下载是没有文件名字的,然后下载也没有下载进度。
2024-09-07 15:38:59
322
原创 自存,关于VO,DTO的使用
在之前写的代码值,我接收前端的json对象和响应给前端的json对象都是java实体类,这样虽然简单,但随着接口的数量越来越多,我也发现了一些问题,比如在登录注册时,usename和password是必须要校验的,这个时候我们在Java用户表实体类添加非空校验,但有一些字段使用前端也是传递json数据,就比如修改用户资料(包括:昵称,生日,性别)等等,这些是不需要传username和password的,但如果我们还是用user表实体类接收时username和password又要必须传,这样就前后矛盾了。
2024-08-26 09:43:40
306
原创 自存 vue路由通信
这里我使用方法是点击搜索时在父路由发送query参数跳转到子路由,然后子路由监听query的变化,如果变化了就发送请求查询数据库。监听路由变化,如果父路由点击搜索了就代表route.query发送了变化,发送变化了就给搜索值复制然后查数据库赋值给新的文章值。好像从me这个路由跳转到对应的子路由不需要用params传递id,在子路由一样可以接受到。关于搜索,搜索的组件是在父组件里面,然后我要搜索的是各个子路由的内容。如图个人中心是一个大组件,个人文章,博客,关注,粉丝是一个小组件。点击的时候把id传过来。
2024-08-17 16:44:54
256
原创 springboot查询列表集合的一些条件
一般来说对于查询数据list集合(比如查询文章),都有一些多功能的查询,就比如按时间排序,按浏览量排序,还有分页,限制查询几条,从第几条开始查询。是否为查询用户相关的文章,为了保证接口的复用性,我一般查询list集合只写了一个接口,但传过来的参数有很多,这样查询文章集合,无论查询文章集合是按时间查,按热度查,还是查询用户相关文章,还是查询相关标签下的文章都可以,但是不知道这样子查询有什么问题...不知道这样子写规范不规范,这么多if是不是影响性能,但现在暂时是这样写的。pageVo就是一些查询条件。
2024-08-17 14:58:48
218
原创 自存,一些Java相关的东西
多态,如果是之前的方法就又要新建一个Duck类来继承,就很麻烦,这样可以没必要写一个duck类来继承animal类,节省代码空间。3.lambda表达式,是一种匿名内部类的简化写法,lambda表达式不用创建类,直接写他的方法。然后重写接口的方法,右边就相当于一个新的类,(这个类没有名字)继承swim的方法,相当于。3.流:对某个数据(主要是集合)进行一系列操作(过滤,转换,统计,打印。上面是匿名内部类,下面是lambda表达式,两个都是一样的。个人理解,左边是新建一个接口,右边是创建一个匿名内部类。
2024-08-13 15:37:37
223
原创 自存,maven,springboot,多模块
例如,我在cs的 src/main/java/com/example/springboot_demo路径下写了一个接口,这个路径和spring boot的路径一样的。例如,我在cs模块创建了一个方法,然后我在springbootdeom模块引入cs模块,然后调用cs的方法。后面我猜想的是,引入依赖的时候就相当于把两个模块的目录进行了合并,所有虽然是两个模块,但目录结构都要一样的。直接把这个坐标引入其他模块,就相当于引入了这个模块的所有依赖,还有这个模块的类。如果是父子模块,那么子组件是这样的。
2024-07-25 09:45:36
291
原创 自存,IDEA操作git,提交代码到gitee
这个时候我idea里面的文件和gitee不一样了,这个时候我如果不pull(拉),而是直接push(推),如果在idea的直接改然后提交就会出一个idea和gitee的代码不一致的bug。能提交的前提条件,gitee的仓库文件要和idea里面的文件一样,如果不一样就不能提交。这种就是gitee仓库和idea代码不一致,需要先拉代码再推。就是在比如在公司有人修改了代码提交上去就会导致下面的情况。这里是没有pull(拉代码),直接修改提交。例如:我提前修改gitee的代码。点击右上角蓝色箭头先更新一下代码。
2024-07-18 09:42:27
198
原创 rbac五张表,以及查询用户权限
查四个表,user用户,user_role(用户角色),id和用户id关联,role_limit(角色权限)(两个角色id关联),limit(权限)(权限id和id关联)角色权限表(id,角色id,权限id),存这个角色有什么权限(比如普通管理员有修改文章,超级管理员有修改和删除文章)用户角色关联表(id,用户id,角色id)存这个用户是什么角色(管理员还是用户)角色表:角色名称,id(超级管理员,普通管理员,普通用户)用户表:用户名称,id(张三,李四,王五)权限表:权限名,id(增删改查)
2024-07-12 21:19:47
366
原创 springboot项目的一些心得
上面两种情况@NotBlank都可以进行检验拦截,@NotBlank是对String进行晓燕。@NotNull是对Integer也可以应对上述情况,前提是integer而不是int。controller层 :@RestController。传递json时json转成实体时@RequestBody。在实体类中添加相应约束,比如不为空之类来进行相应约束。然后前端传递过来json的数据来进行校验。service层:@Service。null就是前端根本没有传递过来值。""就是传递过来了但没有值。
2024-07-07 21:39:33
132
原创 自存, 分页,分页查询,动态sql
这是前端页面发生改变是前端的代码,点击给后端发送请求,携带的参数有page(页数),token,(input是分页查询的参数,这个后面再说)这里input为""xml文件写的动态sql为:如果input为''则执行select * from columns limit 6 offset #{pageNurug}这里用到了动态sql,这里说一下,xml文件的创建和写mapper接口的文件要创在一起。由于传递的input为''意思就是限制查询六条数据,第二页就在7-12查,依次类推。
2024-06-08 17:07:14
231
原创 git和github绑定(SSH)连接
另外还要打开test.pub文件,把这个密钥复制在github上,像这样,新建一个ssh密钥把test.pub复制进去。在.ssh下面创建config文件,意思当我们访问github时,指定使用test这个密钥。然后将文件提交上去后使用git pull就可以将文件更新在github上去。使用 git clone +ssh的格式,创建了的ssh在这。查看.ssh的文件,发现有test文件。1.首先在github创建一个存储库。然后就可以在git上面新建一个文件夹。2.在git上进入.ssh目录中。
2024-06-06 21:21:32
263
原创 :class改变css的量
这是盒子的点击事件,相当于点击后把index给了value,index是这个盒子的序号,value就改变了,进而:class要选择的盒子也会变化。activty为css,满足条件value==index时就会触发,value是data绑定的量,利用:class和@click就可以实现点击某个盒子来改变他的颜色。最近小程序写的有点多,一些小细节也同时写了。
2024-06-04 22:05:53
155
原创 自存,vscode 下载uni-app
如果出现了:页面【node-modules/@dcloudio/uni-ui/lib/uni-transition/uni-transition]错误: TypeError: uni.requireNativePlugin is not a function at ....这样问题就解决啦(至少我是这样的,官方文档更详细,我只是自存。新建一个vue.config.js文件内容为。4.在pages.json配置。下载 sass-loader。3.下载uni-ui。
2024-06-01 23:26:27
351
1
原创 自存 vue解决websocket刷新连接断开问题
Refresh是刷新方法,意思就是如果username为空就拦截,不为空就把websocket创建一个新的类,这个在刷新时调用,主App.vue中的websocket方法就是刷新方法。username就是用户名,在用户登录后就存入sessionstorage中,这里不赘述,如果没登录sessionStorage就没有值,就不创建websocket。一般来说,websocket长连接在登陆时建立,但如果刷新时这个连接就会断开,2.在登录后主动创立一个websocket。
2024-05-18 11:28:10
1261
原创 自存,解决vuerouter传过来的数据在刷新时数据丢失的问题
this.$route.params.username是上个页面传过来的,this.$route.params.username=null意思就是刷新时上个页面的数据找不到了为空,我这里写console.log,只是自己验证一下状态,可以不写,问题原因:从一个页面传的参数到另一个页面,如果这个页面刷新时,就要重新或取到上一个页面传过来的数据,但上个页面数据已经被刷掉了(个人理解),然后传过来的数据为空,然后就刷新时页面为空了。
2024-05-03 17:40:00
464
原创 自存 vuerouter一些用法,写一下页面跳转
children是这个路由的子路由,例如下 path路径为/login所显示的vue组件为zhuye1,而path路径如果是/login/shangping,那么所显示的vue组件就是Shangping了,大概意思就是这样。router-view就是/login/shangping的位置,然后router-view也是一个盒子,也可以用css调整他的位置,如果没点处理中心就不显示router-view,点击了就显示了,大概是这个意思。vuerouter是动态路由,大概意思就是控制页面相关的东西。
2024-04-27 22:44:28
487
4
原创 自存 有关java类打印和json打印的一些区别,(有关redis)
2.user表转为json和从redis中取出来的json其实类型格式是一样的,JSON.Array()是对json数据进行换行,为什么要换行呢,其实这些取出来的数据大多都要发给前端,如果不换行就会造成如下结果。1.可以看出来user表打印的结果是xx=xx类而json是xx:xx类。这是java的代码,usermapper.get()是一张数据库的表。可以看到换行后的json数据更加清晰,也更好取出数据。好像json数据存入redis就不要换行了直接存就行。
2024-04-21 15:10:00
196
1
原创 自存 springdataredis基础操作
可以看到·没序列化是data(name=yhw,age=9),序列化后就转成json对象就可以存入redis的。可知 stringRedisTemplate是对字符类型进行转换而RedisTemplate没有。application.properties的文件配置。第二:将json数据存入redis。再测试类定义两个序列化的。
2024-04-16 23:09:59
151
1
原创 自存 docker里的创建的redis redis.conf没有怎么办
redis redis-server /etc/redis/redis.conf是指定redis.conf文件的位置。如果docker创建redis -v报错大概是没有相应的文件,可以只创一个容器然后进入该容器查看相应文件。可以看到redis没有密码就不能访问,有密码就可以访问了,说明redis.conf文件是有效的。再redis.conf文件中写一个数据,意思是增加密码的。可以看到/etc目录下根本没有redis文件。再进入这个容器内部就有redis文件了。先把之前的容器删了,再运行新的容器。
2024-04-14 19:10:46
658
1
原创 vue项目打包部署在docker上的nginx上
在docker运行一个nginx容器,html是前端页面文件,conf 是nginx.conf的配置(们)后输入whereis nginx进入/usr/share/nginx就可以看dish目录在哪了。dist文件里面的index.html就是最初的html文件了。后面在这个文件中会出现一个dist文件这个就是打包好的文件了。root改成dist目录,index改成要运行的html文件。注意dist目录是虚拟机的目录,不是数据卷的目录。然后将打包好的dist放到html文件下。
2024-04-08 20:35:02
252
1
原创 java:图片的上传,本地存储,回显
action为后端的接口,accept为允许的文件类型,on-success为成功回调的函数,headers为携带的请求头。这个是在addInterceptors注册验证方法,excludePathPatterns是放行的接口。这个是静态资源映射,使Java可以访问D文件下下面的东西,映射路径为/img/**】这个是验证前端是否携带token,如果携带放行,如果未携带拦截。这是token的生成和token的解析。vue2定义参数是在data()里的。这是登录成功后的操作。注册进mian.js。
2024-03-31 13:34:43
977
1
原创 java后端:关于登录校验的一个小误区?
可以看到输入的密码和数据库的密码都是123,但password==user.getPassword结果是false,但。后来我网上搜了下,好像是==不仅要求数值相等,还要求地址相同?不清楚,反正写登录界面判断密码时用equal就对了。这个是一个post接口,user是通过前端传过来的数据来查询的账号,password是前端输入的密码,password.equal(user.getPassword)为true。
2024-03-16 23:19:55
224
1
原创 SpringBoot静态资源配置相关
但如果要在其他文件存放图片相关资源则需要进行相关配置,则需要在application.properties文件下配置。如果将图片直接放在static目录上,不需要配置,可以直接在服务器上访问。这样子static中的文件就访问不了了。
2024-02-20 23:17:50
150
原创 java错误 cannot be cast to class xxx
意思是class不能有这种情况,我这里是直接去打印class这个类结果报错的。打印一个实体类先将其转成列表形式再打印。
2024-01-28 21:52:41
1053
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人