Jodd是一个普通开源Java包。你可以把Jodd想象成Java的"瑞士军刀",不仅小,锋利而且包含许多便利的功能。Jodd 提供的功能有:
提供操作Java bean,
可以从各种数据源加载Bean,
简化JDBC的接连与代码,
剖析SQL查询,
处理时间与日期,
操作与格式化String,
搜索本地硬盘上的文件,
帮助处理Servlet请求等。
除此之外还包含一个很小,但实用的基于JSP的MVC框架。

jodd使用示例:

JODD中的时间操作类

import java.util.TimeZone;
import org.apache.log4j.Logger;
import org.junit.Test;
import jodd.datetime.JDateTime;
/**
* JODD中的时间操作类
* @author DJZHOU
*
*/
public class JDateTimeUtil {
private Logger log = Logger.getLogger(JDateTimeUtil.class) ;
@Test
public void testConstructor()
{
/*
* 构造函数的使用
*/
JDateTime jdt = new JDateTime();        // set current date and time
jdt = new JDateTime(2012, 12, 21);      // set 21st December 2012, midnight
jdt = new JDateTime(System.currentTimeMillis());
jdt = new JDateTime(2012, 12, 21, 11, 54, 22, 124);  // set 21st December 2012, 11:54:22.124
jdt = new JDateTime("2012-12-21 11:54:22.124");     // -//-
jdt = new JDateTime("12/21/2012", "MM/DD/YYYY");    // set 21st December 2012, midnight
}
@Test
public void testSet()
{
JDateTime jdt = new JDateTime();        // set current date and time
/*
* set方法的使用:设定日期时间
*/
jdt.set(2012, 12, 21, 11, 54, 22, 124);     // set 21st December 2012, 11:54:22.124
jdt.set(2012, 12, 21);                      // set 21st December 2012, midnight
jdt.setDate(2012, 12, 21);                  // change date to 21st December 2012, do not change te time
jdt.setCurrentTime();                       // set current date and time
jdt.setYear(1973);                          // change the year
jdt.setHour(22);                            // change the hour
jdt.setTime(18, 00, 12, 853);
}
@Test
public void testGet()
{
JDateTime jdt = new JDateTime();        // set current date and time
/*
* get方法的使用:读取日期和时间
*/
jdt.getYear();
jdt.getDateTimeStamp();
log.warn(jdt.getDateTimeStamp());//获取当前时间
log.warn(jdt.getJulianDate());
log.warn(jdt.getDay()) ;
log.warn(jdt.getDayOfMonth()) ;
log.warn(jdt.getDayOfWeek()) ;
log.warn(jdt.getDayOfYear()) ;
log.warn(jdt.getEra()) ;
log.warn(jdt.getFirstDayOfWeek()) ;
log.warn(jdt.getFormat()) ;
}
@Test
public void testAdd()
{
JDateTime jdt = new JDateTime();        // set current date and time
jdt.add(1, 2, 3, 4, 5, 6, 7);    // add 1 year, 2 months, 3 days, 4 hours...
jdt.add(4, 2, 0);           // add 4 years and 2 months
jdt.addMonth(-120);         // go back 120 months
jdt.subYear(1);             // go back one year
jdt.addHour(1234);          // add 1234 hours
}
@Test
public void testAdd2()
{
JDateTime jdt = new JDateTime() ;
log.warn(jdt.toString("YYYY-MM-DD")) ;
jdt.addDay(-20) ;
log.warn(jdt.toString("YYYY-MM-DD")) ;
jdt.addDay(10, true) ;
log.warn(jdt.toString("YYYY-MM-DD")) ;
jdt.addYear(1);
log.warn(jdt.toString("YYYY-MM-DD")) ;
}
@Test
public void testFormat()
{
JDateTime jdt = new JDateTime();        // set current date and time
/**
* 转换说明
YYYY    年
MM      月
DD      日
D       一周中的第几天 从周一算起
MML     月,长型
MMS     月,短行
DL      一周中的第几天 长型 从周一算起
DS      一周中的第几天 短型 从周一算起
hh      小时
mm      分钟
ss      秒
mss     毫秒
DDD     一年中的第几天
WW      一年中的第几周
WWW     一年中的第几周并用W标识
W       一个月中的第几周
E       年代,公元前还是公元后
TZL     时间长型
TZS     时间短型
*
*/
log.warn(jdt.convertToDate()) ;
log.warn(jdt.toString("YYYY-MM-DD"));
log.warn(jdt.toString("YYYY-MM-DD hh:mm:ss"));//转换成字符串
log.warn(jdt.toString("WW"));//本年度第几周
log.warn(jdt.toString("YYYY")) ;
}
}

JODD操作properties文件

import java.io.File;
import java.io.IOException;
import org.apache.log4j.Logger;
import org.junit.Test;
import jodd.props.Props;
/**
* JODD操作properties文件
* @author DJZHOU
*
*/
public class PropUtil {
private static Logger log = Logger.getLogger(PropUtil.class) ;
@Test
public void propExam(){
/*
*  读取prop文件中的属性值
*/
Props p = new Props();
log.warn(URLUtil.getClassPath(this.getClass())+"/a.properties") ;
try {
p.load(new File(URLUtil.getClassPath(this.getClass())+"/a.properties"));
} catch (IOException e) {
e.printStackTrace();
}
String story = p.getValue("a");
log.warn(p.getBaseValue("a")) ;
log.warn(story);
log.warn(null == p.getValue("a")) ;
log.warn(p.toString()) ;
p.setValue("c", "cc") ;
}
}

JODD操作email类

import java.io.File;
import java.io.IOException;
import org.junit.Test;
import jodd.io.FileUtil;
import jodd.mail.Email;
import jodd.mail.EmailAttachment;
import jodd.mail.EmailMessage;
import jodd.mail.SendMailSession;
import jodd.mail.SmtpSslServer;
import jodd.mail.att.ByteArrayAttachment;
import jodd.mail.att.FileAttachment;
import jodd.util.MimeTypes;
/**
* JODD操作email类
*
* @author DJZHOU
*
*/
public class EmailUtil
{
public static void main(String[] args)
{
Email email = Email.create();
email.addMessage(new EmailMessage("消息"));
email.addText("邮件内容");
email.embedFile(new File("d:/console.txt"));
email.from("771842634@qq.com").to("771842634@qq.com");
email.subject("主题");
SendMailSession mailSession = new SmtpSslServer("smtp.qq.com//发送端邮箱服务器协议", "发送端QQ邮箱", "发送端QQ邮箱密码").createSession();
mailSession.open();
mailSession.sendMail(email);
mailSession.close();
System.out.println("发送成功!...");
}
@Test
public void test() throws IOException
{
Email email = new Email();
email.setFrom("infoxxx@jodd.org");
email.setTo("igorxxxx@gmail.com");
email.setSubject("test7");
EmailMessage textMessage = new EmailMessage("Hello!", MimeTypes.MIME_TEXT_PLAIN);
email.addMessage(textMessage);
EmailMessage htmlMessage = new EmailMessage(
"<html><META http-equiv=Content-Type content=\"text/html; charset=utf-8\">" +
"<body><h1>Hey!</h1><img src='cid:c.png'><h2>Hay!</h2></body></html>",
MimeTypes.MIME_TEXT_HTML);
email.addMessage(htmlMessage);
EmailAttachment embeddedAttachment =
new ByteArrayAttachment(FileUtil.readBytes("d:\\c.png"), "image/png", "c.png", "c.png");
email.attach(embeddedAttachment);
EmailAttachment attachment = new FileAttachment(new File("d:\\b.jpg"), "b.jpg", "image/jpeg");
email.attach(attachment);
}
}

String字符串的操作工具类

import org.junit.Test;
import jodd.util.StringUtil;
/**
* String字符串的操作工具类,太强大以至于我要发疯
*
* @author DJZHOU
*
*/
public class StringExamUtil
{
@Test
public void stringExam()
{
String exam = "abcdefg10101010abcdefg";
String result = "";
/*
* replace 字符替换
*/
// 将字符串exam中的a替换成b
result = StringUtil.replace(exam, "a", "b");
// 将字符串exam中的a替换成8,b替换成9
result = StringUtil.replace(exam, new String[] { "a", "b" }, new String[] { "8", "9" });
// 将字符串exam中的a替换成b 这里是替换字符
result = StringUtil.replaceChar(exam, 'a', 'b');
// 将字符串exam中的a替换成8,b替换成9 这里是替换字符
result = StringUtil.replaceChars(exam, new char[] { 'a', 'b' }, new char[] { '8', '9' });
// 将字符串exam中的第一个a替换成b
result = StringUtil.replaceFirst(exam, "a", "b");
// 将字符串exam中的第一个a替换成b 这里是替换字符
result = StringUtil.replaceFirst(exam, 'a', 'b');
// 将字符串exam中的最后一个a替换成b
result = StringUtil.replaceLast(exam, "a", "b");
// 将字符串exam中的最后一个a替换成b 这里是替换字符
result = StringUtil.replaceLast(exam, 'a', 'b');
// 将字符串exam中的a和A替换成FF b和B替换成gg 即忽略大小写
result = StringUtil.replaceIgnoreCase(exam, new String[] { "a", "b" }, new String[] { "FF", "gg" });
/*
* remove 字符移除
*/
// 将字符串exam中的a移除
result = StringUtil.remove(exam, "a");
// 将字符串exam中的a移除 移除的是字符
result = StringUtil.remove(exam, 'a');
// 将字符串exam中的a b移除 移除的是字符 最后一个参数为无限参数
result = StringUtil.removeChars(exam, 'a', 'b');
// 将字符串exam中的a移除
result = StringUtil.removeChars(exam, "a");
/*
* 判断字符串是否为空
*/
// 判断字符串exam是否为空
System.out.println(StringUtil.isEmpty(exam));
// 判断字符串exam是否不为空
System.out.println(StringUtil.isNotEmpty(exam));
// 判断字符串exam是否为空 这里的空为去掉空格之后
System.out.println(StringUtil.isBlank("   "));
// 判断字符串exam是否不为空 这里的空为去掉空格之后
System.out.println(StringUtil.isNotBlank("   "));
// 判断字符串(无限参数)是否都为空 他们之间的关系为并且
System.out.println(StringUtil.isAllEmpty(exam, "  ", "null"));
// 判断字符串(无限参数)是否都为空 这里的空为去掉空格之后 他们之间的关系为并且
System.out.println(StringUtil.isAllBlank(exam, "  ", "null"));
// 对比字符串exam中的第4索引的字符是不是d
System.out.println(StringUtil.isCharAtEqual(exam, 4, 'd'));
// 对比字符串exam中的第4索引的字符是不是 不是d
System.out.println(StringUtil.isCharAtEscaped(exam, 4, 'd'));
/*
* equals安全的字符串对比是否相等 不需要考虑null.equals等问题
*/
// 判断字符串exam与aaa是否相等
System.out.println(StringUtil.equals(exam, "aaa"));
// 判断两个数组是否相等
System.out.println(StringUtil.equals(new String[] { "aaa" }, new String[] { "aaa", "bbb" }));
// 判断两个数组是否相等 且忽略大小写
System.out.println(StringUtil.equalsIgnoreCase(new String[] { "aaa" }, new String[] { "aaa", "bbb" }));
// 获取字符串bbb在数组中的索引
System.out.println(StringUtil.equalsOne("bbb", new String[] { "aaa", "bbb" }));
// 获取字符串bbb在数组中的索引 且忽略大小写
System.out.println(StringUtil.equalsOneIgnoreCase("bbb", new String[] { "aaa", "bbb" }));
/*
* 首字母的更改
*/
// 首字母大写
result = StringUtil.capitalize(exam);
// 首字母小写
result = StringUtil.uncapitalize(exam);
/*
* split字符串分割
*/
// 将字符串按 , 分割
String[] array = StringUtil.split("1,2,3,4,5,6,7,8", ",");
/*
* indexOf 获取字符串中的字符索引
*/
/*
* Strips, crops, trims and cuts
*/
// 若这个字符串以a为开头,则去掉a
result = StringUtil.stripLeadingChar(exam, 'a');
// 若这个字符串以g为结尾,则去掉g
result = StringUtil.stripTrailingChar(exam, 'g');
// 若该字符串为"" 则返回null 若不是则返回字符串
result = StringUtil.crop("");
// 裁剪数组 将""变成null
StringUtil.cropAll(new String[] { "", " " });
// 去掉字符串两边的空格
result = StringUtil.trimDown("  aa  ");
// 去掉字符串左边的空格
result = StringUtil.trimLeft("  aa  ");
// 去掉字符串右边的空格
result = StringUtil.trimRight("  aa  ");
// 去掉字符串右边的空格
String[] array2 = new String[] { "  aa  ", "  b  b" };
/*
* 去掉数组内空格
*/
StringUtil.trimAll(array2);
StringUtil.trimDownAll(array2);
for (String string : array2)
{
System.out.println(string);
}
/*
* 切割字符串
*/
// 从字符串的f字符开始切割字符串 保留f
result = StringUtil.cutFromIndexOf(exam, 'f');
// 从字符串的fg字符串开始切割字符串 保留fg
result = StringUtil.cutFromIndexOf(exam, "fg");
// 检查字符串是否为abc开头,若为此开头,则切割掉abc
result = StringUtil.cutPrefix(exam, "abc");
// 检查字符串是否为efg结尾,若为此结尾,则切割掉efg
result = StringUtil.cutSuffix(exam, "efg");
// 检查字符串是否为efg开头或结尾,若为此开头或结尾,则切割掉efg
result = StringUtil.cutSurrounding(exam, "efg");
// 检查字符串是否为abc开头efg结尾,若为为abc开头efg结尾,则切割掉
result = StringUtil.cutSurrounding(exam, "abc", "efg");
// 截取到字符串的f字符开始切割字符串 不保留f
result = StringUtil.cutToIndexOf(exam, 'f');
// 截取到字符串的fg字符串开始切割字符串 不保留fg
result = StringUtil.cutToIndexOf(exam, "fg");
/*
* 其他很多小巧的方法,可以自行研究
*/
System.out.println(result);
}
}

java jodd框架介绍及使用示例相关推荐

  1. java jodd_java jodd框架介绍及使用示例

    import org.junit.Test; import jodd.util.StringUtil; /** * String字符串的操作工具类,太强大以至于我要发疯 * * @author DJZ ...

  2. java集合框架介绍_Java集合框架介绍

    Java集合框架介绍 发布时间:2020-06-26 17:00:14 来源:亿速云 阅读:85 作者:Leah 这篇文章将为大家详细讲解有关Java集合框架介绍,文章内容质量较高,因此小编分享给大家 ...

  3. Java通讯框架介绍

    Java通讯框架介绍 Java通讯框架,有时也被称为网络服务器,其实就是封装IO操作,并提供更高级的API接口.目前比较流行的框架就是:MINA.Cindy.QuickServer等.前段时间为了缩短 ...

  4. java kryo_Kryo框架使用方法代码示例

    Kryo框架的source已移至https://github.com/EsotericSoftware/kryo ,进入此页面,然后点击右边的Download Zip按钮,就能下载到最新版本的Kryo ...

  5. Java三大框架 介绍

    三大框架:Struts+Hibernate+Spring Java三大框架主要用来做WEB应用. Struts主要负责表示层的显示 Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作 ...

  6. java集合框架介绍(转)

    从上面的集合框架图可以看到,Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection接口又有3种子类型 ...

  7. Java日志框架介绍

    一.序言 日志为系统的必不可少的一部分,通过输出的日志我们可以排查线上出现的各种问题,就像断案的线索一样.我们还可以通过日志数据分析用户的行为习惯做大数据分析. 二.日志框架分类及其历史 框架的种类: ...

  8. java集合框架介绍_Java集合框架全面介绍(一)

    Java平台提供了一个全新的集合框架."集合框架"主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型. Java 2集合框架图 集合接口:6个接口(短虚线表示),表示不 ...

  9. java jodd 框架中发送email

    2019独角兽企业重金招聘Python工程师标准>>> 用jodd发送电子邮件: 这里用QQ和126的邮箱进行测试,首先保证你的邮箱服务器已经开通了smtp的服务,一般在设置里面,比 ...

最新文章

  1. mac 怎么查找大于200m的文件_U盘无法拷贝大于4GB的文件怎么办?
  2. 项目中基于Rest的Wcf服务发布以及iBatisNet框架的使用(下)
  3. mac 开启多个eclipse QQ
  4. 树莓派ssh连接问题
  5. AcWing 1087. 修剪草坪28
  6. redis基本类型和使用
  7. rabbitmq消息的序列化与反序列化
  8. 使用Python解压,对比文件
  9. linux下启动管理,rEFInd启动管理器配置文件详解
  10. android 制作windows启动盘,安卓手机制作u盘启动盘微软win7系统地址
  11. leetcode-堆
  12. 如何实现一个拍照搜题功能
  13. 东北大学大物实验思考题答案解析
  14. Android手机截图怎么做,怎样在手机上截图(安卓手机、苹果手机截图方法)
  15. linux在双系统中消失了,win和linux双系统下,重装win系统导致linux系统消失的解决办法...
  16. 搜狗视频搜索华丽改版 奉献一份体验报告
  17. L. Lifeguards(排序)
  18. Sum of Medians CodeForces - 85D(线段树+离散化)
  19. java实现正态分布累积分布_标准正态分布变量的累积概率分布函数
  20. ABBYY FineReader OCR图文识别软件如何快速将纸质文档转为电子档教程

热门文章

  1. 用 PyQt5 制作动态钟表
  2. NO.1——VulnHub-GoldenEye-1-Walkthrough
  3. 每日一库之Go 强大而灵活的电子邮件库:email
  4. LibGDX_2.1: LibGDX 应用框架(6 大系统交互接口)
  5. LibGdx 安装使用
  6. 安卓13开发者模式怎么开?
  7. 4 、python学习笔记第四课:对象、标识符、变量、赋值、常量
  8. zedboard各种相关资料整理中
  9. C#毕业设计——基于C#+vc.net+Access的报名管理信息系统设计与实现(毕业论文+程序源码)——报名管理信息系统
  10. 免费双因素身份认证服务