请稍侯

使用commons-email来发送邮件

前言 在很多时候我们都需要发送邮件 这里使用apache的commons-email的邮件工具类 import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.commons.mail.EmailAttachment; import org.apache.commons.mail.HtmlEmail; /** * 使用Commons-email发送邮件 * * @author xuhf * */ publi...

Read More

Java执行命令并获取返回结果工具类

前言 本文借鉴了sshxcute-1.0的部分代码 在参考sshxcute的基础上写了以下的代码,目前不支持执行脚本。 需求 需要一个可以执行系统命令,并获取返回结果的工具类 代码实现 1,先来看命令的抽象类 public abstract class AbstractCommand { protected static String DELIMETER = ";"; protected String[] errorSysoutKeywords = { "Usage", "usage", "not found", "fail", "Fail", "err...

Read More

HashMap和HashSet实现原理

HashMap实现原理 HashMap是我们在开发过程中常用的一种数据结构 数据的存储结构 在HashMap中,个人觉得比较关键的数据结构就是以下三种: static final Entry<?,?>[] EMPTY_TABLE = {}; interface Entry<K,V> static class Entry<K,V> implements Map.Entry<K,V> 其中 Entry<?,?>[] EMPTY_TABLE 这个数组存储的是链表的头节点 Entry<K,V> 这种数据结...

Read More

Java的重载与重写

什么是Java的重载与重写 在朋友圈看到这样一个问题: 基类里有方法 void a(); 子类中有方法 int a(); 这2个方法是重载还是重写? 现在我们先不说明答案,先来学习下什么是重写与重载。 Java的重写 1,在子类中可以根据需要对从基类中继承来的方法进行重写,是子类与父类的一种多态性体现 2,重写的方法和被重写的方法必须具相同的方法名称,参数列表和返回类型 3,重写方法不能使用比被重写的方法更严格的访问权限 class P { public void a() { System.out.println("Parent"); } } c...

Read More

Apache FOP简介

介绍 Apache FOP(格式化对象处理器)是一个使用XSL格式化对象(XSL-FO)和输出独立的打印格式化驱动。 它是一个读取格式化(FO)树,并呈现结果页面到一个特殊的输出的Java应用程序。 目前支持的输出格式包括PDF,PS,PCL,AFP,XML(区域树表现),Print,AWT和PNG,并在较小的范围内,支持RTF和TXT。主要的输出目标是PDF。 Apache FOP项目是Apache软件基金会的一部分,Apache软件基金会的开源项目拥有广泛的社会用户和开发者。 FOP最新的可获得版本是FOP 2.0。 在FOP Compliance中,每一个对象和...

Read More

CentOS6.6安装Gitlab全过程

安装环境 CentOS6.6 安装过程 安装中文官网给出的过程执行,http://www.gitlab.cc/downloads/ sudo yum install curl openssh-server postfix cronie sudo service postfix start sudo chkconfig postfix on sudo lokkit -s http -s ssh 注意,以下是关键,使用清华大学的镜像. 新建/etc/yum.repos.d/gitlab-ce.repo,内容为 [gitlab-ce] name=gitlab-ce baseur...

Read More

Linux使用小技巧/小命令集合

文件编码转换 iconv -t utf-8 -f gb2312 -c a.txt > b.txt -f 原编码 -t 目标编码 -c 忽略无法转换的字符 提取文件名/目录名 basename 从路径中提取出文件名 dirname 从路径中提取出目录名 file=/opt/app/test.sh dir_name=/opt/app/ basename $file # test.sh dirname $file # /opt/app dirname $dir_name # /opt Date命令

Read More

Java中实现定时任务的几种方式

前言 突然之间,想总结下这些年在项目中遇到的任务调度方面的知识。 在项目中,我们总会遇到需要使用定时任务来处理的地方,比如: 定时处理前一天的数据 定时检查某种数据 以下将列举出我见过的定时任务的实现方式 线程的sleep 个人觉得比较古老的一种方式,这种主要是实现一个循环执行某种任务,主要实现方式如下: public static void thread() { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); while (true) { ...

Read More

mysqldump忽略锁表

问题 在进行线上数据的导出时,遇见如下错误。 mysqldump: Got error: 1044: Access denied for user 'user'@'ip' to database 'databasename' when doing LOCK TABLES 原因是由于在执行mysqldump时不能锁住你要导出的表。 解决办法 在导出时增加--skip-lock-tables参数。 重新执行 mysqldump -uroot -p -h hostip database table1 table2 > ~/export.sql

Read More

Mysql查询2个表的差集并修改差集的数据

需求 在做一个系统时,用户可以选择付款方式,付款方式包括支付宝和银行。 在用户表会记录用户的付款方式(payment_code),对应到用户支付宝信息表或者用户银行信息表。 但是目前由于一个失误,造成用户表中的payment_code不正确,就是说,用户表中显示的payment_code为BANK。 但是他可能在用户银行信息表中不存在记录,用户支付宝信息表同理。 那么,我们就需要查出这部分用户,让他们去重新填写。 具体到mysql上,就是说要查到在用户表中payment_code等于BANK,但是却不在用户银行信息表中的用户。 建立测试表 -- 用户信息简表 drop t...

Read More