自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 nginx资源转发路径斜杠问题

server { listen 80; server_name localhost; location /api1/ { proxy_pass http://localhost:8080; } # http://localhost/api1/xxx -> http://localhost:8080/api1/xxx # 如果proxy_pass路径是根路径且后面没有/,而location路径后面有/,则实际生成的请求

2021-03-17 20:37:55 1343

原创 开机自启docker后 开启或关闭自启容器

在docker启动容器可以增加参数来达到,当docker 服务重启之后 自动启动容器.命令如下:​ docker run --restart=always当然如果你的容器已经启动,可以通过update命令进行修改.命令如下:​ docker update --restart=always 如果你想取消掉命令如下:​ docker update --restart=no ...

2021-03-17 20:33:23 1193

原创 java 子类强转父类 父类强转子类

1.基本数据类型基本数据类型:子类可以强转成父类,因为小范围可以强转大范围,不会有数据丢失。父类也可以强转成子类,但是因为大范围强转成小范围,所以会有数据丢失。2.Java 继承继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。Java 子类强转父类父类引用指向子类对象:java中子类强转父类,实际上依然是子类;该引用只能调用父类中定义的方法和变量;如果子类中重写了父类中的一个方法,那么在调用这个方法

2021-03-17 20:30:05 4122

原创 解决Oracle+Mybatis批量插入报错:SQL 命令未正确结束

Mybatis批量插入需要foreach元素。foreach元素有以下主要属性:(1)item:集合中每一个元素进行迭代时的别名。(2)index:指定一个名字,用于表示在迭代过程中,每次迭代到的位置。(3)collection:根据传入的参数值确定。(4)open:表示该语句以什么开始。(5)separator:表示在每次进行迭代之间以什么符号作为分隔 符。(6)close:表示以什么结束。首先,错误的xml配置文件如下:insert into "sys_user_role"("us

2021-03-16 16:31:42 4575 2

原创 数值转换

其实数值类型转换成字符串,只需要+“ ”即可。Long --> long:Long值.longValue = long值new Long(long值) = long值Long --》 int,IntegetLong值.intValue = int/Integer值Double --> doubleMath.floor(Double值):向下取整,去除小数点floor 函数的返回值是 double型的double --> Double 有

2021-03-14 21:33:55 113

原创 装饰者模式(Decorator Pattern)

在不惊动原始设计的基础上,为其添加功能弊端:如果接口定义了许多方法,那么自定义类在实现接口之后,需要将大量的无用的方法进行重写使用装饰模式会产生比使用继承关系更多的对象。更多的对象会使得查错变得困难,特别是这些对象看上去都很相像。存在一个超类public interface UserService { void save();}并存在超类的实现类public class UserServiceImpl implements UserService { publi

2021-03-14 21:32:51 75

原创 适配器设计模式

适配器模式就是将某一些对象转成我们需要的适配的对象。适配器设计模式分为两类:对象适配(比较常见):当希望将一个对象转换成满足另一个新接口的对象时,可以创建一个包装类,持有原类的一个实例,在包装类的方法中,调用实例的方法就行。类适配:当希望将一个类转换成满足另一个新接口的类时,可以使用类的适配器模式,创建一个新类,继承原有的类,实现新的接口即可适配器类作为中间类,一般都是抽象类,因为抽象类可以有抽象方法,也可以有一般方法,也可以有构造方法,可以在实现接口的时候通过构造方法对原始的接口对象赋值,这样可

2021-03-14 21:31:54 69

原创 动态代理模式

JDKProxy动态代理:动态代理:在不改变目标对象方法的情况下对方法进行增强组成被代理对象:真实的对象代理对象:内存中的一个对象要求代理对象必须和被代理对象实现相同的接口,也即必须依赖接口才可以做代理即表示为:产生的代理对象必须是被代理对象所实现的接口类型的引用所以代理对象所调用的方法必须是接口定义的,被代理对象所实现的方法且每一次调用方法就会执行invoke方法进行判断,并执行相应操作实现Proxy.newProxyInstance()Proxy:[ˈprɒ

2021-03-14 21:31:07 61

原创 [SQL---START WITH的用法]

我们经常会将一个比较复杂的目录树存储到一个表中。或者将一些部门存储到一个表中,而这些部门互相有隶属关系。这个时候你就会用到connect by prior start with。connect by 是结构化查询中用到的,其基本语法是:select … from tablename start with 条件1connect by prior 条件2where 条件3;例:select * from tablestart with org_id = ‘HBHqfWGWPy’connect b

2021-03-14 21:27:09 1316

原创 Group by带两个参数

SELECT m.className,m.course FROM (SELECT AVG(s.score) score,c.className,s.course FROM score s , class c ON s.name = c.name GROUP BY c.className,s.course) m inner JOIN (SELECT MAX(t.score) score,t.className FROM (SELECT AVG(s.score) AS score,c..

2021-03-14 21:25:35 1455

原创 建表语句的注释

COMMENT就是指定字段的注释,我们在数据库改变表的时候能看到注释,但是有没有注释对于程序的执行时没有影响的,只是为了程序员复查的时候清楚字段的作用。CREATE TABLE `tb_publish_info` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) NOT NULL COMMENT '用户id', `publish_id` varchar(255) NOT NULL COMMENT '发布内容Id',

2021-03-14 21:23:26 469 2

原创 两表联查并传递参数

在查询tb_user表的时候需要将tb_user的id字段传递给tb_log表,并查询出tb_log表中有关于tb_user表的每一行数据的相同id的最大created数据,可以通过以上写法传递。以上写法运行流程:在运行select语句的时候,从tb_user表中每一行的数据中的id都会传递给子查询,在子查询中查询出来tb_log表中的最大created值并赋给created字段,随着外围大的查询语句一起显示出来。如果tb_user有1000条含有id的数据,就会把这1000条id数据传到子查询,.

2021-03-14 21:22:04 214

原创 sql 使用 EXPLAIN 关键词

分析sql 使用 EXPLAIN 关键词找到那个where 字段慢,加索引

2021-03-14 21:21:21 114

原创 sql 优化

sql 优化 0) update ,insert, delete 慢 1) where 条件 慢, 优化条件 2) 触发器,索引过多 1) select * from user where userid='1' ---- 创建索引优化, 2) select * from user where username like'%张%' --- % 在左边即使有索引也不生效(索引失效) 3) 尽量避免使用多表关联查询 left join

2021-03-13 20:22:44 65

原创 FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别

[FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别]Unix时间戳(Unix timestamp),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。在MySQL中如何格式化时间戳?在mysql中因为timestamp无法支持到毫秒,所以很多时候采用毫秒进行存储。那么如何将存储在数据库中Int类型的时间,如: 1344954515 ,转换成我们正常可以肉眼能看懂的时间格式呢?我们一般都使用FROM_UNIXTIME函数。FR

2021-03-13 20:22:00 935

原创 SQL语句执行顺序

MYSQLSQL语句执行顺序:FROM WHERE GROUP BY SELECT ORDER LIMIT[FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别]Unix时间戳(Unix timestamp),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。在MySQL中如何格式化时间戳?在mysql中因为timestamp无法支持到毫秒,所以很多时候采用毫秒进行存储

2021-03-13 20:19:53 80

原创 JSON格式的转换

JSON格式的转换:jackson的使用:ObjectMapper的使用:<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.3</version></dependency>对象转 JSON, JSON

2021-03-13 20:15:01 292

原创 git与svn

git:提交代码:1、先创建远程仓库,再使用idea创建本地仓库,直接选择项目所在目录为本地仓库目录2、.ignore插件,new-》.ignore->(git),选择默认的忽略文件就可以3、先commit到本地仓库,再push到远端本地拉取代码:1、在本地创建空文件夹作为项目中详细文件存放目录2、vcs -》checkout检出代码,输入远端git路径,clone到刚创建的空文件夹,idea会自动将其当做新项目打开3、合并冲突:提交的某一行代码与远端同行代码不一致,就会在向远端提交的

2021-03-13 20:13:29 152

原创 dubbo问题总结

dubbo超时问题:消费者在连接dubbo服务的时候,如果消费者不仅是调用dubbo对应方法且需要接收到服务的返回值,默认规定从连接dubbo服务到接受到返回值不能超过1秒钟,这里的连接dubbo服务指的是执行dubbo服务对象的方法,到获取到此方法给与的返回值不能超过1秒,否则就会爆超时异常。可以在消费者的配置文件中手动设置dubbo的连接超时时间:dubbo.consumer.timeout=30000#单位:毫秒 设置超时时间是30秒#其实服务提供方和服务消费方都可以设置超时时间,但是如果

2021-03-13 20:11:51 602

原创 char与Byte区别

char与Byte区别​ byte是字节数据类型,是有符号的,占一个字节;大小范围是-128—127。char是字符数据类型,是无符合类型的,占2字节(Unicode码);大小范围是0—65535;char是一个16位进制的Unicode字符,JAVA用char来表示一个字符。​ 1.Char是无符合型的,可以表示一个整数,不能表示负数;而byte是有符号型的,可以表示-128—127的数;如: char c = (char) -3; //char不能识别负数,必须强制转换

2021-03-13 20:10:09 545

原创 枚举

枚举:/** * 当使用类名来调用枚举对象的时候,就会自动触发枚举类的构造器, * 并将枚举对象的第一个值赋给参数code,第二个值赋给参数errorMessage, * 然后通过下面的get方法就可以将这两个值进行返回。 */public enum AppHttpCodeEnum { // 成功段0 SUCCESS(0,"操作成功"), // 登录段1~50 NEED_LOGIN(1,"需要登录后操作"), LOGIN_PASSWORD_ERROR(2

2021-03-13 20:02:56 64

原创 工具类

工具类:MD5密码加密工具类:public class MD5Util { /** * 密码加密 * @param password * @return * @throws Exception */ public static String md5(String password){ try { //1.创建加密对象 MessageDigest md5 = Message

2021-03-13 20:00:31 70

原创 StringBuilder方法多个参数问题

append方法java.lang.StringBuilder.append(CharSequence s, int start, int end) 方法追加指定的CharSequence到这个序列的子序列.参数s字符,从索引开始,以顺序被添加到此序列最高的(唯一的)索引端的内容。此序列的长度为增加end - start的值。replace方法java.lang.StringBuilder.replace(int start, int end, String str)replace方法一共

2021-03-13 19:44:31 787

原创 Arrays.asList() 详解

Arrays.asList() 详解【1. 要点】该方法是将数组转化成List集合的方法。List list = Arrays.asList(“a”,“b”,“c”);注意:(1)该方法适用于对象型数据的数组(String、Integer…)(2)该方法不建议使用于基本数据类型的数组(byte,short,int,long,float,double,boolean)(3)该方法将数组与List列表链接起来:当更新其一个时,另一个自动更新(4)不支持add()、remove()、clear()

2020-12-31 21:30:18 3002

原创 mybatis的通用mapper

MyBatis & 通用MapperMyBatis使用简单、灵活,但是有一些特别常用的简单SQL也要手写,很浪费时间。使用通用Mapper后可以免去这种工作,提高开发效率。快速使用引入Jar(pom.xml)<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId>

2020-12-31 21:00:49 199

原创 操作基本数据类型的流对象

DataInputStream与DataOutputStream 可以用于操作基本数据类型数据的流对象DataOutputStream(OutputStream out)创建一个新的数据输出流,将数据写入指定基础输出流。EOFException 如果此输入流在读取所有字节之前到达末尾方法举例:package 其他流;import java.io.*;public class...

2019-11-06 21:41:01 53

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除