- 博客(28)
- 问答 (2)
- 收藏
- 关注
原创 抽象工厂模式
抽象工厂模式其实和工厂方法模式差不多,我们需要了解的就是抽象工厂模式是通过抽象工厂类(AbstarctFactory)来增加具体不能种类的产品接口实现,并且子类实现父类方法进行具体的产品生产;不同产品也会有不同产品的抽象产品类和具体产品类。模式的结构与实现和工厂方法模式一样,抽象工厂模式的主要角色如下。抽象工厂(AbstractFactory):提供了创建产品的接口,它包含多个创建产品的方法 newProduct(),可以创建多个不同等级的产品。 具体工厂(ConcreteFactory):主
2021-07-14 15:55:31
232
1
原创 工厂方法模式
一、工厂方法模式“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。优点和缺点优点:用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程。 灵活性增强,对于新产品的创建,只需多写一个相应的工厂类。 典型的解耦框架。高层模块只需要知道产品的抽象类,无须关心其他实现类,满足迪米特法则、依赖倒置原则和里氏替换原则。缺点:类的个数容易过多,增加复杂度 增加了系统的抽象性和理解难度 抽象产品只能生产
2021-07-14 15:00:32
247
原创 Linux启动svn服务常用命令
一、可以先查看下svn的状态[root@localhsot init.d]# ps -ef|grep svn这里我是启动了的,可以在后面就直接看到启动的命令二、启动svn进入到svn安装的文件夹下,调用启动命令即可:svnserve -d -r /home/svn/三、注意:不要使用系统提供的/etc/init.d/svnserve start来启动,因为系统默认的启动脚本中没有使用–r /svn/project参数指定一个资源。这种情况下启动的svn服务,客户端连接会...
2021-07-05 11:21:13
10495
原创 Linux关闭防火墙命令
一、服务器重启有时候需要关闭防火墙在启动其他的服务,记录下最常用的防火墙命令:linux:版本CentOs7第一种:service方式的命令:1:查看防火状态:[root@localhost ~]# service iptables status2:开启防火墙:[root@localhost ~]# service iptables start3:关闭防火墙:[root@localhost ~]# service iptables stop第二种:iptable
2021-07-05 11:05:43
4155
原创 Linux下Oracle数据库监听和服务启动、关闭操作
一、在启动数据库之前先检查监听是否已经启动检查监听状态命令:[oracle@localhost ~]$ lsnrctl status如果是successfully状态说明是已经启动的,如果显示是no listener则说明监听没有启动。启动监听命令:[oracle@localhost ~]$ lsnrctl start启动好的状态和上面图片显示的一样就说明成功了。关闭监听命令:[oracle@localhost ~]$ lsnrctl stop二、用Oracl.
2021-07-05 10:23:21
5238
原创 oracle多行数据合并成一行
一、将查询到的多条部门数据名称合并成一条(逗号隔开)。sql如下:select (wm_concat(t.name)) as AllName from test t
2021-07-01 14:50:50
7925
转载 Linux服务器MySql启动与停止常用命令
一、启动方式1、使用linux命令service 启动:service mysqld start2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start3、使用 safe_mysqld 启动:safe_mysqld&二、停止1、使用 service 启动:service mysqld stop2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop3、 mysqladmin shutdown三、重启1、使用 ser
2021-06-23 10:21:44
4237
原创 简单工厂模式
一、工厂模式的定义:定义一个创建产品对象的接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。按实际业务场景划分,工厂模式有 3 种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。...
2021-06-09 15:07:59
3536
原创 oracle ORA-09925 Unable to create audit trail file
一、今天发下有一个服务器上的ORACLE数据库访问不了,用sqlplus也登录不上去报:oracle@linux-37:~/oradata> sqlplus / as sysdba SQL*Plus: Release 11.1.0.6.0 - Production on Tue Nov 22 18:04:21 2011 Copyright (c) 1982, 2007, Oracle. All rights reserved. ERROR: ORA-09925: U
2021-06-08 10:41:14
919
原创 单例模式的实现
一、什么是单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。需要注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。实现说明:1、私有化该类的构造方法,构造方法私有化,其
2021-05-21 09:45:07
2728
原创 Springboot整合新版本Gradle,build.gradle配置详情
一、build.gradle配置详情Springboot整合新版本Gradle 7.0版本配置详情://gradle 自身需求资源库 放头部buildscript { repositories { maven { url 'https://maven.aliyun.com/repository/public' }// 加载其他Maven仓库 mavenCentral() } dependencies { classpath('or
2021-05-18 14:33:33
3883
原创 ORA-22858: 数据类型的变更无效 varchar2类型转换为clob类型
一、描述今天遇到一个协议字段类型varchar2类型数据不够大,需改为clob类型。在Oracle中,如果一个列的类型为varchar2,那么它不能直接转换为CLOB类型。需要清空字段的数据内容,然后把原来的字段删掉,重新建个字段类型为CLOB即可!...
2021-05-12 14:06:16
2813
原创 关于MySQL递归查询GROUP_CONCAT返回值长度设置问题
一、描述今天遇到一个mysql递归查询的问题,统计的数量和分页的数量对应不上,分页采用的是数据库递归查询的方法。问题思路:1、统计sql问题或递归查询sql问题。2、发现表没设置主键id(这脑子。。。),猜想是id重复问题。经过多方验证是递归查询函数的问题,返回的字符串(逗号隔开的id)末尾总是少一半;猜想返回值大小太小,增加了返回值的大小后还是不对;继续查找原因,发现返回值有GROUP_CONCAT这个函数,猜想是不是这个函数的值太小了,导致返回的数据变少,百度了一下果然是的,坑爹啊。。。下面记录
2021-05-11 18:08:19
491
转载 Java 8 Stream peek 与 map的区别
https://www.jianshu.com/p/f8fa2a7920f5刚接触java8 Stream的时候,经常会感觉分不清楚 peek 与 map方法的区别其实了解一下λ表达式就明白了首先看定义Stream<T> peek(Consumer<? super T> action);peek方法接收一个Consumer的入参。了解λ表达式的应该明白 Consumer的实现类 应该只有一个方法,该方法返回类型为void。Consumer<Integer> c
2021-05-08 17:04:18
449
原创 Java8 --> Stream实现递归查询树形结构
一、简述之前遇到过一个表里含有父类和子类关系的,有时候取值需要用到递归,递归有多重实现方式:1、Mysql和Oracle递归查询实现记录2、java实现多级递归查询下面就介绍下第三种递归实现方法,用java8里面的Stream来简单实现。二、实现1、实体类:@Data@EqualsAndHashCode(callSuper = true)@Accessors(chain = true)@TableName("SYS_USER")public class User { priv
2021-05-07 18:45:07
7399
3
原创 Mybatis-Plus 多表联查分页实现
一、简介Mybatis-Plus自带一套增删改查系统,但是都是针对于单表来实现,如果遇到多表联查分页就不能用它的方法来查了,只能自己写sql语句来实现。二、实现我们需要建立Dao、Service、ServiceImpl、Mapper、实体类等,下面以User实体类为例:User实体类:@Data@EqualsAndHashCode(callSuper = true)@Accessors(chain = true)@TableName("SYS_USER")public class User
2021-05-06 11:08:31
2281
原创 ORA-00257 archiver error 错误的处理方法
一、描述出现ORA-00257错误(空间不足错误),大部分原因是归档日志满了,删除归档日志或者加大存储空间就可以解决。报错详情:ORA-00257: archiver error. Connect internal only, until freed 。二、处理方法用sys用户登录 sqlplus sys/123456 as sysdba看看archiv log所在位置SQL> show parameter log_archive_dest; NAME TYPE
2021-04-30 10:38:12
8341
原创 记录oracle数据库连接满的解决办法
一、描述数据库突然连不上,检查:1、如果全部用户都连不上,有可能是归档日志满了,需要删除归档日志。2、如果部分用户可以连上,并且很慢,则有可能就是连接数满了。二、连接数满分析:1、有可能是数据库操作一直没释放。2、项目使用数据库连接池,数据库连接池超时。三、解决办法1、可以先停止部分项目的进程。2、直接杀掉数据库的连接数。3、增大数据库连接数。四、数据库连接数操作1、用sys角色登录数据库(ps命令:sqlplus sys/密码 sysdba)。2、查询当前连接数:select
2021-04-29 17:32:07
12988
原创 增加oracle数据库最大连接数
一、描述数据库连接数满,增加连接数。系统:centos linux6.5 数据库oracle11g二、操作步骤:1、查看当前会话数SQL>select b.MACHINE, b.PROGRAM , count(*) from v$process a, v$session b where a.ADDR = b.PADDR and b.USERNAME is not null group by b.MACHINE , b.PROGRAM order by count(*) de
2021-04-29 17:29:31
4294
原创 HTTP Status 500 – Internal Server Error(SpringBoot架构的Web项目部署到linux系统上访问出错) 解决记录
一、 简述本地打包后,用cmd启动可以正常访问,当时部署到linux服务器上启动,再访问报500。这里记录一种原因:Springboot内嵌的tomcat版本不兼容,本地打包好的tomcat 版本是9.0几,jdk使用的是1.8,需要降版本,pom文件配置如下:<!--tomcat 版本号--> <tomcat.version>8.5.51</tomcat.version> <!--tomcat start--> <depen
2021-04-28 19:07:25
1510
1
原创 java实现多级递归查询
一、java实现多级递归查询1、实体类对象(省略了一些字段)@Data@EqualsAndHashCode(callSuper = true)@Accessors(chain = true)@TableName("SYS_USER")public class User { private static final long serialVersionUID = -3089138238598051744L; /** * 账号 */ @TableFiel
2021-04-27 17:15:15
6089
原创 Mysql和Oracle递归查询实现记录
最近遇到一个需求是后台管理系统要求用户管理成树形展示,并且另外一个事项管理里面要求按人员等级查看,比如管理员可以看到所有人员录入的事项,管理员下一级的人员可以看到其子类以及他自己录入的事项,这就要求用递归查询来实现,特此记录。因为ORACLE对递归可以直接用CONNECT BY PRIOR 来实现很简单,但是mysql就没有此类函数,需要自己手动编写函数方法来实现。一、实现子递归查询1.单个子递归查询的实现oracle中使用示例代码:SELECT U.IDFROM SYS_USER
2021-04-21 19:18:22
480
原创 Springboot2.0+gradle7.0+activiti6.0搭建后台在线流程编辑器
一、简述 在上一章已经把怎么获取activiti表做了说明,下面我们来进行在线流程编辑器的整合。Springboot2.0+gradle7.0+activiti6.0搭建后台在线流程编辑器——表生成二、整合 1、需要整合的jar包在上一章的build.gradle文件里也有说明,我这里只贴出主要的jar包://项目中需要的依赖dependencies { implementation ('org.springframework.boot:spring-boot-starter-web
2021-03-22 11:28:57
605
原创 activiti在线编辑器汉化
一、找到i18n文件夹创建zh-CN.json文件,同时修改app.js文件的第51行,将en修改成zh-CN:以及修改stencilset.json文件:zh-CN.json代码:{ "HEADER.BRAND" : "Activiti编辑器", "HEADER.BRAND_TAGLINE" : "Alfresco技术支持", "PAGE.HEADER" : "编排细节", "ACTION.OK" : "确定", "ACTION.SAVE" : "保存", "ACTIO
2021-03-22 11:26:05
695
原创 Springboot2.0+gradle7.0+activiti6.0搭建后台在线流程编辑器——表生成
一、简介 之前项目整合activiti都是用maven来整合jar包,最近无意间接触到了gradle这个项目构建工具,感觉无论在引入依赖构建项目、编译源代码、运行测试、打包JAR等效率都高于maven,高度的自由,之前被应用于Android开发较多,感兴趣的同学可以去了解下,所以这次就采用gradle来构建项目。二、创建项目 我们先把项目搭建起来生成相对应的表格,在进行编辑器的整合。 1、创建gradle项目点击下一步编写项目名称以及包名等,点击finish完成。项目生成如下: 2、
2021-03-19 10:36:32
416
原创 activiti——数据库表分析
一、简述 流程审批一般用 flowable或者activiti,区别咱就不说了,可以自己百度下,目前只针对activiti对表结构说明记录下。二、版本简介(以6.0版本为例) 文档: activiti6.0官方文档. 下载: activiti6.0官方下载地址 github: activiti6.0 Github地址 在activiti5.0版本里默认生成的表是25张,而6.0版本里默认生成了28张表。可以看出6.0版本比5.xx版本多了三张表,从官方升级文档上也可以看到主要对jo
2021-03-18 18:08:44
588
原创 新版本gradle下载以及本地安装步骤
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入提示:文章写完
2021-03-12 15:02:37
1330
转载 serialVersionUID的作用
简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。(InvalidCastException)serialVersion
2017-02-10 13:51:59
181
空空如也
java修改图片上的内容
2017-05-02
求问java 如何实现语音拨号,自定义语音内容?
2017-03-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人