- 博客(125)
- 资源 (2)
- 收藏
- 关注
原创 引用数据类型和基本数据类型
float:浮点型,32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有。boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false。int:整型,用于存储整数,4个字节,取值范围-2147483648~2147483647,默认值0。byte:字节类型,Java中最小的数据类型,1个字节,取值范围-128~127,默认值0。char:字符型,用于存储单个字符,2个字节,取值范围0~65535,默认值为空。
2023-03-01 09:19:25 564 1
原创 Collection
如图所示Collection继承了Iterable,所以遍历集合的时候。java提供了多种方法, 源码得知:1. 迭代器Iterator iterator();2. foreachdefault void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); }}3. Spliter
2023-02-23 21:44:42 494
原创 Redis集群搭建过程
集成集群:redis-cli --cluster create --cluster-replicas 1 ip:port ip:port ip:port ip:port ip:port ......查看集群中的节点:cluster nodes 会显示当前连接的入口服务器myself master。上面命令中replicas 1 采用组简单的方式进行配置集群,一台主机 一台从机,六台服务器正好三组。连接其中某一个入口:redis-cli -c -p port。下面是主机,上面是从机。
2023-02-23 14:56:08 314
原创 Redis安装(CentOS7)
默认安装到/usr/local/bin目录下,有以下六个文件,没有的话。通过cp [文件1] [文件2] .../[目的目录]复制。准备redisLinux安装包,官网下载,通过xshell从本地上传至linux【/opt】中。redis-server(不推荐)前台启动,窗口关了后redis就会停止。然后进入到/etc中 找到redis.conf 更改一个配置。在/opt/redis-xx中找到redis-conf。回到/usr/local/bin中启动。在/usr/local/bin 启动。
2023-02-18 12:55:32 484
原创 Wmware workstation安装CentOS win10无法ping通虚拟机ip
wmnet1和wmnet8是否启用 这两个是虚拟网卡,就是让虚拟机借助你的宿主机进行上网。wmnet1和wmnet8是两种不同的网络模式。首先尝试win下ping虚拟机Linux的ip 超时,但是反过来Linux可以ping通windows的ip。查看Linux防火墙状态命令:service iptables。关闭Linux防火墙命令:service。
2023-02-18 10:54:35 272
原创 Nosql(一)
nosql not only sql 非关系型数据库,不依赖于业务逻辑方式存储,是以简单的kv模式存储,大大增加了数据库的扩展能力。
2023-02-18 10:44:08 98
转载 @RequestAttribute和@RequestParam注解的区别
在项目里的拦截器里会对Token信息进行解析,解析出来的参数重新放在请求里(用httpServletRequest.setAttribute(name, value)),@RequestParam 注解则表示这个参数是通过前端传递过来的,如果请求里没有这个参数,则会报错400 Bad Request。这个注解用来解析请求路径里的参数(get请求)或者post请求中form表单格式的请求参数;@RequestAttribute 注解的参数在项目里是自己解析出来的,并不是前端传递的。
2023-02-17 11:14:44 323
原创 Springboot mybatis thymelef 添加/删除/更新
添加数据前端传值以form默认的方式进行传递,并不是通过json对象的方式,后端直接用对象进行接受,这里踩了个坑 用RequestBody的方式进行接受,报错了400,RequestBody只适用于json对象方式,前端还要转为json。通过重定向携带数据,会将pn添加到重定向去,以url的方式运行。删除按钮是通过超链接的方式实现的,点击删除按钮时,会获取到列表中词条数据的id以及所在的页码(pn)通过后端@RequestMapping("/deluser/{id}") 获取到数据的id。
2023-02-16 21:52:56 531
原创 Springboot mybaits 对字符串的模糊查询(不能对数字类型不能直接模糊查询)
然后再mapper.xml中用了动态语句来判断传进来的字段是否为空,某个字段为空的话,就不拼接这个字段的模糊查询。实现字段之间的and连接,字段之间为空也可以,那就再前端传值的时候设置默认值defaultValue。对数据库中的数据进行模糊查询,字段为字符串类型。#{}里面的的字符串传到sql中会加上单引号。${}相当于字符串的拼接。
2023-02-16 19:23:22 551
原创 前后端数据不一致导致Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported
Content-Type:multipart/form-data 指定传输数据是二进制类型,比如图片,mp3以及文件。前端我使用默认格式,而我的后端接受的是【@RequestBody User user】 是【json】格式,所以前后端数据不同意,导致错误发生,错误类型为【400】【400】bad request: 原因:1 请求参数不对 2. 请求参数类型不对 3. Get请求的url长度超过浏览器或web服务器限制。,但是在用文本的传输和MP3等大型文件的时候,使用这种编码就显得 效率低下。
2023-02-15 14:50:26 1228
原创 SpringBoot Mybatis 分页实战
RequestParam(value = "pn", defaultValue = "1")请求的参数为pn 默认值为1。model.addAttribute将pageInfo放入model中期中包含了所有的分页的属性以及查询的数据。点击第一页,不存在上一页,首页和上一页禁用,标签不显示。startRow:当前页首条数据为总数据的第几条。endRow:当前页最后一条数据为总数据的第几条。在最后一页,不存在下一页,尾页和下一页不显示。中间页码,存在上一页,首页和上一页显示。pageSize:页面数据量。
2023-02-14 09:59:29 541
原创 @Conditional
@Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件给容器注册bean。@Conditional的定义: 例子:当存在name为tom的组件时,创建user01组件。可以标注在方法上也可以标注在类上@ConditionalOnJava | 系统的java版本是否符合要求 @ConditionalOnBean | 容器中存
2022-12-05 18:04:02 157
原创 @Configuration @Bean(SpringBoot的配置类)
: 指明当前类是一个配置类来替代之前的Spring配置文件,Spring boot的配置类,相当于Spring的配置文件@将方法的返回值添加到容器中通过@Bean向容器中注册组件:方法名就是组件的id,返回类型就是组件类型,返回的值就是组件中的实例对象@Bean("XXX“)XXX就是组件id的别名
2022-12-05 17:48:16 585
原创 @ConfigurationProperties
(Spring Bean详细讲解 什么是Bean?_鹿‘s的博客-CSDN博客_springbeanSpring源码中大量使用了ConfigurationProperties注解,通过与其他注解配合使用,能够实现Bean的按需配置。该注解有一个prefix属性,通过指定的前缀,绑定配置文件中的配置,该注解可以放在类上,也可以放在方法上。例如:配置文件中Car类中:1. 通过@ConfigurationProperties(prefix = "mycat")和@Component@Configurat
2022-12-05 17:36:02 251
原创 SSM处理过程
1.客户端发送请求到DispacherServlet(分发器),DispatcherServlet 对请求URL进行解析,得到请求资源标识符(URI),然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括一个Handler处理器对象、多个HandlerInterceptor拦截器对象),最后以HandlerExecutionChain对象的形式返回。提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)
2022-12-02 20:37:08 628
原创 ssm分页实战
3. mybaits核心配置文件中或spring配置文件中设置pluginsmybatis-config.xmlspringxml2. 后端1. service层 PageHelper.startPage(pageNum, 3);开启分页pageNum当前页 ,3 每页数据数 List empsList = empMapper.getEmpsList();获取全部list PageInfo page = new PageInfo(empsList, 3);分页
2022-11-25 10:21:23 592
原创 Mybatis一级二级缓存
mybatis的二级缓存 ,二级缓存是sqlsessionFactory级别的,通过同一个sqlsessionFactory所获取的sqlsession对象,查询的数据会被缓存, *再通过同一个sqlsessionfactory获取的sqlsession获取数据时,会从缓存中获取数据。Mybatis的一级缓存是sqlsession级别的,通过一个sqlsession查询的数据会被缓存再通过此sqlsession查询的时候,会直接在sqlsession中获取。1. 不同的session,对应不同的一级缓存。
2022-11-23 10:04:31 183
原创 Mybatis分页功能
list=Page{count=true, pageNum=2, pageSize=4, startRow=4, endRow=8, total=6 (全部数据条数), pages=2(全部页数), reasonable=false, pageSizeZero=false}[Emp(empId=8, empName=f, age=4, gender=女, deptId=null), Emp(empId=9, empName=g, age=5, gender=女, deptId=null)],
2022-11-23 09:45:53 495
原创 处理一对多映射关系的两种方式
员工表:部门表:员工-部门关系表中,一个部门对应多个员工,想要在部门表中查询出对应的员工信息,就要解决一对多映射关系。在Dept实体类中添加员工的LIst集合//处理一对多的关系}
2022-11-12 17:43:15 488
原创 处理多对一映射关系的三种方法
员工表:部门表:员工-部门关系表中,多个员工对应一个部门,要想在员工表中查询出对应的部门名,就要解决多对一映射。Emp实体类中添加Dept属性}有三种方式解决此问题。
2022-11-08 22:56:56 804
原创 settings全局配置和resultMap解决处理字段名和属性名不一致问题
mybatis中直接用 resultType="emp" 就会导致属性名不匹配。字段名:emp_id emp_name deept_id。result:处理普通字段和实体类中属性的映射关系。property:实体类中实体类型的属性名。column:sql中映射关系中的字段名。resultMap:设置自定义映射关系。id:处理主键和实体类中属性的映射关系。type:处理映射关系的实体类的类型。
2022-11-08 22:52:57 264
原创 Java类加载顺序,静态代码块和构造代码块
/2、构造代码块优先于构造函数执行,同时构造代码块的运行依赖于构造函数。//1、构造代码块在创建对象时被调用,每次创建对象都会调用一次。执行顺序为:静态代码块-----main------构造代码块。将new AA();注销则构造代码块不会执行。//随着对象的加载而加载,创建对象的时候执行。//静态代码随着类的加载而加载,// 不需要实例化类就能被加载.// 常用来执行类属性的初始化,//3、构造代码块在类中定义。// 调用类的时候执行,//不能访问普通变量。
2022-11-07 23:21:14 1259
原创 Mybatis获取自增主键
User user = new User(null,"zhangtao", "761311", 12,"男","ztao3243163.com");学校开学,组建新班级,并向新班级中分配学生,存在两张表班级表和新生表,为新生分配班级的时候需要班级的id号,但是id号是自增产生的,那么就需要获取班级的自增id号。username=zhangtao, password=761311, age=12, gender=男, email=ztao3243163.com)最终可直接输出实体类,自增主键就能输出。
2022-11-04 21:13:55 1224
原创 Mybatis查询功能总汇
存在多个参数的时候,Mybatis会创建map集合,并使用arg0,arg1........,param0,param1........来表示Key,参数值为value。count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计。count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL。count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL。
2022-11-03 17:26:42 655
转载 Spring MVC拦截器
对于任何优秀的MVC框架,都会提供一些通用的操作,如请求数据的封装、类型转换、数据校验、解析上传的文件、防止表单的多次提交等。早期的MVC框架将这些操作都写死在核心控制器中,而这些常用的操作又不是所有的请求都需要实现的,这就导致了框架的灵活性不足,可扩展性降低SpringMVC提供了Interceptor拦截器机制,类似于Servlet中的Filter过滤器,用于拦截用户的请求并做出相应的处理。比如通过拦截器来进行用户权限验证,或者用来判断用户是否已经登录。
2022-10-21 11:09:04 334
原创 SpringMVC实现文件的上传和下载
在Windows下的路径分隔符和Linux下的路径分隔符是不一样的,当直接使用绝对路径时,跨平台会暴出“No such file or diretory”的异常。ServletContext.getRealPath("文件名或文件夹名") 获取到的是项目部署到服务器后某文件或文件夹的路径。ServletContext.getRealPath("") 获取到的是项目部署到服务器后的项目根路径。File类有几个类似separator的静态字段,都是与系统相关的,在编程时应尽量使用。
2022-10-20 21:14:57 1107
原创 @RestController
所以出现了@RestController注解,是springmvc提供的一个复合注解,标识在控制器类上相当于为类添加了@Controller注解的同时,又添加了@ResponseBody注解。由于@ResponseBody应用非常广泛,处理json前后端交互数据需要使用,也能将返回值作为响应体相应给前端页面,以后的控制器方法中经常使用。
2022-10-20 17:14:32 272
C语言基本语法
2018-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人