- 博客(53)
- 资源 (2)
- 收藏
- 关注
转载 MySQL错误——java.sql.SQLException: Incorrect decimal value: \'\' for column \'sys_offset_seq\' a
错误名称:java.sql.SQLException: Incorrect decimal value: \'\' for column \'sys_offset_seq\' a这种应该是版本问题,尤其是虚拟主机。把''改成null不会出错:insert into log values(null,'admin')insert into log values(' ','admin')
2017-03-04 11:44:12
8442
原创 MySQL错误——无法读表(MySQL 1018 error)
一、错误重现可以进入MySQL数据库,但是无法读取数据库表,报错如下:访问数据库,莫名其妙的报1018错误:ERROR 1018 (HY000): Can't read dir of './cnapscips/' (errno: 13)。二、解决方案查看MySQL的数据目录,一般无法读取表都是复制过来的数据库,即使root用户也无法读取表,需要修改目录权限。
2017-01-20 10:21:07
2354
原创 tomcat基础知识——jsp访问错误(一)
一、错误重现开发中,有时候我们会遇到tomcat部署项目时,访问某个页面出现如下错误。Attribute value view.getItems("SendAcctList") is quoted with " which must be escaped when used which must be esca或者是Attribute value request.getParamet
2017-01-17 10:38:51
2025
原创 XML基础知识——使用schema校验XML文件合法性(四)
一、源代码如下(1)、第一种方式 /** * 使用Schema验证XML的合法性 * * @param xmlDocument 要验证的XML文件 * @param xsdFilename Schema文件名 * @return 如果验证通过,则返回true,否则返回false。 */ @SuppressWarnings("unchecked") public
2017-01-12 15:58:36
3697
原创 XML基础知识——写入数据到XML文件(二)
一、写入数据到XML文件中往XML文件中写入数据,特别要注意编码问题,这里写入数据采用了两种不同的编码。一般情况下如果xml文件时gb2312,就采用第一种方式,如果为UTF-8,就使用第二种方式写入,否则可以会产生中文乱码问题。(1)、以UTF-8编码写入数据到XML文件,源代码如下: /** * UTF-8格式:使用XML的Document对象写数据到XML文件 * @p
2017-01-12 15:27:57
5060
原创 XML基础知识——XML文件对象增删改查(三)
一、新增对象在XML文件中,以对象的方式存储数据。如下例子中,用户user中有三个属性username,password,nickname。我们需要把user对象存进去。源代码如下所示:package org.wangkeqing.test;import java.util.List;import org.dom4j.Document;import org.dom4j.Elem
2017-01-12 15:10:33
531
原创 Java编程基础——获取类路径时的空格问题
一、Java项目获取类路径问题。在Java项目中,如果需要获取类路径,可以使用如下方法:String path = this.class.getClass.getResource("/");但是在程序执行的时候,你会发现,只有路径中包含有空格,都会被“%20”给替换掉,直接报错程序找不到系统路径。此时,需要把“%20”替换为空格就可以了。如下所示:path = path.rep
2017-01-12 10:32:32
477
原创 XML基础知识——获取Document对象(一)
一、获取Document方法。(1)、使用到的jar包:dom4j-1.6.1.jar log4j-1.2.17.jar(2)、通过XML文件内容获取Document对象。 /** * 根据XML文件内容,获取XML文档的Document对象 * @param xmlName 已经存在的XML文件名 * @return 返回Document对象 */ pu
2017-01-11 17:52:07
4259
转载 Linux基础知识——增删改查用户
Linux添加/删除用户和用户组本文总结了Linux添加或者删除用户和用户组时常用的一些命令和参数。1、建用户:adduser phpq //新建phpq用户passwd phpq //给phpq用户设置密码2、建工作组groupadd test
2017-01-10 17:46:36
2195
原创 Java设计模式——动态代理dynamicProxy
一、动态代理设计图二、动态代理概述动态代理是JDK5 提供的一种新特性。其特点在于在程序的运行时刻动态的创建出代理类及其对象,而不像我们使用静态代理时必须在编译之前定义好代理类。在运行时刻,框架帮我们动态的创建出一个实现了多个接口的代理类,每个代理类的对象都会和一个InvocationHandler接口的实现类相关联。当我们调用了代理对象所代理的接口中的方法的时候,这个调用的信息会
2017-01-10 15:31:23
403
原创 Java编程基础——Annotation注解(三)
一、自定义注解默认值限制编译器对元素的默认值比较挑剔,首先,元素的值必须确定,也就是元素必须有值,要么是默认值,要么是添加注解时提供的值。其次,对于非基本类型的元素,无论是在源代码中声明还是在注解接口中定义默认值时,都不能以null作为其值。这个约束使得处理器很难表现一个元素的存在或缺失状态,因为在每个注解的声明中,所有元素都存在,并且都具有相应的值。为了绕开这个约束,我们只能定义一些比较
2017-01-10 14:15:25
357
原创 Java编程基础——编写注解处理器(二)
一、编程注解处理器。在JavaSE5中扩展了反射机制的API,这样可以有效读取定义的注解。例子如下:读取PasswordUtils类中方法的注解。package org.wangkeqing.annotation;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Collectio
2017-01-10 11:22:06
477
原创 Java编程基础——注解Annotation(一)
一、深入理解注解Annotation要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。二、Java SE5内置的三种注解@override:表示当前定义的方法将覆盖超类中的方法,如果方法名写错,编译器就会报错。@Deprecated :如果程序员使用了该注解,那么编译器会发出警告
2017-01-10 10:29:08
416
转载 Java反射机制
Java反射机制详解文章转至:http://www.cnblogs.com/lzq198754/p/5780331.htmljava 反射 定义 功能 示例概要:Java反射机制详解| |目录1反射机制是什么2反射机制能做什么3反射机制的相关API·通过一个对象获得完整的包名和类名·实例化Class类对象·获取一个对象的父类与实现的接口·获取某个
2017-01-09 16:17:50
433
原创 Java反射机制——Class类的介绍(二)
一、Class类简单介绍Class类的实例表示Java应用运行时的类(class ans enum)或接口(interface and annotation)。(每个java类运行时都在JVM里表现为一个class对象,可通过类名.class,类型.getClass(),Class.forName("类名")等方法获取class对象)。数组同样也被映射为为class 对象的一个类,所有
2017-01-09 14:35:12
449
原创 Java反射机制——反射的介绍(一)
一、反射背景对于Java程序,要使程序能够运行,那么就得让Java类要被Java虚拟机加载。Java类如果不被Java虚拟机加载,是不能正常运行的。现在我们运行的所有的程序都是在编译期的时候就已经知道了你所需要的那个类的已经被加载了。Java的反射机制是在编译并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审。使用在编译期并不知道的类。这样的特点就是反射。
2017-01-09 11:54:52
426
原创 Java基础知识——equals方法和HashCode方法介绍
一、equals方法。1、当一个对象没覆盖equals方式时,默认情况下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一个地址(是不是同一个对象)。源码如下;2、要是类中覆盖了equals方法,必须根据具体的代码来确定equals方法的作用了,覆盖后一般都是通过对象的内容是否相等来判断对象是否相等。二
2017-01-06 11:15:32
437
原创 Java基础知识——hashCode的作用
一、对象的hashCode作用。hashcode方法生成该对象的哈希码值。支持该方法是为在哈希表快速查找对象提供方案,例如,java.util.Hashtable 提供的哈希表。 hashCode 的常规协定是: 在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上 equals 比较中所用的信息没有被修改。从某一应用程
2017-01-06 10:11:11
424
原创 MySQL——常用SQL优化(五)
一、分页优化查询。一般分页查询时,通过创建覆盖索引能够比较好地提高性能。一个常见又非常头疼的问题:“limit 10000,10”,此时MySQL排序出10020条记录后仅仅返回第10001到10020条记录,前10000条记录都会被抛弃,查询和排序的代价非常高。1、第一种优化思路。在索引上完成排序分页操作,最后根据主键关联回原表查询所需要的其他列内容。例如:对电影表film根据标题t
2017-01-05 16:58:24
434
原创 MySQL——常用SQL优化(四)
一、MySQL如何优化OR条件。对于OR的查询子句,如果要使用索引,则OR之间的每个条件列都必须使用索引;如果没有使用索引,则应该考虑增加索引。然后在两个独立索引上做OR操作。从上图中,查询使用到了索引,并且从执行计划中,发现MySQL在处理含有OR字段的查询时,实际上是对OR的各个字段分别查询后的结果进行了UNION操作。但是,当在建有复合索引的列company_
2017-01-05 16:25:32
314
原创 MySQL——常用SQL优化(三)
一、优化group by语句。MySQL在默认情况,会对group by col1,col2,... 的这些字段进行排序,这与在查询中使用order by col1,col2,...排序类似。因此,如果显示包括一个包含相同列的order by 子句,则对MySQL时间性能没有什么影响。如果在查询时使用group by ,但是有避免排序带来的消耗,则可以指定order by null禁止排
2017-01-05 15:43:35
347
原创 MySQL——常用SQL优化(二)
一、优化insert语句。当进行数据插入,insert语句的优化,可以考虑以下方式。(1)、如果同时从同一客户插入很多行数据,应尽量使用多个值表的insert语句,这种方式将大大缩减客户端和数据库服务器之间的连接,关闭等消耗。使得效率比使用单个insert语句要快好几倍,下面是例子。insert into table values(1,1'),(2,'2'),(3,'3'),....
2017-01-05 15:21:41
374
原创 MySQL——常用SQL优化(一)
一、大批量数据的插入。当使用load命令导入数据时,适当的设置可以有效提高速度。(一)、对于MyISAM存储引擎的表,可以通过一下方式快速地批量导入数据。DISABLES KEYS和ENABLE KEYS用来打开或者关闭MyISAM表非唯一索引的更新。在导入大量数据到一个非空的MyISAM表时,通过设置这两个命令,可以提高导入速率。对于导入速率到一个空的MyISAM表,默认表示先导
2017-01-05 14:17:52
394
原创 MySQL——load语句导入数据
一、使用load语句导入数据。最近在看有关SQL常用优化的方案,涉及到使用load语句导入大量数据到数据库,按照官方的说法:使用load语句要比使用insert语句将近快20倍的速度,平时开发中很少涉及导入大量数据,所以,平时都是使用insert语句导入。这里对load命令进行简单的总结。进入MySQL后,使用命令:load data local infile 'S:/tab_user.t
2017-01-05 11:48:16
14046
原创 MySQL——配置文件(my.ini)
1、配置文件说明信息。# CLIENT SECTION# ----------------------------------------------------------------------[client]#password =1234 # pipe# socket=mysql# 设置mysql客户端连接服务端时默认使用的端口port=3306d
2017-01-05 09:57:21
38963
2
原创 MySQL——InnoDB锁问题(六)
一、在InnoDB情况下什么时候使用表锁。对于InnoDB表,大多数情况都应该使用行锁,因为事务和行锁往往是我们选择InnoDB表的重要原因。但在特殊的情况下,也可以使用表级锁。(1)、事务需要更新大部分数据或者全部数据,表又比较大,如果使用默认的行级锁,不仅使得事务执行比较慢效率低,而且可能造成其他事务长时间锁等待和锁冲突,这样的情况可以考虑使用表级锁来提高执行效率。(2)、事务涉及
2017-01-04 17:51:54
1478
原创 MySQL——InnoDB锁问题(五)
一、Next-key锁。当我们使用范围条件而不是相等条件去检索数据,并请求共享锁和排他锁时,InnoDB会给符合条件的已有的数据添加上锁;对于键值在条件范围内,但不存在的记录,叫间隙。InnoDB此时会给这个部分添加上锁,这种锁机制就是Next-key锁。假如:员工表emp中只有101条数据,其empid为1,2,3,.... ,101,下面SQLSELECT * FROM emp W
2017-01-04 16:34:44
358
原创 MySQL——InnoDB锁问题(四)
一、InnoDB行锁实现方式。 InnoDB行锁是通过给索引上的索引项来加锁实现的,如果没有索引,InnoDB将通过隐藏的聚簇索引来对记录加锁。InnoDB行锁分三种情形。(1)Record lock :对索引项加锁。(2)Grap lock:对索引项之间的”间隙”、第一条记录前的“间隙”,或者最后一条记录后的“间隙”加锁。(3)Next-key lock:前两种的组合,对
2017-01-04 16:06:11
1100
原创 MySQL——InnoDB锁问题(三)
一、InnoDB行锁模式和加锁方法。InnoDB表实现了以下两种形式的行锁。(1)共享锁(S):允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。(2)排他锁(X):允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享读锁和排他写锁。另外,为了允许行锁和表锁的共存,实现多粒度锁机制,InnoDB还有两种内部使用的意向锁,这两种意向锁都是表锁。(a)、意向共享锁
2017-01-04 14:48:07
664
原创 MySQL——InnoDB锁问题(二)
可以通过show status like 'innodb_row_lock%';查看系统上的行锁争用情况;
2017-01-04 12:27:45
550
原创 MySQL——InnoDB锁问题(一)
InnoDB和MyISAM最大的不同有两点,(1)、支持事务处理;(2)、采用行级锁;行级锁与表级锁本省有很大的不同,同时,引入事务处理后,也带来了新的问题。下面详细讲解InnoDB行级锁。(一)、背景知识;(1)、事务及其特性。事务是由一组SQL语句组成的逻辑单元,事务具有以下四个特性。a、原子性:事务是一个原子操作单元,要么都执行成功,要么都执行失败。b、一致性:在事务
2017-01-04 11:40:39
977
原创 MySQL——MyISAM表级锁
锁是计算机协调多个进程或者多个线程并发访问某一个资源的机制。相对其他数据库而言,MySQL数据库的锁比较简单,最显著的特点是不同的引擎持有不同的锁机制。MyISAM和MEMORY存储引擎支持表级锁,DBD引擎支持采用页面锁,但也支持表级锁,InnoDB既支持行级锁也支持表级锁,默认为行级锁。MySQL三种锁的特性如下:(1)、表级锁:开销小,加锁快;不会出现死锁;锁定粒度比较大,发生所冲突
2017-01-03 16:28:58
695
转载 一步一步写平衡二叉树(AVL树)
转载:http://www.cppblog.com/cxiaojia/archive/2012/08/20/187776.html平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵树,所以它又叫AVL树。平衡二叉树要求对于每一
2017-01-03 14:28:14
309
原创 MySQL间隙锁问题
间隙锁(Gap Lock):锁加在不存在的空闲空间,可以是两个索引记录之间,也可能是第一个索引记录之前或最后一个索引之后的空间。最近用户反馈说系统老是出现insert时,等待超时了,最后发现是insert间隙锁!间隙锁是innodb中行锁的一种, 但是这种锁锁住的却不止一行数据,他锁住的是多行,是一个数据范围。间隙锁的主要作用是为了防止出现幻读,但是它会把锁定范围扩大,有时候也会给我们带来麻烦
2017-01-03 11:04:38
8585
1
原创 数据表多字段时数据插入的总结
在开发中我们需要经常使用SQL语句执行数据插入,最常出现的情况是数据表字段不多的时候,那个时候写写sql语句似乎很简单,但是有一天你会发现,你有个数据表,数据表字段有几百个,如果必须使用insert into TB_Table ('字段一','字段二','字段三',....) values(?,?,?,.....);来完成数据的插入,那么这样的sql语句难道不大,但是特别繁琐,那么有什么办法可以解
2016-11-23 19:40:46
1419
1
原创 MQ之间互相发送消息(三)
在MQ直接互相发送消息之间必须确保双方的MQ都正常工作。使用命令:dis chs(*) 就可以查看所有的通道状态,状态必须为Running才可以互相发送消息。注意:这里的发送消息操作以上一篇文章创建的队列管理器为例。如果没有对MQ不是很清楚的可以先看上一篇文章。一、实现在同一个队列管理器直接进行通信。1、进入安装mq的目录中,进入samp目录下的bin目录中执行:amqspu
2016-10-12 10:16:36
4836
原创 MQ实现两个应用系统之间的通信-----实际操作(二)
使用IBM WebSphere MQ实现两个应用系统之间通信。两个应用系统都必须安装MQ服务器,只有双方都安装了MQ同时也创建队列管理器,而且双方都启动MQ的队列管理器才可以实现通。这里以A B 作为通信双方。A方创建队列管理器和相应的队列用于通信#创建队列管理器env MQSPREFIX=/var/mqm/ crtmqm -ld /var/mqm/qmgrs/log -lc -
2016-10-12 09:49:32
10823
原创 MQ实现两个应用系统之间的通信----理论知识(一)
一.MQ基本操作MQ中有几个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。其基本的操作方法如下:创建队列管理器crtmqm –q QMgrName-q是指创建缺省的队列管理器删除队列管理器dltmqm QmgrName启动队列管理器strmqm QmgrName如果是启动默认的队列管理器,可以不带其名字
2016-10-12 09:11:56
2899
原创 已经把用户加入MQ的执行用户组了,为什么该用户还是没有权限执行MQ
在我们开发的应用系统需要和其他系统进行通信的时候,如果使用MQ来通信,我们当前的用户必须有执行MQ的权限,否则会出现MQ的2035错误(无法连接队列管理器),也就是用户没有权限执行MQ。此时可以使用命令:usermod -G mqm fxcctst 把fxcctst用户加入执行mq的用户组中。注意:这里的mqm为执行mq权限的用户所在组,fxcctst为需要加入mq用户组的用户名。(必
2016-10-12 08:56:59
8139
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人