<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ZhangSingle的博客]]></title><description><![CDATA[不断学习]]></description><link>https://blog.youkuaiyun.com/ZhangSingle</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ZhangSingle]]></copyright><item><title><![CDATA[POI导出excel]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/80044826</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/80044826</guid><author>ZhangSingle</author><pubDate>Sun, 22 Apr 2018 23:37:54 +0800</pubDate><description><![CDATA[@RequestMapping("/export")
	public void export(HttpServletResponse response, HttpServletRequest request) {
		List headerLine = new ArrayList<>();
		headerLine.add("id");
		headerLine.add("price");
		L]]></description><category></category></item><item><title><![CDATA[mybatis学习（三）使用xml配置sql映射器]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/79905714</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/79905714</guid><author>ZhangSingle</author><pubDate>Thu, 12 Apr 2018 01:01:07 +0800</pubDate><description><![CDATA[1.INSERT、UPDATE、DELETE
UserMapper代码

package com.single.mybatis_two.mappers;

import com.single.mybatis_two.model.User;

public interface UserMapper {

	public int insertUser(User user);
	
	public ]]></description><category></category></item><item><title><![CDATA[MyBatis学习（二）MyBatis项目配置]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/79810796</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/79810796</guid><author>ZhangSingle</author><pubDate>Tue, 03 Apr 2018 23:18:50 +0800</pubDate><description><![CDATA[XML 映射配置文件

MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置（settings）和属性（properties）信息。文档的顶层结构如下：

configuration 配置

properties 属性settings 设置typeAliases 类型别名typeHandlers 类型处理器objectFactory 对象工厂plugins 插件env]]></description><category></category></item><item><title><![CDATA[MyBatis学习（一）helloWord]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/79810482</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/79810482</guid><author>ZhangSingle</author><pubDate>Tue, 03 Apr 2018 22:56:31 +0800</pubDate><description><![CDATA[什么是 MyBatis ？

MyBatis 是一款优秀的持久层框架，它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息，将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

下]]></description><category></category></item><item><title><![CDATA[maven构建springMVC]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/79038227</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/79038227</guid><author>ZhangSingle</author><pubDate>Thu, 11 Jan 2018 20:30:07 +0800</pubDate><description><![CDATA[1、创建数据表

    数据表很简单，user_info

          


2、搭建Maven项目

     Maven项目搭建一笔带过（前面有介绍），其搭建后的webapp结构项目如下：

         

3、配置Maven的pom.xml文件

     导入所需的spring，以及数据源，spring-mvc，json等依赖。

pom.]]></description><category></category></item><item><title><![CDATA[微信公众帐号开发教程04-消息及消息处理工具的封装]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/77933656</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/77933656</guid><author>ZhangSingle</author><pubDate>Mon, 11 Sep 2017 15:27:27 +0800</pubDate><description><![CDATA[工欲善其事必先利其器！本篇内容主要讲解如何将微信公众平台定义的消息及消息相关的操作封装成工具类，方面后期的使用。这里需要明确的是消息其实是由用户发给你的公众帐号的，消息先被微信平台接收到，然后微信平台会将该消息转给你在开发模式接口配置中指定的URL地址。




微信公众平台消息接口

要接收微信平台发送的消息，我们需要先熟悉微信公众平台API中消息接口部分，点此进入，点击后将进入到]]></description><category></category></item><item><title><![CDATA[微信公众帐号开发教程03-开发模式启用及接口配置]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/77933633</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/77933633</guid><author>ZhangSingle</author><pubDate>Mon, 11 Sep 2017 15:25:57 +0800</pubDate><description><![CDATA[编辑模式与开发模式

微信公众帐号申请成功后，要想接收处理用户的请求，就必须要在“高级功能”里进行配置，点击“高级功能”，将看到如下界面：




从上图中可以看到，高级功能包含两种模式：编辑模式和开发模式，并且这两种模式是互斥关系，即两种模式不能同时开启。那两种模式有什么区别呢？作为开发人员到底要开启哪一种呢？

编辑模式：主要针对非编程人员及信息发布类公众帐号使用。开启该模式]]></description><category></category></item><item><title><![CDATA[微信公众帐号开发教程02-微信公众帐号的类型（普通和会议）]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/77933605</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/77933605</guid><author>ZhangSingle</author><pubDate>Mon, 11 Sep 2017 15:24:37 +0800</pubDate><description><![CDATA[个人公众帐号与企业公众帐号

记得在两个月前，我在微信官方开发群里问个人公众帐号与企业公众帐号有什么区别的时候，还被人笑话过，没有人愿意告知，也许是这个问题问的太过于简单了吧。我想一定也还有不少朋友在刚接触时，也搞不清楚这一点。其实，在注册微信公众帐号时，是不区分个人帐号与企业帐号的，它们需要填写的注册资料是一样的，这个区别仅仅是帐号申请成功后在使用用途上的区别罢了。然而，在注册公众帐号时的确]]></description><category></category></item><item><title><![CDATA[微信公众帐号开发教程01-引言]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/77933569</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/77933569</guid><author>ZhangSingle</author><pubDate>Mon, 11 Sep 2017 15:22:54 +0800</pubDate><description><![CDATA[接触微信公众帐号已经有两个多月的时间了，在这期间，除了陆续完善个人公众帐号xiaoqrobot以外，还带领团队为公司开发了两个企业应用：一个是普通类型的公众帐号，另一个是会议类型的公众帐号。经过这3个公众帐号的开发，对目前微信公众平台开放的api算是比较熟悉了，像文本消息、图文消息、音乐消息、语音消息、位置消息等全部用到过，菜单也使用过。所以，就有了写微信公众帐号开发教程的想法，将学习到的技术经验]]></description><category></category></item><item><title><![CDATA[fastJSON常用方法]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/77877864</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/77877864</guid><author>ZhangSingle</author><pubDate>Thu, 07 Sep 2017 10:14:46 +0800</pubDate><description><![CDATA[1 public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray 


2 public static final JSONObject parseObject(String text)； // 把JSON文本parse成JSONObject 


3 public static]]></description><category></category></item><item><title><![CDATA[JSONArray和List转换]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/77877136</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/77877136</guid><author>ZhangSingle</author><pubDate>Thu, 07 Sep 2017 09:36:26 +0800</pubDate><description><![CDATA[1.开发中常用到json字符串和list转换
js中传入的参数JSON.stringify({"data":datas });

params为传入的json字符串参数
String data = params.getString("data");

List obejctList =JSONArray.parseArray(data,Object.class);
2.json字符串]]></description><category></category></item><item><title><![CDATA[React学习（八）this.state]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/75307267</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/75307267</guid><author>ZhangSingle</author><pubDate>Tue, 18 Jul 2017 15:42:50 +0800</pubDate><description><![CDATA[组件免不了要与用户互动，React 的一大创新，就是将组件看成是一个状态机，一开始有一个初始状态，然后用户互动，导致状态变化，从而触发重新渲染 UI

  
    
    Hello React!
    
    
    
  
   
    
    
var LikeButton = React.createClass({
  getInitialState: function()]]></description><category></category></item><item><title><![CDATA[React学习（七）获取真实的DOM节点]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/75307009</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/75307009</guid><author>ZhangSingle</author><pubDate>Tue, 18 Jul 2017 15:39:36 +0800</pubDate><description><![CDATA[组件并不是真实的 DOM 节点，而是存在于内存之中的一种数据结构，叫做虚拟 DOM （virtual DOM）。只有当它插入文档以后，才会变成真实的 DOM 。根据 React 的设计，所有的 DOM 变动，都先在虚拟 DOM 上发生，然后再将实际发生变动的部分，反映在真实 DOM上，这种算法叫做 DOM diff ，它可以极大提高网页的性能表现。
但是，有时需要从组件获取真实 DOM 的节点，]]></description><category></category></item><item><title><![CDATA[React学习（六）PropTypes]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/75306203</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/75306203</guid><author>ZhangSingle</author><pubDate>Tue, 18 Jul 2017 15:34:16 +0800</pubDate><description><![CDATA[组件的属性可以接受任意值，字符串、对象、函数等等都可以。有时，我们需要一种机制，验证别人使用组件时，提供的参数是否符合要求。
组件类的PropTypes属性，就是用来验证组件实例的属性是否符合要求。

  
    
    Hello React!
    
    
    
  
  
    
    

      var data = 123;

      var MyTitle]]></description><category></category></item><item><title><![CDATA[React学习（五）this.props.children]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/75305710</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/75305710</guid><author>ZhangSingle</author><pubDate>Tue, 18 Jul 2017 15:30:53 +0800</pubDate><description><![CDATA[this.props 对象的属性与组件的属性一一对应，但是有一个例外，就是 this.props.children 属性。
它表示组件的所有子节点上面代码的 NoteList 组件有两个 span 子节点，它们都可以通过 this.props.children 读取。

  
    
    Hello React!
    
    
    
  

    
    
      va]]></description><category></category></item><item><title><![CDATA[React学习（四）组件]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/75305508</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/75305508</guid><author>ZhangSingle</author><pubDate>Tue, 18 Jul 2017 15:22:29 +0800</pubDate><description><![CDATA[组件

  
    
    Hello React!
    
    
    
  

    
    
      var HelloMessage = React.createClass({
        render: function() {
          return Hello {this.props.name};
        }
      });

    ]]></description><category></category></item><item><title><![CDATA[React学习（三）数组变量]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/75305434</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/75305434</guid><author>ZhangSingle</author><pubDate>Tue, 18 Jul 2017 15:19:01 +0800</pubDate><description><![CDATA[JSX 允许直接在模板插入 JavaScript 变量。如果这个变量是一个数组，则会展开这个数组的所有成员。

  
    
    Hello React!
    
    
    
  

    
    
      var arr = [
        Hello world!,
        React is awesome,
      ];
      ReactDOM]]></description><category></category></item><item><title><![CDATA[React学习（二）JSX语法]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/75305210</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/75305210</guid><author>ZhangSingle</author><pubDate>Tue, 18 Jul 2017 15:08:07 +0800</pubDate><description><![CDATA[React JSX
React 使用 JSX 来替代常规的 JavaScript。
JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。
我们不需要一定使用 JSX，但它有以下优点：
JSX 执行更快，因为它在编译为 JavaScript 代码后进行了优化。
它是类型安全的，在编译过程中就能发现错误。
使用 JSX 编写模板更加简单快速。



  
    
]]></description><category></category></item><item><title><![CDATA[React学习（一）Hello world]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/75303834</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/75303834</guid><author>ZhangSingle</author><pubDate>Tue, 18 Jul 2017 14:22:55 +0800</pubDate><description><![CDATA[一、React官网下载地址http://facebook.github.io/react/ ，我下载的版本是react-15.6.1


二、开始Hello word!
  
    
    Hello React!
    
    
    
  
  
    
    
      ReactDOM.render(
        Hello, world!,
        do]]></description><category></category></item><item><title><![CDATA[@RequestParam @RequestBody @PathVariable 等参数绑定注解详解]]></title><link>https://blog.youkuaiyun.com/ZhangSingle/article/details/74345714</link><guid>https://blog.youkuaiyun.com/ZhangSingle/article/details/74345714</guid><author>ZhangSingle</author><pubDate>Tue, 04 Jul 2017 17:32:54 +0800</pubDate><description><![CDATA[引言：

接上一篇文章，对@RequestMapping进行地址映射讲解之后，该篇主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用；



简介：

handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类：（主要讲解常用类型）

A、处理requet uri 部分（这里指ur]]></description><category></category></item></channel></rss>