<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Yang975222579的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Yang975222579</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Yang975222579]]></copyright><item><title><![CDATA[Flink水位线学习]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/131057110</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/131057110</guid><author>Yang975222579</author><pubDate>Mon, 05 Jun 2023 22:21:32 +0800</pubDate><description><![CDATA[【代码】Flink水位线学习。]]></description><category></category></item><item><title><![CDATA[ElasticSearch数据管理]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/121377133</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/121377133</guid><author>Yang975222579</author><pubDate>Wed, 17 Nov 2021 14:24:37 +0800</pubDate><description><![CDATA[创建索引
	创建带有映射的索引
	分片数量3，副本数量为2，索引为sunlight，类型默认为_doc，包含四个字段并且类型不相同

put localhost:9200/sunlight?pretty
{
	"settings": {
		"number_of_shards": 3,
		"number_of_replicas": 2
	},
	"mappings": {
			"properties": {
				"commodity_id": {
					"type": "long"
				},]]></description><category></category></item><item><title><![CDATA[设计模式---模板方式]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119867950</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119867950</guid><author>Yang975222579</author><pubDate>Mon, 23 Aug 2021 14:01:40 +0800</pubDate><description><![CDATA[模板设计模式
模板方法模式在一个方法中定义一个算法的骨架，而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下，重新定义算法中的某些步骤

public abstract class SoyaMilk {
    //这是模板方法，用final修饰，不允许子类覆盖。模板方法定义了制作豆浆的程序
    final void  prepareRecipe(){
        selectMaterial();
        //判断是否添加配料
        if(customerWa]]></description><category></category></item><item><title><![CDATA[设计模式---策略模式]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119867695</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119867695</guid><author>Yang975222579</author><pubDate>Mon, 23 Aug 2021 13:48:48 +0800</pubDate><description><![CDATA[策略模式
public interface Calculator {
    /**
     * 计算方法
     * @param num1
     * @param num2
     * @return
     */
    public double calculate(double num1,double num2);
}

public class OptionAdd implements Calculator{
    @Override
    public double calcu]]></description><category></category></item><item><title><![CDATA[设计模式---代理模式]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119867130</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119867130</guid><author>Yang975222579</author><pubDate>Mon, 23 Aug 2021 13:09:04 +0800</pubDate><description><![CDATA[代理模式
一：静态代理
要求代理的类

public interface UserService {
    void save();
}

public class UserServiceImpl implements UserService{
    @Override
    public void save() {
        System.out.println("执行保存数据");
    }
}

代理工厂
public class StaticProxy implements UserS]]></description><category></category></item><item><title><![CDATA[设计模式--单例模式]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119864855</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119864855</guid><author>Yang975222579</author><pubDate>Mon, 23 Aug 2021 11:00:07 +0800</pubDate><description><![CDATA[单例模式
public class Mgr01 {
    private Mgr01(){}
    private final static Mgr01 INSTANCE = new Mgr01();
    public static Mgr01 getInstance(){
        return INSTANCE;
    }

}

public class Mgr02 {
    private final static Mgr02 INSTANCE;
    static {
    ]]></description><category></category></item><item><title><![CDATA[LeetCode 算法学习]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119863678</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119863678</guid><author>Yang975222579</author><pubDate>Mon, 23 Aug 2021 10:19:27 +0800</pubDate><description><![CDATA[计算两个数字之和
public class GetNum {
    public static void main(String[] args) {
        int[] nums = {4, 7, 7, 11, 15, 10, 7};
        int target = 14;
        List&lt;int[]&gt; result = twosum_input_contain_duplication(nums, target);
        result.forEach(it]]></description><category></category></item><item><title><![CDATA[ThreadLocal线程局部变量学习]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119816611</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119816611</guid><author>Yang975222579</author><pubDate>Fri, 20 Aug 2021 09:52:03 +0800</pubDate><description><![CDATA[ThreadLocal 线程的本地变量
package com.mileage.controller;

import com.mileage.domian.AddressData;

/**
 * @ClassName HelloWorld
 * @Description ThreadLocal 内存泄漏问题,因为ThreadLocal是弱引用
 *              T当hreadLocal为null的时候,但是此时我们的ThreadLocalMap生命周期和Thread的一样，
 *     ]]></description><category></category></item><item><title><![CDATA[SpringBoot整合RocketMQ]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119706090</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119706090</guid><author>Yang975222579</author><pubDate>Sat, 14 Aug 2021 21:05:06 +0800</pubDate><description><![CDATA[第一步引入jar
&lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.rocketmq&lt;/groupId&gt;
            &lt;artifactId&gt;rocketmq-spring-boot-starter&lt;/artifactId&gt;
            &lt;version&gt;2.1.0&lt;/version&gt;
         ]]></description><category></category></item><item><title><![CDATA[ByteBuffer学习]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119614723</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119614723</guid><author>Yang975222579</author><pubDate>Wed, 11 Aug 2021 19:16:32 +0800</pubDate><description><![CDATA[ByteBuffer字符串缓冲区学习

capacity、limit、position、mark
Capacity	容量，即可以容纳的最大数据量；在缓冲区创建时被设定并且不能改变
Limit	表示缓冲区的当前终点，不能对缓冲区超过极限的位置进行读写操作。且极限是可以修改的
Position	位置，下一个要被读或写的元素的索引，每次读写缓冲区数据时都会改变改值，为下次读写作准备
Mark	标记，调用mark()来设置mark=position，再调用reset()可以让position恢复到标记的位置

..]]></description><category></category></item><item><title><![CDATA[Logger日志文件输出]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119605493</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119605493</guid><author>Yang975222579</author><pubDate>Wed, 11 Aug 2021 14:14:34 +0800</pubDate><description><![CDATA[引入依赖
&lt;dependency&gt;
            &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt;
            &lt;artifactId&gt;logback-access&lt;/artifactId&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;ch.qos.logback&lt;/groupId&g]]></description><category></category></item><item><title><![CDATA[netty心跳监测]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119604761</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119604761</guid><author>Yang975222579</author><pubDate>Wed, 11 Aug 2021 13:47:01 +0800</pubDate><description><![CDATA[心跳检测技术
现有A、B两端已经互相连接，但是他们之间很长时间没有数据交互，那么A与B如何判断这个连接是否可用呢？我们通常的做法就是，让任何一方，例如我们让A端，定时的发送(例如每5秒钟)一句问候"Are you ok?"，如果B都到来自A的问候，回了一句"GUN"，A收到了来自B的信息，也不在乎B到底给我回了什么，即可以断定与B的连接并没有断开；如果没有收到来自B的任何回复，过段时间在去发送问候，那么我们通常认为连续3次问候，都没有收到来自B的恢复，即认为A与B之间的连接已经断开。那么就得尝试着重新获取一]]></description><category></category></item><item><title><![CDATA[Netty多人聊天]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119604338</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119604338</guid><author>Yang975222579</author><pubDate>Wed, 11 Aug 2021 13:35:30 +0800</pubDate><description><![CDATA[ChatServer
public class MyChatServer {
    public static void main(String[] args) throws InterruptedException {
        EventLoopGroup boosGroup = new NioEventLoopGroup();
        EventLoopGroup workGroup = new NioEventLoopGroup();
        try{
           ]]></description><category></category></item><item><title><![CDATA[Netty客户端与服务端通信]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119600269</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119600269</guid><author>Yang975222579</author><pubDate>Wed, 11 Aug 2021 11:29:39 +0800</pubDate><description><![CDATA[NettyServer
public class MyServer {
    public static void main(String[] args)throws Exception {
        EventLoopGroup bossGroup = new NioEventLoopGroup();
        EventLoopGroup workGroup = new NioEventLoopGroup();
        try{
            ServerBootstra]]></description><category></category></item><item><title><![CDATA[Netty学习]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119598917</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119598917</guid><author>Yang975222579</author><pubDate>Wed, 11 Aug 2021 11:03:56 +0800</pubDate><description><![CDATA[Netty之HelloWorld
引入依赖

&lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;io.netty&lt;/groupId&gt;
            &lt;artifactId&gt;netty-all&lt;/artifactId&gt;
            &lt;version&gt;5.0.0.Alpha2&lt;/version&gt;
        &lt;/depen]]></description><category></category></item><item><title><![CDATA[Mybatis的SqlSessionManager/DefaultSqlSessionFactory]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119540063</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119540063</guid><author>Yang975222579</author><pubDate>Mon, 09 Aug 2021 16:14:48 +0800</pubDate><description><![CDATA[Mybatis的SqlSession学习
public class SqlSessionManager implements SqlSessionFactory, SqlSession {}
public class DefaultSqlSessionFactory implements SqlSessionFactory {}



SqlSessionManager 实现了Session接口。意味着，SqlSessionManager集成了 sqlSessionFactory和session 的功能。通]]></description><category></category></item><item><title><![CDATA[Mybatis的statement分析学习]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119538501</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119538501</guid><author>Yang975222579</author><pubDate>Mon, 09 Aug 2021 15:33:26 +0800</pubDate><description><![CDATA[Statement
基本的jdbc查询数据库步骤如下:

psmt = connection.preparementStatement(sql);
psmt.setString(1,name)
psmt.executeQuery();

mybatis的是如何实现
获取执行器代码

public Executor newExecutor(Transaction transaction, ExecutorType executorType) {
    executorType = executorType ]]></description><category></category></item><item><title><![CDATA[Mybatis的分页插件]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/119520188</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/119520188</guid><author>Yang975222579</author><pubDate>Sun, 08 Aug 2021 20:28:17 +0800</pubDate><description><![CDATA[@Intercepts(@Signature(type = StatementHandler.class,
  method = "prepare",
  args = {Connection.class, Integer.class}))
@SuppressWarnings("all")
public class PageInterceptor implements Interceptor {
  /**
   * 执行到这里
   *
   * @param invocation
   * @retu.]]></description><category></category></item><item><title><![CDATA[mysql练习]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/118368837</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/118368837</guid><author>Yang975222579</author><pubDate>Wed, 30 Jun 2021 21:29:32 +0800</pubDate><description><![CDATA[mysql group by的用法学习创建表的结构数据
学习创建表的结构数据
create table t_person
(
    article int,
    author  varchar(20),
    price   decimal(8, 2)
);
## 导入表的数据结构
insert into t_person
select 001, 'B', 3.99
union all
select 002, 'A', 10.99
union all
select 003, 'C', 1.99
un]]></description><category></category></item><item><title><![CDATA[Oracle分页数据优化]]></title><link>https://blog.youkuaiyun.com/Yang975222579/article/details/118185307</link><guid>https://blog.youkuaiyun.com/Yang975222579/article/details/118185307</guid><author>Yang975222579</author><pubDate>Thu, 24 Jun 2021 14:11:52 +0800</pubDate><description><![CDATA[oracle分页查询数据





一、分页计算数据


`分页的参数:

pageNumber：页码

pageSize：每页展示数据

rowNum: pageSize*pageNumber

rowNo: (pageNumber-1)*pageSize


二、没有order by分页查询数据

1.嵌套子查询利用rownum来作为行号分组数据


 SELECT *
 FROM (SELECT ROWNUM AS ROWNO, T.*
     FROM RESTORE_INFO T
...]]></description><category></category></item></channel></rss>