<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CaiXinXing的优快云博客]]></title><description><![CDATA[求索]]></description><link>https://blog.youkuaiyun.com/cai4561</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cai4561]]></copyright><item><title><![CDATA[两个对象集合，把一个集合中对象的某个值，赋值给，另一个集合中对象的某个键，双重foreach实现。]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/111768876</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/111768876</guid><author>cai4561</author><pubDate>Sat, 26 Dec 2020 20:33:19 +0800</pubDate><description><![CDATA[两个对象集合，把一个集合中对象的某个值，赋值给，另一个集合中对象的某个键，双重foreach实现。


//实发数量 TODO
for (XdAllotWantlist xdAllotWantlist:xdAllotWantlists){
    int i = xdAllotWantlists.indexOf(xdAllotWantlist);
    for (XdStockStock xdStockStock:stockStockInList){
        int j = stockStockI]]></description><category></category></item><item><title><![CDATA[android studio 开发右侧预览指定分辨率和版本设置]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/111715238</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/111715238</guid><author>cai4561</author><pubDate>Sat, 26 Dec 2020 09:41:28 +0800</pubDate><description><![CDATA[android studio 开发右侧预览指定分辨率和版本设置







分辨率选项





目标版本选项








]]></description><category></category></item><item><title><![CDATA[Android布局之边框、分割线]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/111569568</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/111569568</guid><author>cai4561</author><pubDate>Tue, 22 Dec 2020 23:33:49 +0800</pubDate><description><![CDATA[Android布局之边框、分割线

先上图，实现如下图样式





布局文件使用Linerlayout垂直布局即可，这里省略，主要需要添加如下样式：




&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;shape xmlns:android="http://schemas.android.com/apk/res/android" &gt;
    &lt;!--背景颜色--&gt;
    &lt;solid android:color="#E8E..]]></description><category></category></item><item><title><![CDATA[android-图片加载框架-Glide基本使用总结]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/111320416</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/111320416</guid><author>cai4561</author><pubDate>Thu, 17 Dec 2020 17:28:03 +0800</pubDate><description><![CDATA[首先，添加依赖




implementation 'com.github.bumptech.glide:glide:4.5.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.5.0'


之后添加访问网络权限




&lt;uses-permission android:name="android.permission.INTERNET" /&gt;


一、常用的方法

1、加载图片到imageView




Glide...]]></description><category></category></item><item><title><![CDATA[UE4蓝图使用技巧]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/111058276</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/111058276</guid><author>cai4561</author><pubDate>Sat, 12 Dec 2020 11:10:21 +0800</pubDate><description><![CDATA[UE4蓝图

使用技巧1.快速使用Get型变量=按住Ctrl+从变量列表中拖动变量到界面2.快速使用Set型变量=按住Alt+从变量列表中拖动变量到界面3.线段中添加临时点=双击连线4.断开连线=右键某引脚、或Alt+鼠标左键5.区域注释=选中多个块，然后按C6.让共有变量变为蓝图小工具=细节&gt;变量&gt;显示3D控件7.快速添加分支=按住B+鼠标左键常用方法


序号
			搜索名称
			含义
			操作类型
		1
			Custom
			添加自定义事件
			事件
		2
			Li...]]></description><category></category></item><item><title><![CDATA[Android Studio adb 连接真机命令调试步骤 获取真SN序列号]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/110129211</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/110129211</guid><author>cai4561</author><pubDate>Wed, 25 Nov 2020 14:32:29 +0800</pubDate><description><![CDATA[在Android Studio中工作时，手机插口需要连接其他设备因此无法用线与电脑连接，因此可以利用Android Studio内嵌的命令台通过adb实现WIFI连接手机与电脑。

1.确认adb环境配置已成功

命令台输入：adb

出现以下类似输出已配置成功：若是找不到命令，则需要配置adb环境:windows：
若是已安装Android Studio，则找到位于Android SDK下的platform-tools目录，里面会有adb.exe文件。
在系统中path里加入platform-tools的]]></description><category></category></item><item><title><![CDATA[Mybatisplus 自定义sql 使用条件构造器]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/109547248</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/109547248</guid><author>cai4561</author><pubDate>Sat, 07 Nov 2020 15:03:25 +0800</pubDate><description><![CDATA[两种方式

注解方式


动态查找：
@Select("select ${ew.SqlSelect} from ${tableName} ${ew.customSqlSegment}")
List&lt;File&gt; listFileByCondition(@Param("tableName") String tableName, @Param("ew") Wrapper wrapper);

ew.SqlSelect：所需要查找的字段

tableName：使用的是那张表

ew.customSqlS]]></description><category></category></item><item><title><![CDATA[MybatisPlus 方式 多表查询]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/109547088</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/109547088</guid><author>cai4561</author><pubDate>Sat, 07 Nov 2020 14:55:45 +0800</pubDate><description><![CDATA[Controller


        shopList = shopService.queryStoreEmp(new QueryWrapper&lt;RetailShop&gt;()
                .select("sh_emp_id,sh_emp_name,sum(sh_sellamount) as sh_sellamount,sum(sh_sellmonery) as sh_sellmonery," +
                        "(sum(sh_sellm]]></description><category></category></item><item><title><![CDATA[IDEA：提升开发效率的插件之GenerateAllSetter]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/109445655</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/109445655</guid><author>cai4561</author><pubDate>Mon, 02 Nov 2020 11:33:10 +0800</pubDate><description><![CDATA[本文用于介绍使用idea开发过程中，有助于我们开发者提升开发效率的插件。

本期介绍插件：

GenerateAllSetter

该插件作用是可以快速针对已有的model实体对象的属性生产set代码，免去开发者在开发过程中set属性值时还需要去实体对象中翻查的时间，生成的同时会附带类型默认值。

插件介绍如图：



插件安装：

选择工具栏中的"File"-&gt;"Settings"， 如图：



打开Setting窗口后，在搜索栏中搜索"plugin"，如图所示，点击后在右侧窗口中选择Marker]]></description><category></category></item><item><title><![CDATA[MQ-消息队列使用场景理解]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/109362706</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/109362706</guid><author>cai4561</author><pubDate>Thu, 29 Oct 2020 16:16:44 +0800</pubDate><description><![CDATA[一、消息队列概述
消息队列中间件是分布式系统中重要的组件，主要解决应用解耦，异步消息，流量削锋等问题，实现高性能，高可用，可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ，RabbitMQ，ZeroMQ，Kafka，MetaMQ，RocketMQ

二、消息队列应用场景
以下介绍消息队列在实际应用中常用的使用场景。异步处理，应用解耦，流量削锋和消息通讯四个场景。

2.1异步处理
场景说明：用户注册后，需要发注册邮件和注册短信。传统的做法有两种1.串行的方式；2.并行方式
a、串行方式：将.]]></description><category></category></item><item><title><![CDATA[ajax json demo]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/109306346</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/109306346</guid><author>cai4561</author><pubDate>Tue, 27 Oct 2020 10:53:33 +0800</pubDate><description><![CDATA[ajax json demo




$.ajax({
    type: "POST",
    url: "/store/allotwant/updateAlltById",
    data: {
        fieldId: $('#fieldId').val(),
        fieldName: $('#fieldName').val()
    },
    cache: false,
    dataType: "json",
    success: function (res).]]></description><category></category></item><item><title><![CDATA[Linux下解决高并发socket最大连接数所受的各种限制（解除IO限制）]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/109242608</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/109242608</guid><author>cai4561</author><pubDate>Fri, 23 Oct 2020 14:58:12 +0800</pubDate><description><![CDATA[Linux下解决高并发socket最大连接数所受的各种限制（解除IO限制）

　　linux作为服务器系统，当运行高并发TCP程序时，通常会出现连接建立到一定个数后不能再建立连接的情况

　　本人在工作时，测试高并发tcp程序（GPS服务器端程序），多次测试，发现每次连接建立到3800左右时，再也不能建立tcp连接，最终上网搜索，

参考：http://blog.youkuaiyun.com/guowake/article/details/6615728解决了连接限制的问题，

此处记录下来，方便日后工作继续使用，虽然]]></description><category></category></item><item><title><![CDATA[子查询与内连接查询应用实例]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/109184794</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/109184794</guid><author>cai4561</author><pubDate>Tue, 20 Oct 2020 17:09:17 +0800</pubDate><description><![CDATA[子查询


    select bep_si_id,bep_emp_id,bep_points,sum(bep_points) as bep_points_sum,bep_state,
    (select be.be_photo from t_base_employee be where be.be_id=bep.bep_emp_id ) as be_photo,
    (select si_name from t_base_storeinfo bs where bs.si_id=bep.bep_.]]></description><category></category></item><item><title><![CDATA[JavaScript 工具类 获取本月第一天、本月最后一天、上月第一天、上月最后一天的日期]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/108752905</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/108752905</guid><author>cai4561</author><pubDate>Wed, 23 Sep 2020 14:45:23 +0800</pubDate><description><![CDATA[JavaScript 工具类 获取本月第一天、本月最后一天、上月第一天、上月最后一天的日期

本月第一天 dateUtil.getBeginMonth()

本月最后一天 dateUtil.getEndMonth()

上月第一天 dateUtil.getBeginLastMonth()

上月最后一天 dateUtil.getEndLastMonth()


/***
 * 本月的第一天时间
 */
export function getBeginMonth() {
	var date = new...]]></description><category></category></item><item><title><![CDATA[实体类（PO，VO，DO，DTO）的概念划分]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/108735693</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/108735693</guid><author>cai4561</author><pubDate>Tue, 22 Sep 2020 16:44:34 +0800</pubDate><description><![CDATA[概念：

PO（Persistent Object）：持久化对象，它跟持久层（通常是关系型数据库）的数据结构形成一一对应的映射关系，如果持久层是关系型数据库，那么，数据表中的每个字段（或若干个）就对应PO的一个（或若干个）属性。

VO（View Object）：视图对象，用于展示层，它的作用是把某个指定页面（或组件）的所有数据封装起来。

DO（Domain Object）：领域对象，就是从现实世界中抽象出来的有形或无形的业务实体。

DTO（Data Transfer Object）：数据传输对象，这个]]></description><category></category></item><item><title><![CDATA[传奇自定义技能栏技术分享-GEE]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/108677068</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/108677068</guid><author>cai4561</author><pubDate>Sat, 19 Sep 2020 09:49:26 +0800</pubDate><description><![CDATA[方式一：素材技能框
方式二：脚本技能框

用素材有个弊端是，UI的不同布局的不同，可用的素材就不同，甚至需要重新配置登录器，

脚本生成技能框更好一些，所用素材是NEWOPUI里的，直接调用大家都有的比较妥当。



方式一：


			
					
		
			
					
		

方式二：脚本技能框


			
					
		测试：目前位置是放到了屏幕的右侧。

为啥不贴边呢？因为图标保存的坐标有一个边距，现在是根据它的边距调的最小距离
简单介绍一下：

1.脚本没有占用变量，只是占用了自定义按钮..]]></description><category></category></item><item><title><![CDATA[微信小程序code 换取 session_key时报40029错误 解决办法]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/108582422</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/108582422</guid><author>cai4561</author><pubDate>Mon, 14 Sep 2020 16:44:20 +0800</pubDate><description><![CDATA[微信小程序code 换取 session_key时报40029错误



解决办法：

将微信小程序项目中 project.config.json 中的appid 改为正确的即可








]]></description><category></category></item><item><title><![CDATA[微信小程序开发-页面跳转的几种方式]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/108483853</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/108483853</guid><author>cai4561</author><pubDate>Wed, 09 Sep 2020 10:20:41 +0800</pubDate><description><![CDATA[最近在做微信小程序，碰到页面跳转的问题，总结一下页面之间跳转的方式


一、wx.navigateTo(OBJECT)


 这是最普遍的一种跳转方式，其官方解释为：“保留当前页面，跳转到应用内的某个页面”

类似于html中的window.location.href=" "
可以附带参数


wx.navigateTo({
  url: 'testPage/index?id=1'
})


wx.navigateTo({
    url:'../test/test?id=1&amp;page=4'...]]></description><category></category></item><item><title><![CDATA[微信小程序开发-弹窗提示-wx.showToast()用法]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/108483805</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/108483805</guid><author>cai4561</author><pubDate>Wed, 09 Sep 2020 10:14:54 +0800</pubDate><description><![CDATA[wx.showToast接口只提供了两种icon【success和loading】展示形式，

但是在实际开发中并不满足的。这里可以通过加image:'图片路径'。




     wx.showToast({
       title:"成功",
       icon: 'loading...',//图标，支持"success"、"loading" 
       image: '/images/tan.png',//自定义图标的本地路径，image 的优先级高于 icon
       durat.]]></description><category></category></item><item><title><![CDATA[微信小程序单图片上传和预览]]></title><link>https://blog.youkuaiyun.com/cai4561/article/details/108473226</link><guid>https://blog.youkuaiyun.com/cai4561/article/details/108473226</guid><author>cai4561</author><pubDate>Tue, 08 Sep 2020 17:26:06 +0800</pubDate><description><![CDATA[wxml：



&lt;view class="container"&gt;
&lt;image class="image" src="{{imgPath}}" mode='scaleToFill' bindtap="previewImg"&gt;&lt;/image&gt;
&lt;button bindtap="selectImg"&gt;选择图片&lt;/button&gt;
&lt;button bindtap="loadImg"&gt;上传图片&lt;/button&gt;
&lt;/view&]]></description><category></category></item></channel></rss>