- 博客(130)
- 资源 (1)
- 收藏
- 关注
原创 mybatis自定义拦截器
*** mybatis自定义拦截器/*** 数据权限注解/*** 数据权限集合//执行的目标对象、方法、参数 Object target = invocation . getTarget();//区分执行目标对象 if(target instanceof Executor && method . getName() . equals("query") && args . length == 4) {
2022-09-23 22:42:11 1377
原创 初识JVM(一)
jvm的理解?java8虚拟机和之前的变化?什么是oom?什么是栈溢出?jvm常用调优参数?内存快照怎么抓取,怎么分析dump文件?jvm中类加载器的理解?
2022-07-18 22:30:50 125 1
原创 MyBatis(六)反向生成插件
一、1.1、pom.xml添加依赖 <!-- generator--> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.0</versi
2022-02-27 19:57:23 376 1
原创 MyBatis(五)动态sql、分页插件、缓存
一、xml中重要的标签1.1、where标签查询条件实体类public class QueryTeamVO { private String name; private Date beginTime; private Date endTime; private String location; public QueryTeamVO() { } public QueryTeamVO(String name, Date beginTime
2022-02-27 17:31:55 676
原创 MyBatis(四)Mybatis全局配置及映射关系
一、配置文件内容mybatis.xml就是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">配置文件的顶层结构如下:c
2022-02-26 20:47:54 2683
原创 MyBatis(三)Mybatis增删改查
一、插入数据并获取ID1.1、GameMapper实体类public class GameRecord { /** * 记录ID */ private String recordId; /** * 主队ID */ private Integer homeTeamId; /** * 比赛时间 */ private Date gameDate; /** * 比分 */
2022-02-26 15:35:08 674
原创 MyBatis(二)Mybatis对象分析及使用
一、重要类对象1.1、Resources资源,读取资源文件。有很多方法通过加载并解析资源文件,返回不同类型的IO流对象。1.2、sqlSessionFactoryBuilderSqlSessionFactory的创建需要使用sqlSessionFactoryBuilder对象的build()方法。事实上使用SqlSessionFactoryBuilder的原因是将SqlSessionFactory这个复杂对象的创建交给Builder来执行,也就是建造者模式。建造者模式:又称生成器模式,是一种对象
2022-02-24 21:53:48 1729
原创 MyBatis(一)概述
一、概念Mybatis本事apache的开源项目iBatis,2010年项目迁移到google code并更名为MyBatis,2013年11月迁移至github。iBatis一词来源于“internal”和“abatis”组合,是一个基于java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis是基于java的持久层框架,内部封装了jdbc,开发人员只需要关注sql本身,不需要花费精力在驱动创建和连接建立、statement创
2022-02-22 22:24:45 540
原创 springmvc(八)RESTful风格
一、概念1.1、RESTREST(Representational State Transfer,表述性状态转换) 描述了一个架构样式的网络系统,比如web应用。它是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件,主要用户客户端和服务端交互软件。基于这个风格设计的软件可以更简洁更有层次,更易于实现缓存机制。其核心价值在于如何设计出符合REST风格的接口。1.2、RESTfulREST指的是一组架构设计原则和约束条件,满足这些约束条件和原则的应用程序或设计就是RESTfu
2022-02-09 16:29:19 787
原创 springmvc(七)文件上传和下载
一、文件上传SpringMVC为文件上传提供了直接支持,这种支持是通过即插即用MultipartResolver实现的。Spring中有一个MultipartResolver实现类:CommonsMultipartResolverSpring上下文中默认没有装配MultipartResolver,因此默认情况下不能处理文件上传工作。想要使用上传功能,需要在上下文中装配MultipartResolver。1.1、添加依赖 <dependency> <g
2022-02-08 20:08:26 677 1
原创 springmvc(六)拦截器
一、概念SpringMVC中拦截器(interceptor)是非常重要的,它的主要作用是拦截用户请求,并进行相应的预处理和后处理。拦截的时间点在“处理器映射器HandlerMapping根据用户请求映射出了所要执行的处理器类,并且也找到了要执行该处理器类的处理器适配器,在处理器适配器HandlerAdaptor执行处理器之前”在处理器适配器映射出所需要执行的处理器类时,已将拦截器与处理器组合为一个处理器执行链HandlerExecutionChain,并返回给了前端控制器。自定义拦截器需要实现Han
2022-02-08 20:05:19 148
原创 springmvc(五)异常处理
一、@ExceptionHandler@ExceptionHandler可以将一个方法指定为异常处理方法。被注解的方法,其返回值可以是ModelAndView、String或者Void,方法名随意,方法参数可以是Exception或其子类对象、HttpServletRequest、HttpServletResponse等,系统会自动为这些方法参数赋值。也可以将异常处理方法注解与@Controller中。二、实现步骤2.1、自定义异常类建立三个异常类public class JobExcept
2022-02-08 16:10:54 390
原创 springmvc(四)处理器方法的返回值
一、几种返回值类型使用@Controller注解的处理器,其返回值常用四种类型:ModelAndViewString返回自定义类型对象无返回值void1.1、返回ModelAndView前后端未分离开发时,返回ModelAndView,即模型+视图。 /** * 返回值ModelAndView:这种方式既有数据携带,还有资源跳转 * @return */ @RequestMapping("test01") public ModelAndVi
2022-02-08 16:09:38 667
原创 springmvc(三)处理器方法的参数
一、几种获取请求参数方法处理器方法可以包含四类参数,这些参数会在系统调用时由系统自动赋值,所以我们可以在方法内直接使用。四类参数如下:HttpServletRequestHttpServletResponseHttpSession请求中所携带的请求参数1.1、ParamController@Controller@RequestMapping("param")public class ParamController { @RequestMapping("hello")
2022-02-08 16:08:19 518
原创 springmvc(二)工作流程
一、SpringMVC工作流程分析用户通过浏览器发送请求到前端控制器DispatcherServlet前端控制器将请求转给处理映射器HandlerMapping处理映射器HandlerMapping根据请求,找到负责处理请求的处理器,并将其封装为处理器请求链HandlerExecution返回给前端控制器DispatcherServlet前端控制器DispatcherServlet根据处理器执行链中处理器,找到执行该处理器的适配器HandlerMapping。处理器的适配器HandlerMap
2022-02-08 16:06:16 327
原创 springmvc(一)概述
一、概述1.1、springmvc概念SpringMVC也叫spring web mvc,是spring内置的一个mvc框架。在spring3.0以后发布。springmvc解决了web开发中、常见的问题(参数接收、文件上传、表单验证等),使用简单,与spring无缝集成。支持restful风格URL请求,采用松散耦合可插拔组件,比其他MVC框架更具有扩展性和灵活性。1.2、springmvc原理在没有springmvc以前都是使用servlet进行web开发,但是使用servlet进行参数接收、数
2022-02-08 16:02:52 1531
原创 mysql树形数据解决方案
一、表结构CREATE TABLE `t_sys_department` ( `sf_department_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '部门ID', `sf_parent_id` bigint(20) NOT NULL DEFAULT -1 COMMENT '上级部门ID', `sf_department_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_c
2022-01-27 11:04:10 706
原创 spring(六)事务管理
一、Spring事务管理API1.1、事务管理器接口事务管理器是PlateformTransactionManager接口对象。主要用于事务提交、回滚、事务状态信息查询。PlateformTransactionManager接口常用实现类:DataSourceTransactionManager,使用JDBC或者Mybatis操作数据库时使用。spring事务默认回滚方式:发生异常或者error时回滚,发生受查(编译)异常提交。不过受查异常,程序员也可以手工设置其回滚方式。1.2、事务定义接口T
2022-01-20 21:23:08 568
原创 spring(四)SpringAOP
一、概念SpringAOP的底层实现就是对动态代理进行了封装,封装后我们只需要对关注的部分进行编码,并通过配置的方式完成指定目标方法的增强。相关概念:Target(目标对象):要被增强的对象,一般指业务逻辑类的对象。Proxy(代理):一个类被AOP织入增强以后,就产生了一个结果代理类。Aspect(切面):表示增强的功能,就是一些代码完成的某些功能,即非业务功能。是切入点和通知的结合。Joinpoint(连接点):所谓连接点是指那些被拦截到的点。在Spring中,这些点是指方法(一般是类中业
2022-01-18 22:06:20 602 1
原创 spring(三)AOP-静态代理和动态代理
一、概念1.2、AOPAOP(Aspect Oriented Programming)面向切面编程,是通过预编译方式和运行时动态代理实现程序功能统一维护的一种技术。AOP作用:不修改源码的情况下,程序运行期间对功能进行增强。优点:减少代码重复,提高开发效率,便于维护。专注核心业务的开发开发过程中:各自只专注做自己的功能,运行时将服务性代码织入到核心代码中。通过spring工厂自动将服务性代码以切面方式加入到核心代码中。1.2、代理模式代理:通俗的讲,自己不想做的事情,找别人做。代理
2022-01-13 21:55:48 830
原创 spring(二)IoC控制反转
一、概念IoC:Inversion of Controller,即控制反转,不是一种技术,而是一种设计思想。IoC是指在程序开发中,实例的创建不再由调用者管理,而是由spring容器管理。Spring容器负责控制程序之间的关系,而不是由程序代码直接控制。控制权由程序代码转移到了Spring容器,控制权发生了反转,这就是Spring的IoC思想。二、案例2.1、创建项目,添加pom依赖<dependencies> <!-- 单元测试 -->
2022-01-11 20:29:41 721
原创 spring(一)概述
一、框架框架(FrameWork):框(约束性)架(支持性),在软件设计中是指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多组成部分,从而更迅速和方便的构建解决问题的方案。框架一般不完整到可以解决特定问题框架天生就是为扩展而设计的框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用工具(utilities),也就是说框架时常配套了一些帮助解决某类问题的库(libraries) 或工具(tools)学习框架的步骤:知道框架能做什么学习
2022-01-11 20:26:27 648
原创 redis(八) redis集群方案
一、重要概念1.1、redis-cluster架构图描述:所有节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。节点的fail是通过集群中超过半数节点检测有效时整个集群才生效。客户端与redis节点直连,不需要通过poxy层;客户端不需要连接集群中所有节点,连接任意一个即可。redis-cluster把所有物理节点映射到[0-16383]slot上,cluster负责维护node<>slot<>valueRedis集群中内置了16384
2022-01-07 22:29:45 1112
原创 redis(七) redis主从复制及哨兵模式
一、原理redis持久化保证了redis重启不丢失数据,但是当redis服务器磁盘损坏可能导致数据丢失,通过redis主从复制机制就可以避免这种单点故障(单台服务器故障)主redis中数据和从redis中数据保持实时同步,当主redis写入数据时通过主从复制机制复制到从redis服务中。主从复制不阻塞master,在同步数据时,master可以继续处理client请求。主机master无需配置。工作中一般选用:一主一从,一主两从二、搭建步骤主机不用配置,只需要配置从机。这里主从机都在一
2022-01-06 21:14:11 701
原创 redis(六) redis持久化
一、持久化分类由于redis值存储在内存中,为了防止断电等特殊情况,需要将数据持久化到硬盘上进行备份。redis持久化有两种方式: RDB 和 AOF二、RDB持久化RDB是一个二进制文件,在某个时间点将数据写入临时文件,持久化结束后用这个文件替换上一个文件,进行数据恢复。优点:使用单独子线程,主线程不会进行任何IO操作,保证redis高性能。缺点:RDB是间隔一段时间进行持久化,如果持久化期间发生故障,会丢失数据。所以这种方式更适合数据要求不严谨的情况。这里间隔时间可以进行配置,通过配置re
2022-01-04 21:48:23 601
原创 redis(五)Jedis连接redis
一、创建项目1.1、创建项目,导入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.0.0</version> </dependency>注意:远程服务器器可以连通 p
2022-01-04 21:47:49 961
原创 redis(四)事务管理与发布订阅模式
一、事务管理1.1、概念redis事务一次可以执行多个命令,并有以下两个特征:事务是一个单独的隔离操作:事务中所有的命令都会序列化,按顺序执行。事务执行中,不会被其他客户端发来的命令请求打断。事务是一个原子操作:要么都执行,要么都不执行。事务执行阶段:开始事务 multi命令入队执行事务 exec1.2、示例multiset book1 javaset book2 c#exec二、redis发布订阅模式2.1、概念redis发布订阅模式是一个消息通信机制,发送
2022-01-03 20:08:35 541
原创 redis(三)数据结构与操作命令
一、数据结构redis是一种内存数据库,提供一定的持久化功能。它是一种键值Key-Value数据库,使用key作为索引找到当前缓存数据,返回给程序调用者。redis支持6种数据类型:数据类型存储的值说明String字符串、整数、浮点数可以对字符串进行操作,新增、查询;如果是整形或者浮点:可以进行计算,如自增。List链表,每个节点包含一个字符串支持从链表两端插入或者弹出节点,或通过偏移进行剪裁,根据条件删除或者查找节点。Set无序的收集器,每一个元素都是一个
2022-01-03 20:06:52 369
原创 redis(二)linux下安装Redis
一、环境准备1.1、下载地址Http://redis.io/ 英文地址Http://www.redis.cn/ 中文地址1.2、环境Linux系统:Centos 7文件传输工具:SecureFXPortable二、Redis安装2.1、编译环境Redis是C语言开发,安装Redis需要先去官网下载源码并进行编译,编译需要依赖GCC编译环境,需要在Centos上先安装GCC编译环境。(使用root用户)-- 切换用户操作su rootyum install gcc-c++遇到提示
2022-01-03 17:47:24 588
原创 redis(一)基本概念
一、NoSql1.1、什么是NoSqlNoSql,泛指非关系型数据库。传统的关系型数据库在处理超大规模和高并发SNS类型的web2.0纯动态网站力有不逮,出现了很多难以克服的问题,非关系型数据库由于其本身的特点得到了非常迅速的发展。NoSql的出现就是为了解决大规模数据集合,多重数据种类带来的挑战。尤其是大数据挑战。NoSql 解释为:“non-relational”、“Not Only Sql”,区别关系型数据库,它不保证关系数据的ACID性。1.2、为什么使用NoSql传统数据库瓶颈:传统数
2021-12-30 22:43:35 219
原创 Maven(六)Maven传递性和依赖性
一、依赖管理1.1、依赖声明dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency>1.2、依赖管理原理
2021-12-28 09:32:40 677
原创 Maven(五)Maven常用命令
一、命令PS:Maven的命令需要在pom.xml所在目录中执行以下命令1.1、mvn compile编译操作:执行完后会生成target目录,包含编译后生成的字节码文件1.2、mvn clean清理操作:执行完成后会将target目录删除1.3、mvn test单元测试操作:执行完后会在target目录生成三个文件夹,surefire、surefire-reports、test-classes1.4、mvn package打包操作:执行完成后会在target目录生成一个jar或者
2021-12-28 09:31:03 319
原创 Maven(四)idea创建Maven项目
一、IDEA集成Maven插件1.1、打开IDEA全局配置1.2、定义Maven坐标每个Maven工程都需要定义本工程的坐标,坐标是Maven对jar包的身份定义。 <!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成,Maven最终将该项目打包的jar包本地路径:/com/jsonLiu/test--> <groupId>com.jsonliu.test</groupId> <!-- 项目的唯一ID,一个group
2021-12-28 09:29:10 404
原创 Maven(三)核心概念
一、Maven项目目录结构Maven约定了一套目录结构,如下图:二、Maven仓库Maven仓库是一个专门存放项目中依赖的第三方库的位置。Maven仓库分为本地仓库和远程仓库。2.1、本地仓库本地仓库相当于一个缓存,是一个文件夹,这个文件夹路径可以设置。项目工程中需要某个jar包,Maven第一次会从远程仓库中下载并保存在本地仓库中,第二次就不需要下载可以直接使用。2.2、远程仓库远程仓库分为私服和中央仓库。中央仓库的jar包由Maven团队维护,存放了全世界大多数流行的开源软件jar包,是
2021-12-26 20:50:26 210
原创 Maven(二)安装与配置
一、下载与安装下载网址: http://Maven.apache.org/download.cgi直接解压下载的文件:apache-maven-3.3.3.rar目录说明:目录描述bin包含了mvn 运行的脚本bootMaven运行需要的类加载器conf包含一个非常重要的setting.xml文件,修改该文件,可以全局定制Maven的行为。libMaven运行依赖的jar包二、Maven配置2.1、配置环境变量要求有jdk环境变量(jd
2021-12-23 22:06:18 101
原创 Maven(一)概述
一、概述Maven(“专家”、“内行”),是Apache的一个纯java开源项目。Maven是一个项目管理工具,可以对java项目进行构建、依赖管理。当然,Maven也可以用于构建和管理各种项目,例如:C#、ruby等。二、Maven项目构建功能1.1、项目构建过程包括:源代码编译测试打包部署运行1.2、传统项目构建过程:idea、eclipse中创建java web项目在工程中编写源代码及配置文件等对源代码进行编译:.java文件编译成.class文件执行junit单元
2021-12-23 22:03:25 559
原创 mysql密码修改及远程访问权限
一、密码策略常见错误:Your password does not satisfy the current policy requirements1.1、查看初始密码策略SHOW VARIABLES LIKE 'validate_password%';1.2、修改密码强度set global validate_password_policy=LOW;1.3、密码长度修改set global validate_password_length=6; 1.4、密码策略参数valid
2021-12-21 23:03:18 397
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人