- 博客(77)
- 收藏
- 关注
原创 你能听懂的红黑树的插入和删除
红黑树是一种自平衡的二叉查找树,是一种高效的查找树。红黑树具有良好的效率,它可在 O(logN) 时间内完成查找、增加、删除等操作。因此,红黑树在业界应用很广泛,比如 Java 中的 TreeMap,JDK 1.8 中的 HashMap、C++ STL 中的 map 均是基于红黑树结构实现的。性质:根节点为黑色无相邻的红节点根节点到任意叶节点路径,所含黑色节点数量相同。
2023-08-25 10:51:18 171
原创 GO 交叉编译(跨平台编译)
这个问题,然后我进行了查询资料才知道,想要打包成别的平台能够正确运行的程序,需要保证架构的问题,下面我只是对我查询资料的一个总结,我踩了坑,希望后人能够不再踩坑。下面是编译成64位可执行程序,32位请对参数进行更改。不对的地方欢迎指正,抛砖引玉!
2023-06-25 11:33:57 370
原创 frp内网穿透服务搭建
这里我使用的搭配是Linux做服务器,windows做客户端首先你需要确保你有一台公网服务器,否则就不需要往下看了,我之类使用的是话不多说直接开始。
2022-11-03 22:08:25 867 1
原创 linux 安装 jdk
这里有两种方式可以在linux上安装java到官方找到对应的包,然后复制下载连接,一定要是 格式的然后我们在 创建一个目录jdk然后输入下面命令进行下载这个链接更换成你自己想要下载的,我这里下载的是18版本的下载完成之后进行解压解压完成之后我们需要配置环境变量注意将JAVA_HOME和JRE_HOME种的路径更换成自己的然后让它生效查看版本信息如下则为成功当然想要使用这个安装方式的前提是你有网络源,这里我就不说了,没有的自己去配把查找java的包,我这里使用的是rhel8
2022-07-02 17:31:52 697
原创 @Component与@Configuration区别
@Configuration本质上还是@Component,并且@Configuration标记的类必须符合下面的要求:1.配置类不能是 final 类、都必须声明为static2.配置注解通常为了通过 @Bean 注解生成 Spring 容器管理的类,它通常是为了表示这是一个配置类,通过这个类来注册多个Bean3.配置类能在方法中声明,不能是 private重要区别如果使用 @Configuration 注解修饰的类,并且该注解中的 proxyBeanMethods 属性的值为 true,则会为这个
2022-06-23 11:31:45 1916 1
原创 dubbo-admin0.3.0安装教程
下载地址:https://github.com/apache/dubbo-admin下载之后解压,老规矩下载解压之后如下以上的两个文件夹在下面简称为server、ui解压出来之后进入dubbo-admin-0.3.0\dubbo-admin-server\src\main\resources文件夹,在它下面有一个application.properties,我们打开之后可以配置一条server.port=7001,当然端口可以是自己想要的,我这里就用7001然后就是我们需要配置zookeeper
2022-04-17 16:38:34 1419
原创 Mybatis 缓存
Mybatis 缓存我们知道当我们需要去查数据库的时候,都需要与数据库产生连接,然后关闭连接,但是这种动作是十分浪费资源的,这个时候就出现了缓存机制。缓存机制就是用来解决高并发问题的。早期的时候网络用户不多的时候,只需要客户端访问服务器,服务器去数据库查询就可以查出来了[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sPZ1aEhq-1645607194464)(C:\Users\29523\AppData\Roaming\Typora\typora-user-imag
2022-02-23 17:06:46 411
原创 Mybatis 动态SQL
什么是动态SQL?动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元
2022-02-22 23:07:22 351
原创 Mybatis一对多查询
架构对于老师而言就是一对多环境搭建数据库CREATE TABLE `student`(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,`name` VARCHAR(20) DEFAULT NULL )ENGINE=INNODB DEFAULT CHARSET=utf8;INSERT INTO student VALUES (1,"李老师");CREATE TABLE `student` (`id` INT NOT NULL AUTO_INCRE
2022-02-22 17:30:56 431 3
原创 Mybatis 多对一查询
架构这里从学生的角度来说就是多对一的场景那么在Java中是怎么样的呢?环境搭建数据库CREATE TABLE `student`(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,`name` VARCHAR(20) DEFAULT NULL )ENGINE=INNODB DEFAULT CHARSET=utf8;INSERT INTO student VALUES (1,"李老师");CREATE TABLE `student` (`id`
2022-02-22 16:15:03 1371 5
原创 Lombok Maven仓库地址和常用注解
https://mvnrepository.com/artifact/org.projectlombok/lombok常用注解@Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法@Setter :注解在属性上;为属性提供 setting 方法@Setter :注解在属性上;为属性提供 getting 方法@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对
2022-02-22 14:13:55 646
原创 Mybatis使用注解开发
在Mybatis核心配置文件中配置mapper<mappers> <mapper class="dao.UserMapper" /></mappers>编写接口,直接在接口上使用注解写Sqlpackage dao;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.an.
2022-02-21 17:35:28 199
原创 Mbatis执行流程剖析
首先会通过Resources对象去获得全局配置文件也就是我们写的哪个mybatis-config.xml,然后会获得这个文件的文件流,获得了之后SqlSessionFactoryBuilder就被创建了,创建了之后就开始建造工厂也就是SqlSessionFactory,首先调用XMLConfigBuilder对象去解析文件流,然后把它放到环境里面也就是configuration,然后SqlSessionFactory就被创建出来了,创建出来之后就要开始生产SqlSession了,创建一个transactio
2022-02-20 21:49:33 135
原创 Mybatis 分页
Sql实现UserDao接口package dao;import pojo.User;import java.util.List;import java.util.Map;public interface UserDao { public List<User> getLimitUser(Map<String,Integer> map);}Mapper配置文件,这里我们使用了结果集映射,因为我们的数据库字段名和Java Bean的属性名不一致<
2022-02-20 17:37:05 329
原创 Mybatis 日志工厂
日志工厂的种类这里主要就是讲一下关于核心配置文件中的logImpl日志设置SLF4JLOG4J(deprecated since 3.5.9) 掌握LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING 掌握NO_LOGGINGSTDOUT_LOGGING这个其实就是标准日志输出我们可以配置一下<settings> <setting name="logImpl" value="STDOUT_
2022-02-20 16:52:02 270
原创 Mybatis resultMap结果集映射
首先我们这里说一个问题:当我们数据库中的字段名字和我们的实体类属性名不一致的时候能够查出结果吗?我们来看看,首先我们有一个实体类和一个数据库package pojo;import org.apache.ibatis.type.Alias;@Alias("User")public class User { private int id; private String name; private String pwd; public User() { }
2022-02-20 15:37:05 341
原创 Mybatis生命周期和作用域
作用域和生命周期是至关重要的,因为错误的使用会导致非常严重的并发问题。SqlSessionFactoryBuilder用来创建SqlSessionFactory工厂的,使用完之后可以丢弃SqlSessionFactory可以想象成:数据库连接池一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例。请不要多次创建,多次创建会导致资源被占用。最简单的就是使用单例模式或者静态单例模式。SqlSession可以理解为一个请求,向连接池连接的请求。SqlSession
2022-02-19 21:13:15 154
原创 Mybatis核心配置文件优化
现在我们的配置文件是这样的,但是这样存在一些问题配置文件显得很长无法动态修改<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <
2022-02-19 20:24:18 117
原创 Mybatis模糊查询
两种方法在Java层面去传参select * from user where name like #{value}在Mapper中直接写死,但是这样会引起sql注入问题,因为参数不再是以占位符的方式生成sql,而是以字符串拼接的方式生成的select * from user where name like "%"#{value}"%"...
2022-02-19 19:53:53 232
原创 使用Mybatis进行CRUD
实体类package pojo;public class User { private int id; private String name; private String password; public User() { } public User(int id, String name, String password) { this.id = id; this.name = name; thi
2022-02-19 15:31:45 317
原创 如何使用Mybatis?
什么是Mybatis?MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。当前,最新版本是MyBatis 3.5.9,其发布时间是
2022-02-18 21:52:52 253
原创 mail邮件发送
1.下载支持包mail.jaractivation.jar2.编写代码import com.sun.mail.util.MailSSLSocketFactory;import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.security.GeneralSecurityException;import java.util.
2022-02-17 15:16:01 1532
原创 file文件上传
1.下载支持包common-fileuploadcommon-io前端JSP页面<%@ page language="java" pageEncoding="UTF-8"%><!DOCTYPE HTML ><html> <head> <title>文件上传</title> </head> <body> <form action="${pageContext.r
2022-02-17 14:12:16 840
原创 web.xml头信息5.0版本
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2022-02-07 22:57:42 453
原创 过滤器Filter和监听器Listener
所谓的过滤器就是用来过滤前端发送过来的请求的数据信息的,就比如现在我们想要改变响应内容的编码,我们肯定是在Servlet中设置编码格式,但是这样的话,我们每次都要写那几句话,我们当然希望有一个中间件帮我们做了一劳永逸,这个时候过滤器就来了,包括什么密码校验都是通过这个做的这里我们简单写了一个Demopackage com.mrli.servlet;import jakarta.servlet.ServletException;import jakarta.servlet.http.*;im.
2022-02-07 22:20:39 449
原创 MVC三层架构
三层架构三层架构是指:视图层 View、服务层 Service,与持久层 Dao。它们分别完成不同的功能。View 层:用于接收用户提交请求的代码在这里编写。Service 层:系统的业务逻辑主要在这里完成。Dao 层:直接操作数据库的代码在这里编写。MVC,即 Model 模型、View 视图,及 Controller 控制器。View:视图,为用户提供使用界面,与用户直接进行交互。Model:模型,承载数据,并对用户提交请求进行计算的模块。其分为两类:一类称为数据承载 Bean:实体类
2022-02-06 17:14:36 231
原创 JavaBean
实体类必须要有一个无参构造所有属性必须私有化所有属性都要有对应的get/set方法一般都是用javaBean来做数据库映射ORM:对象关系映射表------->类字段------->类的属性行数据--------->对应一个对象假如我们有一个这样的数据库[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vk6HCHlz-1644137685395)(C:\Users\29523\AppData\Roaming\Typora\typora-
2022-02-06 16:54:51 807
原创 JSP使用
基础语法语法含义<%%>代码片段<%!%>被写入到JSP转换后的Servlet的类中,也就是全局<%=%>里面写变量或者一个表达式<%----%>JSP注释,注释内容不会被发送至浏览器甚至不会被编译<!---->HTML注释,通过浏览器查看网页源代码时可以看见注释内容指令标签语法含义<%@ page … %>定义页面的依赖属性,比如脚本语言、error
2022-02-06 12:37:12 89
原创 Cookie和session
会话?什么是会员?比如你打开一个浏览器,在浏览器中做了很多的事情,使用完之后关闭浏览器。而这个过程我们叫做一次会话。有状态会话:比如你去商场办了一个会员,你怎么向商场证明你是这个商场的会员呢?你------------>商场 出示会员卡商场--------->你 在他们的会员系统中查上面的是现实中的例子,下面我们举个网路中的例子。我们将你比作客户端,将商场比作服务端。服务端会给客户端发一个证件,下次来的时候带上这个证件就可以了,这个证件就是cookie服务端
2022-01-29 21:23:22 1468
原创 JSP页面${pageContext.request.contextPath}出现乱码问题
两种方法在web.xml中改变以下头信息,因为web.xml文件中的标头版本不对,改为2.4版本及其以上也可以解决问题,这个是全局,即在整个项目都适用。<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app xmlns="http://java.sun.com/xml/
2022-01-29 20:08:13 165
原创 response应用
package com.mrli;import jakarta.servlet.ServletException;import jakarta.servlet.ServletOutputStream;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import org.w3c
2022-01-27 20:54:10 288
原创 ServletContext对象
ServletContext对象也就是Servlet上下文对象,它是用来管理我们所有的Servlet的共享数据,也就是我们可以在一个Servlet中通过ServletContext对象存入数据,再通过另一个Servlet拿到数据这里是引用...
2022-01-22 20:34:59 703
原创 Servlet工作原理
浏览器发送Http请求给web服务器Servlet引擎从web服务器中获取并解析请求Servlet引擎判断是否是第一次请求,如果是则会创建Servlet实例然后调用init()方法完成初始化设置,然后调用Servlet的service()方法响应请求;如果不是第一次访问,则会直接走到service()方法。这里需要注意的是,Servlet引擎在访问对应的Servlet之前,会首先创建一个request请求对象和一个空的response对象。Servlet的service方法会处理request对象..
2022-01-21 16:57:08 338
原创 Servlet使用
1.什么是Servlet?Servlet就是Sun公司开发的用来开发动态web的一种技术Sun公司在这些API中提供了一个接口:Servlet,如果你想开发一个Servlet程序只需要完成下面两个条件创建一个类实现Servlet接口把开发好的Java类部署到web服务器我们把实现了Servlet接口的Java程序称为:Servlet...
2022-01-20 22:51:10 414
原创 Tomcat报错“类com.mrli.servlet.HelloServlet不是Servlet”
问题引起原因:Tomcat10太新了,Tomcat10将所有的javax包名改成了Jakarta解决办法:1.上Maven repository搜索我们需要的最新的dependency,首先是Servlet-api我们需要的是最新的dependency,所以选中第四个,进去之后直接选择最新的就可以了,下面是dependency代码<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-servlet-api --&g.
2022-01-20 18:05:09 1422 3
原创 maven pom文件及导出问题配置resources
<build> <resources> <resource> <directory>src/main/resources</directory> <excludes> <exclude>**/*.properties</exclude> <exclude>**/.
2022-01-19 19:14:25 460
原创 Maven
1.下载首先我们要去官网下载一个Maven,https://maven.apache.org/download.cgi有Binary和Source的,Binary才是我们需要的,Source是源码,然后linux下载tar.gz包,windows下载zip文件就可以了2.解压3.配置环境变量我们需要配置两个环境变量,进入此电脑---->属性---->高级系统设置---->环境变量,进入之后系统变量那里新建两条,M2_HOME和MAVEN_HOME,配置如下配置完这两条之后,
2022-01-19 15:57:01 1306
原创 Tomcat安装
直接从Tomcat官网下载一个Tomcat的压缩包,linux下载tar.gz包,windows直接下载zip包就行了下载完成之后直接解压由于Tomcat是依赖于java的,所以一定要配置好Java的环境变量,进入此电脑---->属性---->高级系统设置---->环境变量,进入之后系统变量那里新建一条JAVA_HOME添加完成之后去配置Path变量,找到Path之后直接双击进去,新建完成!!!然后额外介绍一下Tomcat的一些目录是干什么的bin:可执行文件conf
2022-01-19 15:27:42 257
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人