自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小z的博客

小z要发光

  • 博客(57)
  • 收藏
  • 关注

原创 2021-10-25

根据excel生成sql=CONCATENATE(“insert into FI.COUNTRY_CURRENCY(COUNTRY_NUMBER, CURRENCY, CURRENCY_NUMBER) VALUES (’”&A2&"’, ‘"&B2&"’, ‘"&C2&"’);")

2021-10-25 20:31:05 138

原创 创建型模式之建造者模式

一、什么是建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示建造者(Builder)模式的主要角色如下。产品角色(Product):它是包含多个组成部件的复杂对象,由具体建造者来创建其各个零部件。抽象建造者(Builder):它是一个包含创建产品各个子部件的抽象方法的接口/抽象类,通常还包含一个返回复杂产品的 getResult() 或 build() 方法。具体建造者(Concrete Builder):实现 Bu

2020-12-10 18:01:06 164 1

原创 创建型模式之原型模式

1、什么是原型模式用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。实现了在运行期建立和删除原型。2、原型模式的代码实现1、构建抽象原型类​ 这一步也可以省略,在具体原型类中直接实现 java 提供的 Conleable 接口,实现 clone 方法public abstract class Prototype { abstract Prototype myClone();}2、构建具体原型类/** * 或者直接实现 Conleable 接口,重写 clone

2020-12-10 15:41:47 177

原创 创建型模式之单例模式

1、什么是单例模式确保一个类只有一个实例,并提供该实例的全局访问点。使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。2、单例模式的代码实现1、饿汉式 - 线程安全(不推荐)线程不安全问题主要是由于 uniqueInstance 被实例化多次,采取直接实例化 uniqueInstance 的方式就不会产生线程不安全问题。但是直接实例化的方式也丢失了延迟实例化带来的节约资源的好处。

2020-12-09 16:01:47 125 1

原创 Git 切换关联的远程仓库

1、直接修改关联远程仓库的地址git remote set-url origin url2、先删除本地关联的仓库地址,然后关联新的仓库地址git remote rm origingit remote add origin url3、直接修改配置文件在已经关联远程仓库的项目中的 .git 文件夹下会有一个 config 文件,直接修改 config 文件中的 url 地址即可。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5jqPB665-160730907

2020-12-07 10:45:07 1746

原创 SpringBoot 整合 Redis

SpringBoot 整合 Redis 的过程,以短信验证码的存储验证为例。1、下载Redis,下载地址:https://github.com/MicrosoftArchive/redis/releases下载后解压即可进入解压后的目录在地址栏输入 cmd 后,执行 redis 的启动命令:redis-server.exe redis.windows.conf2、在 pom.xml 中新增 Redis 相关依赖<!--redis依赖配置--><dependency>

2020-12-02 14:29:24 75

原创 SpringBoot 整合 Swagger2

一、简介:Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。二、作用:接口的文档在线自动生成功能测试三、使用:导入Maven坐标<!-- swagger2 和 swagger-ui --><dependency> <groupId>io.springfo

2020-12-02 14:07:19 78

原创 SpringBoot 整合 Mybatis generator

一、简介:​ Mybatis generator 是 MyBatis 官方提供的代码生成器,可以根据数据库生成 model、mapper.xml、mapper 接口和 Example,通常情况下的单表查询不用再手写 mapper。二、使用步骤:创建 SpringBoot 项目,导入 Maven 坐标<dependencies> <!--SpringBoot通用依赖模块--> <dependency> <groupId&gt

2020-12-02 13:55:00 276

原创 Elasticsearch 下载 和 安装

一、简介:Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式的全文搜索引擎,基于restful web接口。Elasticsearch是用Java语言开发的,基于Apache协议的开源项目,是目前最受欢迎的企业搜索引擎。Elasticsearch广泛运用于云计算中,能够达到实时搜索,具有稳定,可靠,快速的特点。二、安装:在 Windows 下安装:下载 Elasticsearch 的zip包,并解压到指定目录,下载地址:https://www.elastic.c

2020-12-01 16:02:48 400

原创 SpringData Jpa 之 Specification 构建子查询

一些简单的查询条件使用 SpringData Jpa 提供的查询方法和按命名规则匹配的方法就能完成,当面对复杂查询时,需要使用 Specification 来动态构建查询条件。使用 Specification 构建子查询 :private Specification<Post> buildSpec(@NonNull ParentParam parentParam) { return (parentRoot, criteriaQuery, criteriaBuilder) -

2020-11-30 19:04:16 1630

原创 SpringData Jpa 之 修改、删除数据

Tips:如果修改或删除的方法没有被事务管理,需要在方法上加上 @Transactional修改和删除的方法返回值可以是 void 或者是 int,当是 int 时,返回 1 代表成功,0 代表失败删除方法可以不使用 @modify 和 @Query 注解,直接通过命名规则的方法删除1、修改数据,使用 @Modify 和 @Query 注解@Modifying@Query("update User u set u.firstname = ?1 where u.lastname = ?2")

2020-11-30 15:25:57 3705

原创 HashMap源码 之 put() 相关方法

HashMap 源码 之 put() 相关方法一、HashMap 的 put() 方法流程:put(key, value) 中直接调用了内部的 putVal() 方法,并且先对 key 进行了 hash 操作;putVal() 方法中,先检查 HashMap 数据结构中的索引数组表是否位空,如果是的话则进行一次 resize 操作;以 HashMap 索引数组表的长度减一与key的hash值进行与运算,得出在数组中的索引,如果索引指定的位置值为空,则新建一个 k-v 的新节点;如果不满足的3的条

2020-11-25 10:26:54 322

原创 HashMap源码 之 get() 相关方法

1、get() 方法 public V get(Object key) { Node<K,V> e; return (e = getNode(hash(key), key)) == null ? null : e.value; //实际调用的是 getNode(int hash, Object key) 方法 }2、getNode() 方法 /** * Implements Map.get and rel

2020-11-25 09:48:54 118

原创 SpringData Jpa 之 Example 查询

一、简介​ 按例查询(Query By Example)是一种用户界面友好的查询技术。 它允许 动态创建 查询,并且不需要编写包含字段名称的查询。 实际上,按示例查询 不需要 使用特定的数据库的查询语言来编写查询语句。1、按例查询(QBE)由三部分组成:Probe:带有填充字段的域对象的实际示例ExampleMatcher:ExampleMatcher 提供关于如何匹配特定字段的详细信息,它可以跨多个示例重用Example:示例包括 Probe 和 ExampleMatcher ,它用于创建查

2020-11-24 14:49:55 4819 2

原创 Spring Data JPA 中 getOne、findById、findOne 的区别

1、getOne 方法(为null时会报错慎用)​ getOne 是一个延迟加载方法,它并不立即访问数据库,而是返回一个代理(proxy)对象,这个代理对象是对实体对象的引用,仅在 使用代理对象访问对象属性时才会去真正访问数据库 ,如果找不到,则抛出 EntityNotFoundException。源码:public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryB

2020-11-23 17:28:36 1468 2

原创 IDEA的常用快捷键

【1】创建内容:alt+insert【2】main方法:psvm【3】输出语句:sout【4】复制行:ctrl+d【5】删除行:ctrl+y【6】代码向上/下移动:Ctrl + Shift + Up / Down【7】搜索类: ctrl+n【8】生成代码 :alt + Insert(如构造函数等,getter,setter,hashCode,equals,toString)【9】百能快捷键 : alt + Enter (导包,生成变量等)【10】单行注释或多行注释 : Ctrl +

2020-11-23 14:19:14 93

原创 IDEA的常用设置

1、工具栏显示设置:2、设置主题:3、编辑区的字体变大或变小:4、鼠标悬浮代码有提示:5、自动导包和优化多余的导包:6、同一个包下的类,超过指定个数的时候,导包合并为 * :7、显示行号和方法间的分隔符:8、忽略大小写:9、多个类不隐藏:10、设置默认的字体,字体大小,字体行间距:(编辑区和控制台都会变化):11、修改类头的文档注释信息:注意:对新建的类才有效/**@Auther: zhaoss@Date: ${DATE} - ${MONTH} - ${DAY

2020-11-23 14:13:35 117

原创 SpringJPA使用时 LazyInitializationException: could not initialize proxy - no Session

解决方法:在配置文件中添加 enable_lazy_load_no_trans: truespring jpa: properties: hibernate: # 把懒加载变为立即加载,即使没有 Session 也能查询到数据。(查询所有数据都会立即加载数据,会影响性能) enable_lazy_load_no_trans: true在实体上使用注解 @Proxy(lazy = false)把某个实体的懒加载变为立即加载,即使没有 S

2020-11-19 09:53:15 218

原创 PDF格式文件的读取

1、导入坐标 <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox --><dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.21</version></depend

2020-11-06 15:16:03 446

原创 DBF格式文件的读取

1、导入坐标 <!-- https://mvnrepository.com/artifact/com.linuxense/javadbf --> <dependency> <groupId>com.linuxense</groupId> <artifactId>javadbf</artifactId> <version>0.4.0</version> </dependen

2020-11-06 15:14:03 459

原创 @Qurey注解的使用

一、参数的传递使用?传递参数public interface UserRepository extends JpaRepository<User, Long> { @Query("select u from User u where u.emailAddress = ?1") User findByEmailAddress(String emailAddress);}使用:参数名传递参数public interface UserRepository ext

2020-11-06 13:37:13 5032

原创 JPA多条件查询时 部分条件为空

第一种使用@Querypublic interface UserRepository extends JpaRepository<User,Long> { //字符串类型在mysql为null时,为''字符串,如果为空,就使用1=1条件去查询 @Query(value = "select * from user where if(?1!='',name=?1,1=1) and if(?2!='',age=?2,1=1)" ,nativeQuery = true)

2020-11-06 10:14:24 4226 3

原创 创建型模式之抽象工厂

1、什么是抽象工厂 提供一个接口,用于创建 相关的对象家族 。 抽象工厂模式创建的是对象家族,也就是很多对象而不是一个对象,并且这些对象是相关的, 也就是说必须一起创建出来。而工厂方法模式只是用于创建一个对象,这和抽象工厂模式有很大不同。2、抽象工厂的代码实现public class AbstractProductA {}public class AbstractProductB {}public class ProductA1 extends AbstractProductA

2020-10-13 17:14:52 59

原创 创建型模式之工厂方法

1、什么是工厂方法 定义了一个创建对象的接口,但由子类决定要实例化哪个类。工厂方法把实例化操作推迟到子类。2、工厂方法的代码实现public class SimpleFactory { public Product createProduct(int type) { if (type == 1) { return new ConcreteProduct1(); } else if (type == 2) { r

2020-10-13 16:46:32 146

原创 创建型模式之简单工厂

1、什么是简单工厂? 简单工厂模式是在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。 Tips:简单工厂属于创建型设计模式,但是不属于二十三种设计模式。2、简单工厂的代码实现 public class SimpleFactory { public Product createProduct(int type) { if (type == 1) { return new ConcreteProduct1();

2020-10-13 16:36:34 93

原创 Git分支

1、常用的分支操作 1、查看分支:`git branch` 2、创建分支:`git branch <name>`或者`git branch <name> origin/分支名` 3、切换分支:`git checkout <name>或者git switch <name>` 4、创建+切换分支:`git checkout -b <name>或者git switch -c <name>` 从远程创建并合并:`git

2020-10-09 11:00:41 70

原创 Git关联远程仓库

当本地仓库和远程均有文件时,关联仓库并推送需四步:1、git remote add origin URL2、git pull origin master --allow-unrelated-histories3、git branch --set-upstream-to=origin/master master4、git push

2020-09-23 22:47:10 100

原创 Git回退和取消回退

1、撤销commit操作 git reset [--mixed/soft/hard] HEAD^ 撤销上次的提交 //如果想撤销N次commit,使用HEAD~N 1、--mixed 不删除工作空间改动代码,撤销commit,并且撤销git add .操作。这个为默认参数,git reset --mixed HEAD^ 和git reset HEAD^ 效果相同 2、--soft 不删除工作空间改动代码,撤销commit,不撤销git add . 3...

2020-09-22 16:54:34 7152 1

原创 Git使用大全(不断更新)

Git的使用1、Git的下载和安装git的安装地址 下载好以后直接安装,一直下一步即可(ps:可以自己选择安装目录,也可默认安装)2、Git的环境配置git config --global user.name "用户名"git config --global user.email "邮箱" //用户名和邮箱任意写,相当于上传代码时的一个签名通过上面命令设置的信息存放在C盘用户目录的.gitconfig文件中3、Git仓库的创建方式 本地创建仓库 git init..

2020-09-13 22:37:52 132

原创 Java基础之文件的IO流

一. IO字节流 字节输入流:FileInputStream 字节输出流:FileOutputStream二. IO字符流 字符输入流:FileReader 字符输出流:FileWriter三. 缓冲流 BufferInputStream BufferOutputStream BufferReade...

2020-02-21 19:48:53 96

原创 LCS模板

/*LCSBDCABAABCBDABdp[1][2] = 1dp[1][1] = 0dp[2][1] = 0//子串:连续//子序列:可以不连续 // LCSdp[i][j]//第一个字符串在第i个字符前且第二个串在第j个字符前可构成的最长子序列的长度 dp[i][j] = 0 i=0 || j=0 dp[i-1][j-1]+1

2017-08-22 17:26:34 191

原创 过山车

点击打开链接A - 过山车Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64uSubmit StatusDescriptionRPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有

2017-08-20 15:33:09 224

原创 Asteroids

点击打开链接C - AsteroidsTime Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64uSubmit StatusDescriptionBessie wants to navigate her spaceship through a da

2017-08-20 15:26:26 196

原创 树状数组模板

用树状数组解决问题比线段树(优点)空间复杂度低,并且代码简洁,(缺点)只能求某段和,不能求最值!#include#include#define lowerBit(x) (x&(-x))int num[10000];int n;void UpDate(int x,int y) //把第x个数加y{ while (x <= n) { num[x] += y; x = x+

2017-08-17 20:02:18 167

原创 KMP

关于KMP是一个比较难理解的算法。其作用是求解字符串a中有没有b。如果用常规方法时间复杂度是(Onm),而用KMP时间复杂度为(On+m)。算法是对模拟串进行处理,用数组NEXT记录位置i前的最长前缀和后缀。详见代码如下:#include#includeint NEXT[1000];int main(){ char a[100],b[100]; scanf("%s%s",a,b

2017-08-15 15:34:50 98

原创 Fibonacci

点击打开链接DescriptionIn the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequence are:0, 1, 1, 2, 3

2017-08-14 19:35:31 290 2

原创 线段树模板

#include#includeusing namespace std;#define L o<<1#define R (o<<1)|1struct Node{ int l,r,sum,Max,Min;}Tree[1000<<2];void PushUp(int o){ Tree[o].sum = Tree[o*2].sum + Tree[o*2+1].sum; Tree[

2017-08-12 20:04:28 117

原创 The Triangle

点击打开链接The Triangle时间限制:1000 ms  |  内存限制:65535 KB难度:4描述73 88 1 02 7 4 44 5 2 6 5(Figure 1)Figure 1 shows a number triangle. Write a program that calculates the h

2017-08-08 20:17:05 276

原创 免费馅饼

点击打开链接    都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的

2017-08-08 18:16:57 170

原创 An problem about date

点击打开链接                                                             An problem about date                                                                                                 时间限制:20

2017-08-08 17:20:26 141

空空如也

空空如也

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

TA关注的人

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