<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Pattonr的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Pattonr</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Pattonr]]></copyright><item><title><![CDATA[Mybatis_generator自动生成代码覆盖了手写部分xml的解决办法]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/103770423</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/103770423</guid><author>Pattonr</author><pubDate>Mon, 30 Dec 2019 17:57:37 +0800</pubDate><description><![CDATA[【背景】

项目使用了mybatis-generator插件自动生成mysql表对应的xml、mapper和entity。对于一些复杂sql和自定义的sql，我们在xml和mapper进行相应维护。



【问题描述】

在后续的版本迭代中，数据库表难免会有所调整和扩展。此时如果再用mybatis-generator插件重新自动生成，会把该表原有的mapper文件覆盖，xml文件追加。



...]]></description><category></category></item><item><title><![CDATA[Grails页面view向后台controller传值时，变量名“format”失效]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/89465969</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/89465969</guid><author>Pattonr</author><pubDate>Tue, 23 Apr 2019 10:20:24 +0800</pubDate><description><![CDATA[如题，Grails页面view调用后台controller的方法，在进行传值时，其中一个参数名是“format”关键字，导致后台controller接收到的值一直为null。改为“forma”则可以传值。

所以尽量避免关键字作为变量名。

一、变量名为“format”

js:



controller:





二、变量名为“forma”

js:



controller:

...]]></description><category></category></item><item><title><![CDATA[@Service注解 alibaba.dubbo和springframework的区别]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/80880106</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/80880106</guid><author>Pattonr</author><pubDate>Mon, 02 Jul 2018 10:41:09 +0800</pubDate><description><![CDATA[关于@Service，目前有两个包中都有此注解：com.alibaba.dubbo.config.annotation.Service 和 org.springframework.stereotype.Service。两者区别如下：com.alibaba.dubbo.config.annotation.Service：用于dubbo接口,dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架，or...]]></description><category></category></item><item><title><![CDATA[ORACLE中数据查重及重复数据删除]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/73949822</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/73949822</guid><author>Pattonr</author><pubDate>Fri, 30 Jun 2017 12:43:59 +0800</pubDate><description><![CDATA[1.单个字段

1.1 查找表中多余的重复记录，重复记录是根据单个字段（Id）来判断
select * from 表 where Id in (select Id from 表 group byId having count(Id) &gt; 1)
 
1.2 删除表中多余的重复记录，重复记录是根据单个字段（Id）来判断，只留有rowid最小的记录
DELETE from 表 WHERE (]]></description><category></category></item><item><title><![CDATA[c++小工具：将exe加入系统服务项，并设置为启动]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/41894193</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/41894193</guid><author>Pattonr</author><pubDate>Fri, 12 Dec 2014 15:11:23 +0800</pubDate><description><![CDATA[本文目标：编写c++小工具，将某个exe加入系统服务项，并启动该服务。
思路：1.将exe加入系统服务（c++中使用批处理实现）
            2.编辑注册表（c++注册表编程实现）
            3.启动服务（c++中使用批处理实现，或者c++系统服务编程实现）


准备工作：


源码如下：
// Temp.cpp : 定义控制台应用程序的入口点。
//]]></description><category></category></item><item><title><![CDATA[手动 将exe加入到系统启动服务、卸载服务的方法]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/41893495</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/41893495</guid><author>Pattonr</author><pubDate>Fri, 12 Dec 2014 14:44:06 +0800</pubDate><description><![CDATA[先说手动将exe加入到系统启动服务：
方法一：Instsrv.exe和Srvany.exe
准备工作：需要两个小软件：Instsrv.exe和Srvany.exe。（Instsrv.exe可以给系统安装和删除服务，Srvany.exe可以让程序以服务的方式运行。）
          将两个软件放入 C:\Windows\System32\目录下
          将C:\Windows]]></description><category></category></item><item><title><![CDATA[c++ 查看系统服务，若服务未启动则启动系统服务]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/41893341</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/41893341</guid><author>Pattonr</author><pubDate>Fri, 12 Dec 2014 14:22:08 +0800</pubDate><description><![CDATA[本文实现目标：c++ 启动系统服务
思路：先打开系统服务，检查系统服务状态，如果服务处于停止状态，则将其状态设置为启动。
// Temp.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include 
#include 
#include 

int _tmain(int argc, _TCHAR* argv[])
{
	SERVICE_STATU]]></description><category></category></item><item><title><![CDATA[c++ 注册表操作（打开，添加子项）]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/41892957</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/41892957</guid><author>Pattonr</author><pubDate>Fri, 12 Dec 2014 14:02:54 +0800</pubDate><description><![CDATA[本文思路：c++ 打开注册表中的某一项GameManagerServer，在其下面添加子项Parameters，并为Parameters新建子项以及赋值。
// Temp.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include 
#include 
#include 

int _tmain(int argc, _TCHAR* argv[])
]]></description><category></category></item><item><title><![CDATA[c++ 调用cmd并执行语句的三种方法]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/41891871</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/41891871</guid><author>Pattonr</author><pubDate>Fri, 12 Dec 2014 13:24:25 +0800</pubDate><description><![CDATA[本文旨在实现c++程序中调用cmd并完成语句执行

  需引入的头文件：#include &lt;windows.h&gt;

  需要执行的命令：instsrv GameManagerServer C:\\Windows\\System32\\srvany.exe

  语句执行前提：（1）C:\\Windows\\System32\\srvany.exe 存在，...]]></description><category></category></item><item><title><![CDATA[LOAD DATA LOCAL INFILE，从txt文件导入数据到mysql表]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/37662637</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/37662637</guid><author>Pattonr</author><pubDate>Thu, 10 Jul 2014 19:15:22 +0800</pubDate><description><![CDATA[文件生成部分的代码如下（c#）：
   StreamWriter writer = new StreamWriter( "d:\\record.txt", false, Encoding.GetEncoding("gb2312"));
                for (int row = 0; row 
                    for (int col = 0; co]]></description><category></category></item><item><title><![CDATA[C#中数据类型的托管]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/18597503</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/18597503</guid><author>Pattonr</author><pubDate>Tue, 21 Jan 2014 10:00:38 +0800</pubDate><description><![CDATA[数据类型分为了值类型和引用类型，再加上存储时的托管与非托管这个.NET新引入的概念，需要保证通信时数据传输的正确性，需要了解下C#与C 两种语言的通信逻辑。
    一般来说通信时需要传递的数据主要是以消息头与消息体的两段的形式，而消息头在大多数情况下需要我们自己设计结构体，本来结构体在C#下是值类型，但是当结构体中存在了引用类型的数据时结构体会成为托管类型，但是C 的数据是非托]]></description><category></category></item><item><title><![CDATA[预处理命令之条件编译（#ifdef,#else,#endif,#if等）]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/18355981</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/18355981</guid><author>Pattonr</author><pubDate>Thu, 16 Jan 2014 13:39:20 +0800</pubDate><description><![CDATA[﻿﻿
预处理过程扫描源代码，对其进行初步的转换，产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。
在C语言中，并没有任何内在的机制来完成如下一些功能：在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作，就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序，但通常认为它们是独立于编译器的。预处理过程读入源代码，检查包含预处理指令的]]></description><category></category></item><item><title><![CDATA[正在进行调试的 Web 服务器进程已由 Internet 信息服务器(IIS)终止。可以通过在 IIS 中配置应用程序池 Ping 设置为避免这一问题]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/18084999</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/18084999</guid><author>Pattonr</author><pubDate>Fri, 10 Jan 2014 15:45:21 +0800</pubDate><description><![CDATA[在调试ASP网站代码运行情况时，调式过程中电脑老是会自动停止调试，说什么“
﻿﻿
正在进行调试的 Web 服务器进程已由 Internet 信息服务器(IIS)终止。可以通过在 IIS 中配置应用程序池 Ping 设置为避免这一问题”，很是烦人。



解决方法如下：
在“Internet信息服务(IIS)管理器”----“应用程序池” 中找到你的网站，右键，在“应用程序默认设置”里]]></description><category></category></item><item><title><![CDATA[SQL按日期天数（即 每日）合并统计项]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/18084433</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/18084433</guid><author>Pattonr</author><pubDate>Fri, 10 Jan 2014 15:23:07 +0800</pubDate><description><![CDATA[比如我数据库中查询出来，每天什么时候有那些游戏玩家在游戏中的充值情况，现在我要按天来统计，看看每天有多少人充值。


表中的原数据如下：



按日期天数（即 每日）合并统计项：
SELECT 
convert(varchar(8),[PayTime],112) AS "日期",
COUNT(DISTINCT Account)AS "充值人数" 
FROM 某某数据库.[tb]]></description><category></category></item><item><title><![CDATA[DateTime.Now.Date.AddDays(int a)]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/18083891</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/18083891</guid><author>Pattonr</author><pubDate>Fri, 10 Jan 2014 15:00:41 +0800</pubDate><description><![CDATA[﻿﻿
DateTime.Now.Date.AddDays(int a)
表示当前时间加几天
这个数字可以是正数也可以是负数
比如今天DateTime.Now.AddDays(1) 就是明天
DateTime.Now.AddDays(-1)就是昨天


C#例子：
using System;
public class Test
{
 public static void Ma]]></description><category></category></item><item><title><![CDATA[一个在线调试程序的网址]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/18083701</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/18083701</guid><author>Pattonr</author><pubDate>Fri, 10 Jan 2014 14:51:59 +0800</pubDate><description><![CDATA[这个地方可以在线调试一些简单的程序，挺方便的
                http://ideone.com/
支持的语言有：
    Bash
    Pascal (fpc)
    C
    Pascal (gpc)
    C#
    Perl
    C++ 4.8.1
    PHP
    C++11
    Python
    Haskell]]></description><category></category></item><item><title><![CDATA[SQL 给一个数据查询结果添加一列从0到n的序号]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/18036857</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/18036857</guid><author>Pattonr</author><pubDate>Thu, 09 Jan 2014 11:47:44 +0800</pubDate><description><![CDATA[在SQL数据库中，有一个查询结果，这个查询结果没有序号，是按玩家的等级排行来排序的。
    现在我要将这个排序的结果添加一列序号，从0到100，这样可以看到前100名每一名玩家所对应的等级。


   我原有的查询语句如下：
     


  查询结果如下：



为了添加一列序号，我只需这样来写：select 名次=Row_number() Over(order by]]></description><category></category></item><item><title><![CDATA[SQL中on条件与where条件的区别]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/17795223</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/17795223</guid><author>Pattonr</author><pubDate>Fri, 03 Jan 2014 17:34:17 +0800</pubDate><description><![CDATA[尊重作者，原文地址：
﻿﻿
http://hi.baidu.com/bdivem/item/14ebf0bed57d6c4cbb0e1255


  数据库在通过连接两张或多张表来返回记录时，都会生成一张中间的临时表，然后再将这张临时表返回给用户。
     在使用left jion时，on和where条件的区别如下：
1、 on条件是在生成临时表时使用的条件，它不管on中的条件是否]]></description><category></category></item><item><title><![CDATA[strlen和mb_strlen()计算长度的区别]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/17582653</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/17582653</guid><author>Pattonr</author><pubDate>Thu, 26 Dec 2013 14:32:39 +0800</pubDate><description><![CDATA[原文地址：
﻿﻿
http://hi.baidu.com/iceskyjuan/item/703a88f66ff94b23743c4cad



//测试时文件的编码方式要是UTF8
$str='中文a字1符';
echo strlen($str).'';//14
echo mb_strlen($str,'utf8').'';//6
echo mb_strlen($str,'g]]></description><category></category></item><item><title><![CDATA[{dede:field name='array' /}的简单用法示范]]></title><link>https://blog.youkuaiyun.com/Pattonr/article/details/17503923</link><guid>https://blog.youkuaiyun.com/Pattonr/article/details/17503923</guid><author>Pattonr</author><pubDate>Mon, 23 Dec 2013 14:03:18 +0800</pubDate><description><![CDATA[原文网址：
﻿﻿
http://www.dedecms.com/help/development/2009/0929/426.html


官方的解释：field支持用array获取任意字段的值；(支持标记：文章列表模板的 {dede:field name='array' /}、arclist、arclistsg、loop、sql 标签)





通俗点来讲，这就是查询数据]]></description><category></category></item></channel></rss>