一、日期工具类

package com.ebd.application.common.utils;

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; import org.apache.commons.lang.time.DateFormatUtils; /**
* 日期工具类, 继承org.apache.commons.lang.time.DateUtils类
*/
public class DateUtils extends org.apache.commons.lang.time.DateUtils { private static String[] parsePatterns = { "yyyy-MM-dd",
"yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy/MM/dd",
"yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm" }; /**
* 得到当前日期字符串 格式(yyyy-MM-dd)
*/
public static String getDate() {
return getDate("yyyy-MM-dd");
} /**
* Timestamp to Date String
*/
public static String timestamptoString(Long timestampStr) {
Timestamp ts = new Timestamp(timestampStr);
String dateStr = "";
DateFormat sdf = new SimpleDateFormat(parsePatterns[1]);
try {
dateStr = sdf.format(ts);
} catch (Exception e) {
e.printStackTrace();
}
return dateStr;
} /**
* 得到当前日期字符串 格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"
*/
public static String getDate(String pattern) {
return DateFormatUtils.format(new Date(), pattern);
} /**
* 得到日期字符串 默认格式(yyyy-MM-dd) pattern可以为:"yyyy-MM-dd" "HH:mm:ss" "E"
*/
public static String formatDate(Date date, Object... pattern) {
String formatDate = null;
if (pattern != null && pattern.length > 0) {
formatDate = DateFormatUtils.format(date, pattern[0].toString());
} else {
formatDate = DateFormatUtils.format(date, "yyyy-MM-dd");
}
return formatDate;
} /**
* 得到日期时间字符串,转换格式(yyyy-MM-dd HH:mm:ss)
*/
public static String formatDateTime(Date date) {
return formatDate(date, "yyyy-MM-dd HH:mm:ss");
} /**
* 得到当前时间字符串 格式(HH:mm:ss)
*/
public static String getTime() {
return formatDate(new Date(), "HH:mm:ss");
} /**
* 得到当前日期和时间字符串 格式(yyyy-MM-dd HH:mm:ss)
*/
public static String getDateTime() {
return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
} /**
* 得到当前年份字符串 格式(yyyy)
*/
public static String getYear() {
return formatDate(new Date(), "yyyy");
} /**
* 得到当前月份字符串 格式(MM)
*/
public static String getMonth() {
return formatDate(new Date(), "MM");
} /**
* 得到当天字符串 格式(dd)
*/
public static String getDay() {
return formatDate(new Date(), "dd");
} /**
* 得到当前星期字符串 格式(E)星期几
*/
public static String getWeek() {
return formatDate(new Date(), "E");
} /**
* 日期型字符串转化为日期 格式 { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm",
* "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm" }
*/
public static Date parseDate(Object str) {
if (str == null) {
return null;
}
try {
return parseDate(str.toString(), parsePatterns);
} catch (ParseException e) {
return null;
}
} /**
* 获取过去的天数
*
* @param date
* @return
*/
public static long pastDays(Date date) {
long t = new Date().getTime() - date.getTime();
return t / (24 * 60 * 60 * 1000);
} public static Date getDateStart(Date date) {
if (date == null) {
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = sdf.parse(formatDate(date, "yyyy-MM-dd") + " 00:00:00");
} catch (ParseException e) {
e.printStackTrace();
}
return date;
} public static Date getDateEnd(Date date) {
if (date == null) {
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = sdf.parse(formatDate(date, "yyyy-MM-dd") + " 23:59:59");
} catch (ParseException e) {
e.printStackTrace();
}
return date;
} }

二、文件目录工具

package com.ebd.application.common.utils;

import java.io.File;
import java.io.IOException; public class CreateFileUtil { public static boolean createFile(String destFileName) {
File file = new File(destFileName);
if(file.exists()) {
System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!");
return false;
}
if (destFileName.endsWith(File.separator)) {
System.out.println("创建单个文件" + destFileName + "失败,目标文件不能为目录!");
return false;
}
//判断目标文件所在的目录是否存在
if(!file.getParentFile().exists()) {
//如果目标文件所在的目录不存在,则创建父目录
System.out.println("目标文件所在目录不存在,准备创建它!");
if(!file.getParentFile().mkdirs()) {
System.out.println("创建目标文件所在目录失败!");
return false;
}
}
//创建目标文件
try {
if (file.createNewFile()) {
System.out.println("创建单个文件" + destFileName + "成功!");
return true;
} else {
System.out.println("创建单个文件" + destFileName + "失败!");
return false;
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("创建单个文件" + destFileName + "失败!" + e.getMessage());
return false;
}
} public static boolean createDir(String destDirName) {
File dir = new File(destDirName);
if (dir.exists()) {
System.out.println(destDirName + "目录已经存在");
return true;
}
if (!destDirName.endsWith(File.separator)) {
destDirName = destDirName + File.separator;
}
//创建目录
if (dir.mkdirs()) {
System.out.println("创建目录" + destDirName + "成功!");
return true;
} else {
System.out.println("创建目录" + destDirName + "失败!");
return false;
}
} public static String createTempFile(String prefix, String suffix, String dirName) {
File tempFile = null;
if (dirName == null) {
try{
//在默认文件夹下创建临时文件
tempFile = File.createTempFile(prefix, suffix);
//返回临时文件的路径
return tempFile.getCanonicalPath();
} catch (IOException e) {
e.printStackTrace();
System.out.println("创建临时文件失败!" + e.getMessage());
return null;
}
} else {
File dir = new File(dirName);
//如果临时文件所在目录不存在,首先创建
if (!dir.exists()) {
if (!CreateFileUtil.createDir(dirName)) {
System.out.println("创建临时文件失败,不能创建临时文件所在的目录!");
return null;
}
}
try {
//在指定目录下创建临时文件
tempFile = File.createTempFile(prefix, suffix, dir);
return tempFile.getCanonicalPath();
} catch (IOException e) {
e.printStackTrace();
System.out.println("创建临时文件失败!" + e.getMessage());
return null;
}
}
} public static void main(String[] args) {
//创建目录
String dirName = "D:/work/temp/temp0/temp1";
CreateFileUtil.createDir(dirName);
//创建文件
String fileName = dirName + "/temp2/tempFile.txt";
CreateFileUtil.createFile(fileName);
//创建临时文件
String prefix = "temp";
String suffix = ".txt";
for (int i = 0; i < 10; i++) {
System.out.println("创建了临时文件:"
+ CreateFileUtil.createTempFile(prefix, suffix, dirName));
}
//在默认目录下创建临时文件
for (int i = 0; i < 10; i++) {
System.out.println("在默认目录下创建了临时文件:"
+ CreateFileUtil.createTempFile(prefix, suffix, null));
}
}
}

三、中文判断工具类

package com.ebd.application.common.utils;

import java.util.regex.Pattern;

/**
* 中文判断工具类
* @author Administrator
*/
public class CharUtil { public static void main(String[] args) {
String[] strArr = new String[] { "www.micmiu.com", "!@#$%^&*()_+{}[]|\"'?/:;<>,.", "!¥……()——:;“”‘’《》,。?、", "不要啊", "やめて", "韩佳人", "???" };
for (String str : strArr) {
System.out.println("===========> 测试字符串:" + str);
System.out.println("正则判断结果:" + isChineseByREG(str) + " -- " + isChineseByName(str));
System.out.println("Unicode判断结果 :" + isChinese(str));
System.out.println("详细判断列表:");
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
char c = ch[i];
System.out.println(c + " --> " + (isChinese(c) ? "是" : "否"));
}
}
} // 根据Unicode编码完美的判断中文汉字和符号
private static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
return true;
}
return false;
} // 完整的判断中文汉字和符号
public static boolean isChinese(String strName) {
char[] ch = strName.toCharArray();
for (int i = 0; i < ch.length; i++) {
char c = ch[i];
if (isChinese(c)) {
return true;
}
}
return false;
} // 只能判断部分CJK字符(CJK统一汉字)
public static boolean isChineseByREG(String str) {
if (str == null) {
return false;
}
Pattern pattern = Pattern.compile("[\\u4E00-\\u9FBF]+");
return pattern.matcher(str.trim()).find();
} // 只能判断部分CJK字符(CJK统一汉字)
public static boolean isChineseByName(String str) {
if (str == null) {
return false;
}
// 大小写不同:\\p 表示包含,\\P 表示不包含
// \\p{Cn} 的意思为 Unicode 中未被定义字符的编码,\\P{Cn} 就表示 Unicode中已经被定义字符的编码
String reg = "\\p{InCJK Unified Ideographs}&&\\P{Cn}";
Pattern pattern = Pattern.compile(reg);
return pattern.matcher(str.trim()).find();
}
}

四、文件上传工具

package com.ebd.application.common.utils;

import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random; import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile; public class FileUploadUtils { public static final String UPLOAD_URL = "c:/pp"; /**
* 上传图片,图片的名称filename是根据时间+随机数组装成的
* @param file MultipartFile file
* @param request HttpServletRequest request,
* @param uploadDir 上传的目的文件夹
* @return 返回文件的上传地址 (uploadDir/filename)
*/
public static String upload(MultipartFile file, HttpServletRequest request,String uploadDir) {
String logoUrl = null;
if (file != null && !file.isEmpty()) {
System.out.println(request.getSession().getServletContext());
String filePath = request.getSession().getServletContext()
.getRealPath(uploadDir); //目录不存在时,新建目录
createDirectory(filePath); //得到原图片的后缀名
String srcfilename = file.getOriginalFilename();
String suffix=srcfilename.substring(srcfilename.lastIndexOf("."));
//组装新图片的名称
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String format = dateFormat.format(new Date()); String filename = format+ new Random().nextInt(1000000)+suffix; File destFile = new File(filePath, filename);
//如果文件存在,继续随机名称
while(destFile.exists()){
filename = format+ new Random().nextInt(1000000)+suffix;
destFile = new File(filePath, filename);
} try {
file.transferTo(destFile);
logoUrl = uploadDir + "/" + filename;
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return logoUrl;
} /**
* 上传文件,文件名为源文件的名称
* @param file
* @param request
* @param uploadDir
* @return 上传文件的路径:uploadDir + "/" + srcfilename
*/
public static String uploadFile(MultipartFile file, HttpServletRequest request,String uploadDir) {
String logoUrl = null;
if (file != null && !file.isEmpty()) {
//获取上传文件夹的真实地址
String dirPath = request.getSession().getServletContext()
.getRealPath(uploadDir); //目录不存在时,新建目录
createDirectory(dirPath); //得到源文件的名称
String srcfilename = file.getOriginalFilename(); //构建目标文件
File destFile = new File(dirPath, srcfilename);
try {
//上传文件
file.transferTo(destFile);
logoUrl = uploadDir + "/" + srcfilename;
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return logoUrl;
} /**
* 新建目录
* @param dirPath
*/
public static void createDirectory(String dirPath){
if(StringUtils.isNotBlank(dirPath)){
// 获得文件对象
File file = new File(dirPath);
if(!file.exists()){
// 如果路径不存在,则创建
file.mkdirs();
}
}
} /**
* 删除单个文件
* @param path 被删除文件的文件名
* @return 单个文件删除成功返回true,否则返回false
*/
public static boolean deleteFile(String path){
boolean flag = false;
File file = new File(path);
// 路径为文件且不为空则进行删除
if(file.isFile() && file.exists()){
file.delete();
flag = true;
} return flag;
} /**
* 生产缩略图
* @param src 原图
* @param dir 缩略图
* @param fileName 缩略图名称
* @return
*/
public static String thumb(File src,File dir,String fileName,int nw,int nh){ try {
/*
AffineTransform 类表示 2D 仿射变换,它执行从 2D 坐标到其他 2D
坐标的线性映射,保留了线的“直线性”和“平行性”。可以使用一系
列平移、缩放、翻转、旋转和剪切来构造仿射变换。
*/
AffineTransform transform = new AffineTransform();
//读取图片
BufferedImage bis = ImageIO.read(src);
int w = bis.getWidth();
int h = bis.getHeight();
double sx = (double)nw/w;
double sy = (double)nh/h;
//将此变换设置为缩放变换。
transform.setToScale(sx,sy);
/*
* AffineTransformOp类使用仿射转换来执行从源图像或 Raster 中 2D 坐标到目标图像或
* Raster 中 2D 坐标的线性映射。所使用的插值类型由构造方法通过
* 一个 RenderingHints 对象或通过此类中定义的整数插值类型之一来指定。
* 如果在构造方法中指定了 RenderingHints 对象,则使用插值提示和呈现
* 的质量提示为此操作设置插值类型。要求进行颜色转换时,可以使用颜色
* 呈现提示和抖动提示。 注意,务必要满足以下约束:源图像与目标图像
* 必须不同。 对于 Raster 对象,源图像中的 band 数必须等于目标图像中
* 的 band 数。
*/
AffineTransformOp ato = new AffineTransformOp(transform,null);
BufferedImage bid = new BufferedImage(nw,nh,BufferedImage.TYPE_3BYTE_BGR);
/*
* TYPE_3BYTE_BGR 表示一个具有 8 位 RGB 颜色分量的图像,
* 对应于 Windows 风格的 BGR 颜色模型,具有用 3 字节存
* 储的 Blue、Green 和 Red 三种颜色。
*/
ato.filter(bis,bid);
ImageIO.write(bid,"jpeg",dir);
} catch(Exception e) {
e.printStackTrace();
} return dir + "/" + fileName;
} /**
* 复制整个文件夹内容
* @param oldPath
* @param newPath
* @return boolean
*/
public static void copyFolder(String oldPath, String newPath) { try {
//如果文件夹不存在 则建立新文件夹
(new File(newPath)).mkdirs();
File a=new File(oldPath);
String[] file=a.list();
File temp=null;
for (int i = 0; i < file.length; i++) {
if(oldPath.endsWith(File.separator)){
temp=new File(oldPath+file[i]);
}
else{
temp=new File(oldPath+File.separator+file[i]);
} if(temp.isFile()){
FileInputStream input = new FileInputStream(temp);
FileOutputStream output = new FileOutputStream(newPath + "/" +
(temp.getName()).toString());
byte[] b = new byte[1024 * 5];
int len;
while ( (len = input.read(b)) != -1) {
output.write(b, 0, len);
}
output.flush();
output.close();
input.close();
}
if(temp.isDirectory()){//如果是子文件夹
copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);
}
}
}
catch (Exception e) {
System.out.println("复制整个文件夹内容操作出错");
e.printStackTrace(); } } /**
* 删除文件夹
* @param filePathAndName
* @param fileContent
* @return boolean
*/
public static void delFolder(String folderPath) {
try {
delAllFile(folderPath); //删除完里面所有内容
String filePath = folderPath;
filePath = filePath.toString();
java.io.File myFilePath = new java.io.File(filePath);
myFilePath.delete(); //删除空文件夹 }
catch (Exception e) {
System.out.println("删除文件夹操作出错");
e.printStackTrace(); } } /**
* 删除文件夹里面的所有文件
* @param path
*/
public static void delAllFile(String path) {
File file = new File(path);
if (!file.exists()) {
return;
}
if (!file.isDirectory()) {
return;
}
String[] tempList = file.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
}
else {
temp = new File(path + File.separator + tempList[i]);
}
if (temp.isFile()) {
temp.delete();
}
if (temp.isDirectory()) {
delAllFile(path+"/"+ tempList[i]);//先删除文件夹里面的文件
delFolder(path+"/"+ tempList[i]);//再删除空文件夹
}
}
} /**
* 移动文件到指定目录
* @param oldPath
* @param newPath
*/
public static void moveFile(String oldPath, String newPath) {
copyFolder(oldPath, newPath);
delFolder(oldPath); } public static void main(String[] args) { // System.out.println(new Date().getTime());
// System.out.println(String.valueOf(new Date().getTime()));
//// File f =new File("TileTest.doc");
// String fileName="TileTest....6.6doc";
// String prefix=fileName.substring(fileName.lastIndexOf("."));
// System.out.println(prefix);
// System.out.println(new Random().nextInt(1000000));
// System.out.println(new Random().nextInt(1000000));
// File f = new File("d:/1.txt");
// System.out.println(f.exists()); File src = new File("D:\\dcd01448724c402a8cf8b852e1307510\\qrcode_for_gh_cf64bce34a18_344.jpg");
File dir = new File("D:\\dcd01448724c402a8cf8b852e1307510");
// File src = new File("D:\\architecture\\vungu\\workspace0428\\vp-standweb\\src\\main\\webapp\\fileUpload\\images\\subscribe\\dcd01448724c402a8cf8b852e1307510\\20160120171448178836077.png");
// File dir = new File("D:\\architecture\\vungu\\workspace0428\\vp-standweb\\src\\main\\webapp\\fileUpload\\images\\subscribe\\dcd01448724c402a8cf8b852e1307510");
String fileName = "20160120171448178836077thumb.jpg";
int nw=360;
int nh=200;
thumb(src, dir, fileName, nw, nh);
}
}

五、UUID简单工具

package com.ebd.application.common.utils;

import java.security.SecureRandom;
import java.util.UUID; public class Identities { private static SecureRandom random = new SecureRandom(); public static String uuid() {
return UUID.randomUUID().toString().replaceAll("-", "");
} public static long randomLong() {
return Math.abs(random.nextLong());
} }

六、JDBC工具

package com.ebd.application.common.utils;

import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* JDBC工具类
* @author Administrator
*/
public class JdbcUtils { //数据库用户名
private static final String USERNAME = "root";
//数据库密码
private static final String PASSWORD = "root";
//驱动信息
private static final String DRIVER = "com.mysql.jdbc.Driver";
//数据库地址
private static final String URL = "jdbc:mysql://localhost:3306/test";
private Connection connection;
private PreparedStatement pstmt;
private ResultSet resultSet;
public JdbcUtils() {
// TODO Auto-generated constructor stub
try{
Class.forName(DRIVER);
System.out.println("数据库连接成功!"); }catch(Exception e){ }
} /**
* 获得数据库的连接
* @return
*/
public Connection getConnection(){
try {
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
} /**
* 增加、删除、改
* @param sql
* @param params
* @return
* @throws SQLException
*/
public boolean updateByPreparedStatement(String sql, List<Object> params)throws SQLException{
boolean flag = false;
int result = -1;
pstmt = connection.prepareStatement(sql);
int index = 1;
if(params != null && !params.isEmpty()){
for(int i=0; i<params.size(); i++){
pstmt.setObject(index++, params.get(i));
}
}
result = pstmt.executeUpdate();
flag = result > 0 ? true : false;
return flag;
} /**
* 查询单条记录
* @param sql
* @param params
* @return
* @throws SQLException
*/
public Map<String, Object> findSimpleResult(String sql, List<Object> params) throws SQLException{
Map<String, Object> map = new HashMap<String, Object>();
int index = 1;
pstmt = connection.prepareStatement(sql);
if(params != null && !params.isEmpty()){
for(int i=0; i<params.size(); i++){
pstmt.setObject(index++, params.get(i));
}
}
resultSet = pstmt.executeQuery();//返回查询结果
ResultSetMetaData metaData = resultSet.getMetaData();
int col_len = metaData.getColumnCount();
while(resultSet.next()){
for(int i=0; i<col_len; i++ ){
String cols_name = metaData.getColumnName(i+1);
Object cols_value = resultSet.getObject(cols_name);
if(cols_value == null){
cols_value = "";
}
map.put(cols_name, cols_value);
}
}
return map;
} /**查询多条记录
* @param sql
* @param params
* @return
* @throws SQLException
*/
public List<Map<String, Object>> findModeResult(String sql, List<Object> params) throws SQLException{
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
int index = 1;
pstmt = connection.prepareStatement(sql);
if(params != null && !params.isEmpty()){
for(int i = 0; i<params.size(); i++){
pstmt.setObject(index++, params.get(i));
}
}
resultSet = pstmt.executeQuery();
ResultSetMetaData metaData = resultSet.getMetaData();
int cols_len = metaData.getColumnCount();
while(resultSet.next()){
Map<String, Object> map = new HashMap<String, Object>();
for(int i=0; i<cols_len; i++){
String cols_name = metaData.getColumnName(i+1);
Object cols_value = resultSet.getObject(cols_name);
if(cols_value == null){
cols_value = "";
}
map.put(cols_name, cols_value);
}
list.add(map);
} return list;
} /**通过反射机制查询单条记录
* @param sql
* @param params
* @param cls
* @return
* @throws Exception
*/
public <T> T findSimpleRefResult(String sql, List<Object> params,
Class<T> cls )throws Exception{
T resultObject = null;
int index = 1;
pstmt = connection.prepareStatement(sql);
if(params != null && !params.isEmpty()){
for(int i = 0; i<params.size(); i++){
pstmt.setObject(index++, params.get(i));
}
}
resultSet = pstmt.executeQuery();
ResultSetMetaData metaData = resultSet.getMetaData();
int cols_len = metaData.getColumnCount();
while(resultSet.next()){
//通过反射机制创建一个实例
resultObject = cls.newInstance();
for(int i = 0; i<cols_len; i++){
String cols_name = metaData.getColumnName(i+1);
Object cols_value = resultSet.getObject(cols_name);
if(cols_value == null){
cols_value = "";
}
Field field = cls.getDeclaredField(cols_name);
field.setAccessible(true); //打开javabean的访问权限
field.set(resultObject, cols_value);
}
}
return resultObject; } /**通过反射机制查询多条记录
* @param sql
* @param params
* @param cls
* @return
* @throws Exception
*/
public <T> List<T> findMoreRefResult(String sql, List<Object> params,
Class<T> cls )throws Exception {
List<T> list = new ArrayList<T>();
int index = 1;
pstmt = connection.prepareStatement(sql);
if(params != null && !params.isEmpty()){
for(int i = 0; i<params.size(); i++){
pstmt.setObject(index++, params.get(i));
}
}
resultSet = pstmt.executeQuery();
ResultSetMetaData metaData = resultSet.getMetaData();
int cols_len = metaData.getColumnCount();
while(resultSet.next()){
//通过反射机制创建一个实例
T resultObject = cls.newInstance();
for(int i = 0; i<cols_len; i++){
String cols_name = metaData.getColumnName(i+1);
Object cols_value = resultSet.getObject(cols_name);
if(cols_value == null){
cols_value = "";
}
Field field = cls.getDeclaredField(cols_name);
field.setAccessible(true); //打开javabean的访问权限
field.set(resultObject, cols_value);
}
list.add(resultObject);
}
return list;
} /**
* 释放数据库连接
*/
public void releaseConn(){
if(resultSet != null){
try{
resultSet.close();
}catch(SQLException e){
e.printStackTrace();
}
}
} /**
* @param args
*/
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
JdbcUtils jdbcUtils = new JdbcUtils();
jdbcUtils.getConnection(); /*******************增*********************/
/* String sql = "insert into userinfo (username, pswd) values (?, ?), (?, ?), (?, ?)";
List<Object> params = new ArrayList<Object>();
params.add("小明");
params.add("123xiaoming");
params.add("张三");
params.add("zhangsan");
params.add("李四");
params.add("lisi000");
try {
boolean flag = jdbcUtils.updateByPreparedStatement(sql, params);
System.out.println(flag);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/ /*******************删*********************/
//删除名字为张三的记录
/* String sql = "delete from userinfo where username = ?";
List<Object> params = new ArrayList<Object>();
params.add("小明");
boolean flag = jdbcUtils.updateByPreparedStatement(sql, params);*/ /*******************改*********************/
//将名字为李四的密码改了
/* String sql = "update userinfo set pswd = ? where username = ? ";
List<Object> params = new ArrayList<Object>();
params.add("lisi88888");
params.add("李四");
boolean flag = jdbcUtils.updateByPreparedStatement(sql, params);
System.out.println(flag);*/ /*******************查*********************/
//不利用反射查询多个记录
/* String sql2 = "select * from userinfo ";
List<Map<String, Object>> list = jdbcUtils.findModeResult(sql2, null);
System.out.println(list);*/ //利用反射查询 单条记录
// String sql = "select * from userinfo where username = ? ";
// List<Object> params = new ArrayList<Object>();
// params.add("李四");
// UserInfo userInfo;
// try {
// userInfo = jdbcUtils.findSimpleRefResult(sql, params, UserInfo.class);
// System.out.print(userInfo);
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } String sql2 = "select * from student ";
List<Map<String, Object>> list = jdbcUtils.findModeResult(sql2, null);
System.out.println(list);
}
}

七、JsonUtil

package com.ebd.application.common.utils;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.Map; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.BooleanUtils; import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer; public class JsonUtil extends BaseController{ @SuppressWarnings("unused")
private HttpServletRequest request;
private HttpServletResponse response ; public JsonUtil(HttpServletRequest request, HttpServletResponse response) {
this.request = request;
this.response = response;
} /**
* ajax后台封装jsonString
* @param jsonStr
* @throws IOException
*/
public void sendJson(String jsonStr) throws IOException { response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print(jsonStr);
out.flush();
out.close();
} /**
* json字符串转成Java的Array数组
* @param json
* @param clazz
* @return
*/
@SuppressWarnings("rawtypes")
public static Object[] readJSON2Array(String json, Class clazz) {
JSONArray jsonArray = JSONArray.fromObject(json);
Object[] infoList = (Object[]) JSONArray.toArray(jsonArray, clazz);
return infoList;
} /**
* JSON字符串转成Java的List集合
* @param json
* @param clazz
* @return
*/
@SuppressWarnings({ "rawtypes", "deprecation" })
public static List<?> readJSON2List(String json, Class clazz) {
JSONArray jsonArray = JSONArray.fromObject(json);
List<?> infoList = JSONArray.toList(jsonArray, clazz);
return infoList;
} /**
* JSON对象反序列化成Java对象
* @param json
* @param clazz
* @return
*/
@SuppressWarnings("rawtypes")
public static Object readJSON2Bean(String json, Class clazz) {
JSONObject jsonObject = JSONObject.fromObject(json);
Object bean = JSONObject.toBean(jsonObject, clazz);
return bean;
} /**
* 生成json格式串
* @param bean
* @param isSeri
* @param isFix
* @return
*/
public static String writeBean2JSON(Object bean, boolean isSeri, boolean isFix) {
if (bean == null) {
return null;
}
String jsonStr = null;
if (BooleanUtils.isTrue(isSeri)) {
jsonStr = JSONSerializer.toJSON(bean).toString();
if (BooleanUtils.isTrue(isFix)) {
jsonStr = "[" + jsonStr + "]";
}
} else {
if (BooleanUtils.isTrue(isFix)) {
jsonStr = JSONArray.fromObject(bean).toString();
} else {
jsonStr = JSONObject.fromObject(bean).toString();
}
}
return jsonStr;
} /**
* List生成Json
* @param list
* @param isSeri
* @param isFix
* @return
*/
public static String writeList2JSON(List<?> list, boolean isSeri,
boolean isFix) {
if (list == null) {
return null;
}
String jsonStr = null;
if (BooleanUtils.isTrue(isSeri)) {// 需要序列化
jsonStr = JSONSerializer.toJSON(list).toString();
if (BooleanUtils.isTrue(isFix)) {
jsonStr = "[" + jsonStr + "]";
}
} else {
if (BooleanUtils.isTrue(isFix)) {
jsonStr = JSONArray.fromObject(list).toString();
} else {
jsonStr = JSONObject.fromObject(list).toString();
}
}
return jsonStr;
} /**
* Map生成Json
* @param map
* @param isSeri
* @param isFix
* @return
*/
public static String writeMap2JSON(Map<String, Object> map, boolean isSeri,
boolean isFix) {
String jsonStr = null;
if (BooleanUtils.isTrue(isSeri)) {// 序列化
jsonStr = JSONSerializer.toJSON(map).toString();
if (BooleanUtils.isTrue(isFix)) {
jsonStr = "[" + jsonStr + "]";
}
} else {
if (BooleanUtils.isTrue(isFix)) {
jsonStr = JSONArray.fromObject(map).toString();
} else {
jsonStr = JSONObject.fromObject(map).toString();
}
}
return jsonStr;
} /**
* Json串转为Bean
* @param json
* @param clazz
* @param subList
* @return
*/
@SuppressWarnings("rawtypes")
public static Object readJSON2Bean(String json, Class clazz, Map<String, Object> subList) {
JSONObject jsonObject = JSONObject.fromObject(json);
Object bean = JSONObject.toBean(jsonObject, clazz, subList);
return bean;
}
}

八、SpringUtils

package com.ebd.application.common.utils;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; public final class SpringUtils implements BeanFactoryPostProcessor { private static ConfigurableListableBeanFactory beanFactory; // Spring应用上下文环境 public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
SpringUtils.beanFactory = beanFactory;
} /**
* 获取对象
* @param name
* @return Object 一个以所给名字注册的bean的实例
* @throws org.springframework.beans.BeansException
*/
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) throws BeansException {
return (T) beanFactory.getBean(name);
} /**
* 获取类型为requiredType的对象
* @param clz
* @return
* @throws org.springframework.beans.BeansException
*
*/
public static <T> T getBean(Class<T> clz) throws BeansException {
T result = (T) beanFactory.getBean(clz);
return result;
} /**
* 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
*
* @param name
* @return boolean
*/
public static boolean containsBean(String name) {
return beanFactory.containsBean(name);
} /**
* 判断以给定名字注册的bean定义是一个singleton还是一个prototype。
* 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)
*
* @param name
* @return boolean
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
*
*/
public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
return beanFactory.isSingleton(name);
} /**
* @param name
* @return Class 注册对象的类型
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
*
*/
public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {
return beanFactory.getType(name);
} /**
* 如果给定的bean名字在bean定义中有别名,则返回这些别名
*
* @param name
* @return
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
*
*/
public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
return beanFactory.getAliases(name);
} }

  

Java_常用工具类收集的更多相关文章

  1. IOS开发--常用工具类收集整理(Objective-C)(持续更新)

    前言:整理和收集了IOS项目开发常用的工具类,最后也给出了源码下载链接. 这些可复用的工具,一定会给你实际项目开发工作锦上添花,会给你带来大大的工作效率. 重复造轮子的事情,除却自我多练习编码之外,就 ...

  2. js常用工具类.

    一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...

  3. Apache Commons 常用工具类整理

    其实一直都在使用常用工具类,只是从没去整理过,今天空了把一些常用的整理一下吧 怎么使用的一看就明白,另外还有注释,最后的使用pom引入的jar包 public class ApacheCommonsT ...

  4. Android 常用工具类之SPUtil,可以修改默认sp文件的路径

    参考: 1. 利用Java反射机制改变SharedPreferences存储路径    Singleton1900 2. Android快速开发系列 10个常用工具类 Hongyang import ...

  5. 封装一个简单好用的打印Log的工具类And快速开发系列 10个常用工具类

    快速开发系列 10个常用工具类 http://blog.csdn.net/lmj623565791/article/details/38965311 ------------------------- ...

  6. javaweb常用工具类及配置文件备份

    Javaweb常用工具类及配置文件备份   做一个代码备份,以后常用到的. hibernate工具类备份 package com.dly.service; /*  * hibernate获取sessi ...

  7. [C#] 常用工具类——直接在浏览器输出数据

    /// <summary> /// <para> </para> /// 常用工具类——直接在浏览器输出数据 /// <para> ---------- ...

  8. [C#] 常用工具类——加密解密类

    using System; using System.Configuration; using System.Collections.Generic; using System.Text; using ...

  9. C#常用工具类——Excel操作类

    /// 常用工具类——Excel操作类 /// <para> ------------------------------------------------</para> / ...

随机推荐

  1. java 学习------JDK1.8安装与配置

    1.下在JDK 1.8 2.解压安装 (一般选择默认路径安装) 3.配置环境变量     (我的电脑是windows10 系统) (1)计算机→属性→高级系统设置→高级→环境变量 (2)添加 JAVA ...

  2. python_第一章

    从今天开始,正式开始学习python书籍:python 编程:从入门到实践. 感兴趣的读者可以去网上搜索这本书,适合读者入门,读下来,不会有任何 晦涩难懂的知识. 1.排序: 正排:sort()    ...

  3. 4.5《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—第四章小结

    本章相关重要命令总结在Table 6. 命令 描述 示例 mkdir <name> 创建某目录 $ mkdir foo pwd 显示当前所在目录 $ pwd cd <dir> ...

  4. C# 获取电脑MAC地址,IP地址,物理内存,CPU序列号,硬盘ID..........................

    上班很忙,自己做个记录 代码如下: 需要引入:System.Management 代码如下: using System; using System.Collections.Generic; using ...

  5. Ubuntu16.04密码正确 进不去桌面系统(已测试恢复正常)

    遇到过两次ubuntu输入密码正确,但是进不去系统,输入密码后,跳转到一下界面 之后又返回到登陆界面,一直这样循环输入密码. Guest用户可以.   解决办法: 1.进入tty下           ...

  6. P1438 无聊的数列

    P1438 无聊的数列 链接 分析: 等差数列可加,首项相加,公差相加. 代码: #include<cstdio> #include<algorithm> #include&l ...

  7. [UWP 自定义控件]了解模板化控件(1):基础知识

    1.概述 UWP允许开发者通过两种方式创建自定义的控件:UserControl和TemplatedControl(模板化控件).这个主题主要讲述如何创建和理解模板化控件,目标是能理解模板化控件常见的知 ...

  8. 递归遍历对象获取value值

    let menu = { name: '一级菜单', data: { name: '二级菜单', data: { name: '三级菜单', data: { name: '四级菜单' } } } }; ...

  9. python-批量添加图片水印

    前言: 最近总是被无良公众号和培训机构拷贝文章,他们根本不会给你备注原文出处,这种行为真的让人不高兴,所以计划以后的文章都添加上自己的水印. 话不多说,直接上代码. 一.单张图片添加文字水印 # -* ...

  10. mariadb第二章-增删改

    MariaDB 数据类型 MariaDB数据类型可以分为数字,日期和时间以及字符串值. 使用数据类型的原则:够用就行, 尽量使用范围小的,而不用大的 常用的数据类型 整数:int, bit 小数:de ...