自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

转载 Java 8 之 Streams API 详解

为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进

2017-05-02 10:54:28 825

原创 几种MySQL高可用方案整理

第一种:主从复制+读写分离客户端通过Master对数据库进行写操作,slave端进行读操作,并可进行备份。Master出现问题后,可以手动将应用切换到slave端。 对于数据实时性要求不是特别严格的应用,只需要通过廉价的pc server来扩展Slave的数量,将读压力分散到多台Slave的机器上面,即可通过分散单台数据库服务器的读压力来解决数据库端的读性能瓶颈,毕竟在大多数数据库应用系统中的

2017-04-24 14:28:38 28571

原创 MySQL 主从复制的几种方式

MySQL 主从复制主要有以下几种方式: 基于 SQL 语句的复制(statement-based replication, SBR); 基于行的复制(row-based replication, RBR);混合模式复制(mixed-based replication, MBR); 基于 SQL 语句的方式最古老的方式,也是目前默认的复制方式,后来的两种是 MySQL 5 以后才出现的

2017-04-24 09:48:14 8100 1

原创 java的算术右移(>>)、算术左移(<<)及逻辑右移(>>>,无符号移位)

首先说明一点,本文所有的操作都是针对存储在计算机中中二进制的操作,正数在计算机中是用二进制表示的,负数在计算机中使用补码表示的。算术左移(算术右移(>>):有符号的移位操作;该操作时将运算数的二进制码整体右移指定位数(>>符号左侧为运算数,右侧为移动位数),右移之后左侧的空位正数用0补充(可省略),负数用1补充。逻辑右移(>>>,无符号移位):无符号的移位操作;该操作时将运算数

2017-04-21 17:17:17 4892 1

转载 Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解

引言:接上一篇文章,对@RequestMapping进行地址映射讲解之后,该篇主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用;简介:handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类:(主要讲解常用类型)A、处理requet uri 部分(这里指ur

2017-04-19 10:48:27 513

原创 vmware异常关闭后导致虚拟机无法打开问题解决办法

使用vmware的虚拟机过程中,vmware软件异常关闭导致了两个正在使用的虚拟机异常关闭。再打开虚拟机后弹出提示框:“提示: 该虚拟机似乎正在使用中,请按“获取所有权(T)”按钮获取他的所有权,否则按取消”。但按“获取所有权”按钮后,虚拟机依旧打不开。百度中几乎所有的结论都是认为因为非正常关闭虚拟机,虚拟机没来得及删除系统上的.lck(磁盘锁)文件,导致了再次启动虚拟机的时候出现的报错信息,

2017-03-21 17:14:06 57428 21

原创 SpringMVC学习笔记(三) 切面详解

为了更好的理解AOP,先来了解几个AOP的术语。通知(Advice)指切面(定义为aspect的类)中的工作;spring切面可以应用的五种通知:前置通知(Before):在目标方法被调用之前调用通知功能;后置通知(After):在目标方法完成之后调用通知,此时不会关心方法的输出是什么;返回通知(After-returning):在目标方法成功执行之后调用通知;异常通知

2017-03-09 16:37:48 4218

原创 mysql 利用游标循环删除数据报错:No data - zero rows fetched, selected, or processed

第一次用mysql的游标来循环处理数据,编写的存储过程如下:DROP PROCEDURE IF EXISTS delete_Menu; DELIMITER $$ CREATE PROCEDURE delete_Menu( IN menuCode VARCHAR(200))BEGIN DECLARE userCode VARCHAR(20); DECLARE cur_user C

2017-02-22 14:46:50 16555 1

原创 SpringMVC学习笔记(二) 处理器拦截器详解

Spring Web MVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。拦截器应用场景:1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。 2、权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面; 3、性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前

2017-02-14 10:56:00 603

转载 Spring中ClassPathXmlApplicationContext类的简单使用

一、简单的用ApplicationContext做测试的话,获得Spring中定义的Bean实例(对象).可以用:ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");RegisterDAO registerDAO = (RegisterDAO)ac.getBean("R

2017-02-08 09:23:18 43548 2

原创 SpringMVC学习笔记(一) DispatcherServlet初始化详解(应用上下文的初始化)

Spring DispatcherServlet初始化详解(应用上下文的初始化)Spring的初始化主线如下: DispatcherServlet的继承体系结构图如下: 这个继承体系结构中HttpServletBean和FrameworkServlet是 对spring的支持。 HttpServletBean 是 Spring 对于 Servlet 最低层次的抽象。在这一层抽象中,Sprin

2017-02-06 09:43:16 1847

原创 java动态代理之jdk的动态代理

Spring AOP的拦截功能是由java中的动态代理来实现的。java动态代理主要分为两种:一种是jdk的动态代理,一种是CGLIB动态代理。两种动态代理的区别 jdk动态代理是由Java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的。 jdk动态代理是通过java的反射机制生成了一个继承proxy类的代理类,因为java中不允许多继承,所以被代理的只能是接口,jd

2017-01-22 09:05:02 384

原创 Mysql创建用户表并利用存储过程添加100万条随机用户数据

1.创建用户表CREATE TABLE user100w( id INT NOT NULL AUTO_INCREMENT, first_name VARCHAR(10) NOT NULL, last_name VARCHAR(10) NOT NULL, sex VARCHAR(5) NOT NULL, score INT NOT NULL, copy_id INT NOT N

2017-01-17 18:58:49 12772 6

原创 Jquery Validate校验后无错误提示但表单无法提交(无反应)

今天写页面遇到一个问题,页面上有一个下拉选择框,添加了必填的校验之后,填好数据提交表单,并无异常显示,却不会提交表单数据到后台,怎么点保存都没反应。最后发现是页面上隐藏了一个同样的下拉框,是因为这个下拉框没有数据校验不通过才导致无法提交表单数据的,这个下拉框又是包含在隐藏模块里的,所以就出现了没有什么异常提示却无所发提交表单的情况。找到问题之后,就是解决问题咯。看了jQuery Validate的A

2017-01-06 15:53:18 7595 2

原创 Mybatis中#和$的区别

Mybatis中$和#的区别

2017-01-05 17:06:03 6586 1

原创 mycat环境搭建

最近在了解mycat,自己搭建了一遍,现整理出来仅供大家参考~~~服务器环境:操作系统:Ubuntu 64位CPU:Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz内存:2G1.将事先准备好的mycat压缩包Mycat-server-1.4-release-20151019230038-linux.tar.gz上传至服务器。2.

2016-12-13 11:05:54 1713

原创 mysql数据库参数性能配置参考

1. 查看mysql读取配置文件的顺序/usr/sbin/mysqld --verbose --help |grep -A 1 'Default options'2. -- 注意下面数字如果是M为单位的,需要是1*1024*1024SHOW VARIABLESWHEREvariable_name IN ('innodb_buffer_pool_size',     --

2016-12-07 11:24:21 633

转载 理解 Linux/Unix 登录脚本

不知道你有没有遇到过这样的场景,当你需要设置一个环境变量,或者运行一个程序设置你的shell或桌面环境,但是不知道在哪里是最方便设置的位置。有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。有时,程序通常只需要在首次登陆时运行一次,例如xrandr命令。此外,有的程序偶尔会被注入到shell中,例如rbenv,rvn或

2016-12-07 11:14:23 917

转载 Linux下文件的压缩与解压缩

Linux下文件的压缩与解压缩与Windows环境下有较大的区别,在Windows下只需要安装类似Winrar工具就能解压缩大部分文件,而在Linux命令行下每一种文件都有不同的压缩和解压缩方法。使用tar打包文件Linux下最常用的打包程序就是tar(注意tar是打包,不是压缩!),使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.

2016-12-07 08:56:49 946

原创 IntelliJ IDEA中的maven模块不见了

之前调试的好好的maven项目,今天打开发现右侧的maven project 模块不见了,而且run/debug configurations里的配置也变得不可用。查看半天发现:在 IDEA的File - Settings - Plugins 中Maven Integration选项变成没有勾选了勾选此项,重新打开IDEA,会发现发现右侧的maven project

2016-11-29 11:39:29 27008 7

原创 《深入理解java虚拟机》之学习笔记(三)——java 判断对象是否可回收

java垃圾回收器在回收时首先要判断对象是否还存活,是否可回收。那么,如何判断一个对象是否可回收呢?本文就这一问题做一个简单的整理。很容易想到的一个简单的实现方式是给对象添加一个引用计数器,每当有一个地方引用就加1,引用失效则减1;任何时刻计数器为零的对象就是不会再被使用的,内存自动回收时就可以对它进行回收了。在大部分情况下,这确实是一种实现简单且判断效率高的不错的算法,但是这并不是主流的ja

2016-11-25 14:07:16 437

原创 《深入理解java虚拟机》之学习笔记(一)——运行时数据区域

java虚拟机在执行java程序的过程中会把它管理的内存划分成多个不同的数据区域。这些数据区域主要分为两大类。一类是随着虚拟机的启动而存在,另一类是随着用户进程的启动和结束而建立和销毁。java虚拟机管理的内存主要包括如下几个运行时数据区域:

2016-11-21 15:17:53 328

转载 mysql中间件研究( Atlas,cobar,TDDL,mycat,heisenberg,Oceanus,vitess,OneProxy )

mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧。AtlasAtlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项

2016-11-19 14:07:26 1239

原创 mybatis报错:A query was run and no Result Maps were found for the Mapped Statement

今天编辑mybatis的xml文件,出现如下错误:程序出现异常[A query was run and no Result Maps were found for the Mapped Statement  '***'.  It's likely that neither a Result Type nor a Result Map was specified.at org.mybatis

2016-11-08 20:40:02 104400 9

转载 log4j配置详解(非常详细)

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下: #配置根Loggerlog4j.rootLogger  =   [ level ]   ,  appenderName1 ,

2016-09-14 16:18:15 2576

原创 mysql中日期类型DATETIME和TIMESTAMP的区别

在实际应用的很多场景中,mysql的这两种日期类型都能够满足我们的需要,存储精度都为秒,但在某些情况下,会展现出他们各自的优劣。下面就来总结一下两种日期类型的区别。1.DATETIME的日期范围是1001——9999年,TIMESTAMP的时间范围是1970——2038年。2.DATETIME存储时间与时区无关,TIMESTAMP存储时间与时区有关,显示的值也依赖于时区。在mysql服务器

2016-08-23 21:43:43 16887 3

转载 Spring aop 注解方式怎么获得执行了目标的某个方法?

private void beforeTransationHandle(JoinPoint point) throws Exception{//拦截的实体类Object target = point.getTarget();//拦截的方法名称String methodName = point.getSignature().getName();//拦截的方法参数Object[

2016-07-19 16:38:15 2652

原创 MySQL Error 1093(HY000) Update不支持子查询的问题

sql:   update product set price = (select max(price+1) p from product) where id=1;报错:[Err] 1093 - You can't specify target table 'product' for update in FROM clause解释:MySQL中不允许先select出同一

2016-07-19 14:38:51 3941

转载 mysql prepare语句使用

语法 [sql] view plain copyPREPARE statement_name FROM sql_text /*定义*/   EXECUTE statement_name [USING variable [,variable...]] /*执行预处理语句*/   DEALLOCATE PREPARE statement_name

2016-07-04 17:01:32 932

原创 mysql的几种函数整理

1.concat()函数使用语法:CONCAT(str1,str2,…)  返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。e.gselect  concat(id,name) from user where id=1;查询结果:1user1注:如果name为null,则查询结果为null;2.group_concat()函数

2016-07-04 16:00:47 387

转载 Thymeleaf 详解

(一)Thymeleaf 是个什么?     简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点:    1.Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由

2016-06-27 14:34:53 17823 1

原创 mysql 拼接字段显示

有时候我们在显示数据的时候,需要把数据表中的两个(多个)列拼接在一起显示,通常情况下优良中国实现方式。一种是查询的时候把需要的列数据都查询出来,在应用程序中再处理成想要的格式;另一种方式就是利用MySQL的拼接字段函数concat()直接从数据库查询结果获得需要格式的数据。例如:每条用户信息都包含姓名和家庭住址,我们现在需要查出name(address)格式的数据,则需如下查询语句:selec

2016-06-27 10:29:41 1253

原创 mysql中正则表达式的使用

1.基本字符的匹配   select  name from user where name REGEXP 'li';解释:查询user表中name字段内容中包含“li”的所有行;如果需要区分大小写,则添加BINARY字段,如下select  name from user where name REGEXP BINARY  'li';2.OR匹配(多个条件之间存在 与关系)

2016-06-27 09:58:57 334

转载 Redis与Memcached的区别

传统MySQL+ Memcached架构遇到的问题  实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题:  1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。  2.M

2016-06-23 11:31:02 190

转载 ConcurrentHashMap整理

集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅

2016-06-14 13:12:23 250

原创 java集合整理

1.HashMapHashMap 实现了基于哈希表的 Map 接口。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。同时还继承了AbstractMap,实现了Cloneable,Serializable 接口。HashMap是非线程安全的,底层使用的数据结构是数组和链表。当链表长度>=TREEIFY_THRESHOLD -1时,链表会自动变成一棵红黑树。

2016-06-09 11:59:39 274

转载 SQLSERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER

SQL SERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER前言本文意于用实例数据帮助理解SQL SERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER。准备工作创建测试表: ?12345createtable

2016-06-07 21:53:06 429

原创 js中通过javascriptbBridge调用客户端方法

function connectWebViewJavascriptBridge(callback) {if (window.WebViewJavascriptBridge) {callback(WebViewJavascriptBridge)} else {document.addEventListener('WebViewJavascriptBridgeReady', funct

2016-05-23 19:21:13 1543

转载 Linux下定时执行脚本

今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置。Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍就能记住了,关键是要记住/var/spool/cron这个目录。下面看一下具体的用法:     首先查看一下/etc/crontab文件:

2016-05-23 16:11:30 543

原创 java 利用Runtime.getRuntime().exec()代码调用服务器执行命令

Process exec= Runtime.getRuntime().exec(command,null,new File("/"));String result =StringUtils.trim(InputStreamUtils.getContentsAsString(exec.getInputStream(),"utf8"));//接收执行结果

2016-05-23 16:09:08 3117 8

空空如也

空空如也

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

TA关注的人

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