vickzhu

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  151 随笔 :: 0 文章 :: 34 评论 :: 0 Trackbacks

2010年8月19日 #

##通用查询日志:记录建立的客户端连接和执行的语句
##慢查询日志:记录所有执行时间超过long_query_time值的所有查询或者不使用索引的查询
##查看数据库版本
SHOW VARIABLES LIKE '%version%';
##查看通用查询日志
SHOW VARIABLES LIKE '%general%';
##设置通用查询日志为开启
SET GLOBAL general_log=ON;
##设置通用查询日志为关闭
SET GLOBAL general_log=OFF;
##查看当前慢查询日志输出的格式,可以是FILE(存储在数数据库的数据文件中的hostname.log),也可以是TABLE(存储在数据库中的mysql.general_log)
SHOW VARIABLES LIKE '%log_output%';
##设置查询日志输出到文件
SET GLOBAL log_output='file';
##设置慢查询日志保存的文件
SET GLOBAL slow_query_log_file="/var/lib/mysql/localhost-slow.log";
##查看慢查询相关设置
SHOW VARIABLES LIKE '%slow_query%';
##设置慢查询阈值为1,默认为10
SET GLOBAL long_query_time=1;
##设置慢查询阈值为10,默认为10
SET GLOBAL long_query_time=10;
##查看慢查询的阈值
SHOW GLOBAL VARIABLES LIKE '%long_query_time%';
##查看有多少慢查询
SHOW GLOBAL STATUS LIKE '%Slow_queries%';
##睡眠11秒,测试慢查询
##select SLEEP(11);
posted @ 2018-10-09 16:59 筱 筱 阅读(168) | 评论 (0)编辑 收藏

velocity properties加载时是放在HashMap中的,首先会加载configLocation中指定文件的内容,然后加载VelocityConfigurer中通过velocityProperties配置的属性,
因此,在VelocityConfigurer中配置的属性会覆盖configLocation指定文件中的属性
posted @ 2014-08-22 11:03 筱 筱 阅读(5876) | 评论 (0)编辑 收藏

1、达到默认最大buffer size
2、调用HttpServletResponse.flushBuffer()
3、调用HttpServletResponse.getOutputStream().flush()或者HttpServletResponse.getWriter().flush()
4、调用HttpServletResponse.sendError()或者HttpServletResponse.sendRedirect()
posted @ 2014-07-23 13:11 筱 筱 阅读(5870) | 评论 (0)编辑 收藏

<plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
          <encoding>UTF-8</encoding>
          <compilerArguments>
            <extdirs>WebContent/WEB-INF/lib</extdirs>
          </compilerArguments>
          </configuration>
        </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <webXml>WebContent/WEB-INF/web.xml</webXml>
          <warSourceDirectory>WebContent</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
posted @ 2013-11-01 17:03 筱 筱 阅读(6424) | 评论 (1)编辑 收藏

在onPrepareDialog()中添加如下代码:
AlertDialog syncDialog = (AlertDialog) dialog;
Button button = syncDialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setText("确定");
button.setVisibility(View.VISIBLE);
button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {

    }
});
posted @ 2013-03-01 12:51 筱 筱 阅读(7011) | 评论 (0)编辑 收藏

uml
  1. 类图之间的关系
  2. 依赖和关联关系:
    依赖:是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。 
    关联:类与类之间的联接,它使一个类知道另一个类的属性和方法, 具体表现为类的成员变量中包含某个对象 

    组合和聚合:
    在有整体和部分关系是才有组合和聚合的概念,属于关联关系
    组合:部分离开整体不能存在
    聚合:部分可以离开整体而存在

  3. 用例图之间的关系:
  4. 包含、泛化、扩展
    包含:当两个或多个用例中共用一组相同的动作,这时可以将这组相同的动作抽出来作为一个独立的子用例,供多个基用例所共享。因为子用例被抽出,基用例并非一个完整的用例,所以include关系中的基用例必须和子用例一起使用才够完整,子用例也必然被执行 
    泛化:继承关系,子用例将继承基用例的所有行为 ,也就是说在任何使用基用例的地方都可以用子用例来代替。领导拥有审批的权限,而请假申请审批、加班申请审批都是审批的子类
    扩展:对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。 

posted @ 2012-06-29 11:42 筱 筱 阅读(5747) | 评论 (0)编辑 收藏

学习osworkflow
http://my.so-net.net.tw/idealist/OSWorkflow/
 

wfentry表中的state字段来自于接口WorkflowEntry,有如下几个值:
    public static final int CREATED = 0;
    public static final int ACTIVATED = 1;
    public static final int SUSPENDED = 2;
    public static final int KILLED = 3;
    public static final int COMPLETED = 4;
    public static final int UNKNOWN = -1;


Workflow接口相当于我们service层的接口,而WorkflowStore接口相当于我们DAO层的接口,
我们知道osworkflow提供的Workflow实现(如:BasicWorkflow)有时并不能满足业务的需要,因此我们可以实现自己的Workflow,具体可以参照BasicWorkflow 
继承AbstractWorkflow,接着加入自己想要的方法。同理,我们可以通过继承相应的WorkflowStore(如:HibernateWorkflowStore)来编写自己的方法
posted @ 2012-06-26 14:49 筱 筱 阅读(5712) | 评论 (0)编辑 收藏

1、日期格式化:
    DateFormat
    SimplateDateFormat

2、数字格式化
    NumberFormat
    DecimalFormat

3、字符串格式化:
    MessageFormat 以{0},{1}作为占位符,如果你的pattern中有两个以上的{0},在format时都会用第一个参数替换
    String.format 以%s作为占位符,按传入的参数一一匹配
    
posted @ 2011-09-01 17:39 筱 筱 阅读(3126) | 评论 (0)编辑 收藏

文字:openfire
语音/视频:FMS,red5
posted @ 2011-08-29 13:58 筱 筱 阅读(2736) | 评论 (1)编辑 收藏

在使用svn add 时提示:
A  (bin)  templates/translate/screen/selectTransLang.vm
请看官方文档的解释:

当你第一次添加或者导入文件到Subversion中时,Subversion会检测该文件是否是二进制文件。目前,Subversion的策略是只检测文件的前1024个字节;如果所有字节都是0,或者超过15%都是非ASCII码输出字符的话,那么Subversion就认定该文件是二进制文件。
如果Subversion认定文件是二进制文件,那么这个文件就会自动添加svn:mime-type属性,并设置为“application/octet-stream”。(你随时可以使用auto-props特性来重写这样的行为,或者使用svn propset手动设置属性。)
Subversion对以下的文件做普通文本处理:
1、没有设置svn:mime-type属性的文件
2、文件的svn:mime-type属性值以“text/”开头
3、文件的svn:mime-type属性值等于“image/x-xbitmap”
4、文件的svn:mime-type属性值等于“image/x-xpixmap”

所有其他文件都将被视为二进制文件处理,这意味着Subversion:
1、不会尝试在svn update或者svn merge操作时将远程修改合并到本地中
2、在svn diff中不会显示出不同
3、在svn blame不会每行显示版本和作者信息

在其他方面,Subversion将二进制文件和其他文本文件一样对待
需要注意,不管是不是二进制文件,都不会影响版本库中用来存储文件变更的空间大小,也不会影响客户端和服务端之间的通讯量。出于存储和传输考虑,Subversion使用的是对二进制文件和普通文本文件一致处理的diffing方法;这和‘svn diff’使用的diffing方法完全不相关。

好了,我们来看看刚才加的文件是否为二进制:
进入.svn/props 发现生成文件:selectTransLang.vm.svn-work
内容如下:
K 13
svn:mime-type
V 24
application/octet-stream
END
或者用如下方法
svn propget svn:mime-type selectTransLang.vm
输出:application/octet-stream

解决方法,直接编辑去掉这个属性
svn propedit svn:mime-type selectTransLang.vm
或者删除.svn/props/selectTransLang.vm.svn-work

看看网上其他牛人的解决方法:
修改~/.subversion/config
找到最后一个section,在最后加上如下一行话:
*.txt = svn:mime-type=text/plain;svn:eol-style=native
光这个还不够,向上搜索到这么一行
# enable-auto-props = yes
把前面用来注释这行的那个#和其后的空格去掉

如果用的是TortoiseSVN,开始菜单 -> TortoiseSVN -> Settings -> General,此时右侧有一个名为Edit的按钮,点击之后就可以编辑config了

posted @ 2011-08-04 21:51 筱 筱 阅读(4011) | 评论 (0)编辑 收藏

gson:java对象和json之间相互转换
xsteam:java对象和xml之间相互转换
posted @ 2011-07-15 16:55 筱 筱 阅读(2318) | 评论 (0)编辑 收藏

在页面中显示某字段时,字段值过长会导致页面样式错乱,这时候我们需要对值进行截取,当截取值时会碰到以下问题:
1、如果按字符截取会导致中英文显示的长度不一
2、如果按字节截取可能会导致最后一个中文截成两部分
以下代码是在网上获取并经过改造而成,能够很好的解决上面两个问题
    /**
     * 根据指定字节数截取字符串,当指定处为中文第一个字节时少截取一个字符,当长度大于指定截取长度时,截取后在字符串末尾追加指定字符串<br/>
     * 这里添加了字符串的编码,因为页面的编码不同,字符串所占字节也不同
     *
     * @param str 待截取字符串,如果为null或者"",则立即返回str
     * @param length 需要截取的长度
     * @param endStr 截取后末尾追加的字符串
     * @param charset 待截取字符串的编码
     * @return
     */
    public String subStringByByte(String str, int length, String endStr, String charset) {
        if (str == null || "".equals(str.trim()) || length <= 0) {
            return str;
        }
        try {
            int strlen = str.getBytes(charset).length;// 这里要和页面的编码相关
            if (strlen < length) return str;
            Pattern p = Pattern.compile("^[""u4e00-""u9fa5]$");
            int i = 0, j = 0;
            int sublength = length - ((endStr == null) ? 0 : endStr.getBytes(charset).length);
            for (char c : str.toCharArray()) {
                Matcher m = p.matcher(String.valueOf(c));
                i += m.find() ? 2 : 1;
                ++j;
                if (i == sublength) break;
                if (i > sublength) {
                    --j;
                    break;
                }
            }
            return str.substring(0, j) + endStr;
        } catch (UnsupportedEncodingException e) {
            return str;
        }
    }
posted @ 2010-12-14 10:49 筱 筱 阅读(341) | 评论 (0)编辑 收藏

英文不太好,经常忘记,所以现在写下来:
1,transient:在序列化一个类时,如果类中某个字段不想被序列化,则使用此关键字
2、volatile:用于线程同步时

posted @ 2010-12-13 20:49 筱 筱 阅读(230) | 评论 (0)编辑 收藏

根据分代收集器原理(可以参考垃圾回收机制分类),JVM的内存可分为三个域: 新域、旧域以及永久域
JVM生成的所有新对象放在新域中。一旦对象经历了一定数量的垃圾收集循环后,便进入旧域。而在永久域中是用来存储JVM自己的反射对象的,如class 和method对象,而且GC(Garbage Collection)不会在主程序运行期对永久域进行清理。其中新域和旧域属于堆,永久域是一个独立域并且不认为是堆的一部分
一、java.lang.OutOfMemoryError: PermGen space

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,
这块内存主要是被 JVM存放Class和Method信息的,Class在被Loader时就会被放到PermGen space中,
它和存放类实例 (Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对
PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,
这种错误常见在web服务器对 JSP进行pre compile(预编译)的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小
超过了jvm默认的大小(4M)那么就会 产生此错误信息了。
解决方法: 手动设置MaxPermSize大小

修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少 jar 文档重复占用内存的目的。

二、java.lang.OutOfMemoryError: Java heap space
Heap size 设置
JVM堆 的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,
其初始空间(即 -Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可
进行设 置。Heap size 的大小是Young Generation 和Tenured Generaion 之和(新域和旧域之和)。
提示:在JVM中如果98% 的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。
提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
解决方法:手动设置 Heap size
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -Xms800m -Xmx800m   -XX:MaxNewSize=256m"


posted @ 2010-08-19 20:39 筱 筱 阅读(235) | 评论 (0)编辑 收藏