工具类

遍历提交表单取值

 1 package com.project.util;
 2
 3 import java.lang.reflect.Field;
 4 import java.sql.Date;
 5 import java.util.Enumeration;
 6 import javax.servlet.http.HttpServletRequest;
 7
 8 public class FullBean {
 9     public void fullBean(HttpServletRequest request,Object BeanObj){
10         //得到表单元素所有名称枚举
11         Enumeration<String> em=request.getParameterNames();
12         //遍历枚举
13         while (em.hasMoreElements()) {
14             //取出一个枚举元素
15             String formName=em.nextElement();
16             //通过枚举元素取值
17             String value=request.getParameter(formName);
18             try {
19                 //通过置顶属性名得到属性对象
20                 Field beanField=BeanObj.getClass().getDeclaredField(formName);
21                 //去掉访问修饰符
22                 beanField.setAccessible(true);
23                 //将BeanObj中指定的属性,设置value值(根据不同类型做转换)
24                 if (beanField.getType()==String.class) {
25                     beanField.set(BeanObj, value);
26                 }else if (beanField.getType()==int.class||beanField.getType()==Integer.class) {
27                     beanField.set(BeanObj, Integer.parseInt(value));
28                 }else if (beanField.getType()==double.class||beanField.getType()==Double.class) {
29                     beanField.set(BeanObj, Double.parseDouble(value));
30                 }else if (beanField.getType()==Date.class) {
31                     beanField.set(BeanObj, Date.valueOf(value));
32                 }else if (beanField.getType()==String[].class) {
33                     beanField.set(BeanObj, request.getParameterValues(formName));
34                 }
35             } catch (Exception e) {
36                 // TODO Auto-generated catch block
37                 e.printStackTrace();
38             }
39
40
41         }
42     }
43 }

表单文件提交

 1 package com.project.util;
 2
 3 import javax.servlet.http.HttpServletRequest;
 4 import javax.servlet.http.Part;
 5
 6 public class FileUploadUtil {
 7     public  String uploadUtil(HttpServletRequest request,String formName,String dirName) {
 8         String fieleName =null;
 9         try {
10             Part part = request.getPart(formName);
11             // 得到请求头,从而得到上传文件名称
12             String head = part.getHeader("Content-Disposition");
13             // 以时间毫秒数作为文件名,后缀不变,重命名上传文件名
14             fieleName = System.currentTimeMillis() + head.substring(head.lastIndexOf("."), head.length() - 1);
15             // 得到文件上传真实路径
16             String filePath = request.getServletContext().getRealPath("/"+dirName+"/" + fieleName);
17             // 将上传文件数据写入真实路径
18             part.write(filePath);
19         } catch (Exception e) {
20             // TODO Auto-generated catch block
21             e.printStackTrace();
22         }
23         return fieleName;
24     }
25 }

过滤器修改编码集

 1 package com.project.util;
 2
 3 import java.io.IOException;
 4
 5 import javax.servlet.Filter;
 6 import javax.servlet.FilterChain;
 7 import javax.servlet.FilterConfig;
 8 import javax.servlet.ServletException;
 9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11 import javax.servlet.annotation.WebFilter;
12
13 @WebFilter("/*")
14 public class CharFileter implements Filter{
15
16     @Override
17     public void destroy() {
18         // TODO Auto-generated method stub
19
20     }
21
22     @Override
23     public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
24             throws IOException, ServletException {
25
26         arg0.setCharacterEncoding("utf-8");
27         arg1.setContentType("text/html;charset=utf-8");
28         arg2.doFilter(arg0, arg1);
29
30     }
31
32     @Override
33     public void init(FilterConfig arg0) throws ServletException {
34         // TODO Auto-generated method stub
35
36     }
37
38 }

日期转换

package com.project.util;

import java.sql.Date;

/**
 * 日期转换工具类
 * @author Administrator
 *
 */
public class DateChange {

    public static Date getDate(String str){
        if (str!=null&&str.matches("\\d{4}-\\d{1,2}-\\d{1,2}")) {
            return Date.valueOf(str);
        }
        return null;
    }
}

数据库持久层

  1 package com.project.dao;
  2
  3 import java.lang.reflect.Field;
  4 import java.sql.Connection;
  5 import java.sql.DriverManager;
  6 import java.sql.PreparedStatement;
  7 import java.sql.ResultSet;
  8 import java.sql.ResultSetMetaData;
  9 import java.sql.SQLException;
 10 import java.util.ArrayList;
 11 import java.util.List;
 12
 13 import com.project.bean.UserBean;
 14 import com.sun.org.apache.bcel.internal.generic.AALOAD;
 15
 16 /**
 17  * 数据库持久接口
 18  *
 19  * @author Administrator
 20  *
 21  */
 22 public class BaseDao {
 23
 24     // 链接对象
 25     protected Connection con;
 26     // sql执行对象
 27     protected PreparedStatement ps;
 28     // 返回结果集对象
 29     protected ResultSet rs;
 30
 31     /**
 32      * 得到链接
 33      */
 34     public void setConnection() {
 35         try {
 36             Class.forName("com.mysql.jdbc.Driver");
 37             con = DriverManager.getConnection("jdbc:mysql://localhost:3306/shop?characterEncoding=utf-8", "root",
 38                     "jbl5201314");
 39         } catch (Exception e) {
 40             // TODO Auto-generated catch block
 41             e.printStackTrace();
 42         }
 43     }
 44
 45     /**
 46      * 关闭链接
 47      */
 48     public void closeConnection() {
 49         try {
 50             if (rs != null) {
 51                 rs.close();
 52             }
 53             if (ps != null) {
 54                 ps.close();
 55             }
 56             if (con != null) {
 57                 con.close();
 58             }
 59         } catch (Exception e) {
 60             // TODO Auto-generated catch block
 61             e.printStackTrace();
 62         }
 63     }
 64
 65     /**
 66      * 增删改
 67      *
 68      * @param sql 执行sql语句
 69      * @param vlaueArry 占位符数组
 70      */
 71     public void updateDb(String sql, Object[] vlaueArry) {
 72         this.setConnection();
 73         try {
 74             ps = con.prepareStatement(sql);
 75             //循环设置占位符
 76             for (int i = 0; i < vlaueArry.length; i++) {
 77                 ps.setObject(i + 1, vlaueArry[i]);
 78             }
 79             ps.executeUpdate();
 80         } catch (SQLException e) {
 81             e.printStackTrace();
 82         } finally {
 83             this.closeConnection();
 84         }
 85     }
 86
 87     /**
 88      * 查询
 89      *
 90      * @param sql 执行sql语句
 91      * @param vlaueArry 占位符数组
 92      * @return 返回结果集
 93      */
 94     public List selUser(String sql, Object[] valueArry, Class beanClass) {
 95         this.setConnection();
 96         List list=new ArrayList();
 97         try {
 98             ps = con.prepareStatement(sql);
 99             //循环设置占位符
100             if (valueArry.length != 0) {
101                 for (int i = 0; i < valueArry.length; i++) {
102                     ps.setObject(i + 1, valueArry[i]);
103                 }
104             }
105             rs = ps.executeQuery();
106             //得到结果集审视
107             ResultSetMetaData sm=rs.getMetaData();
108             //得到结果集列数
109             int columCount=sm.getColumnCount();
110             while (rs.next()) {
111                 // 每次循环,调用无参构造方法,产生实体类对象
112                 Object beanObj = beanClass.newInstance();
113                 for (int i = 1; i <= columCount; i++) {
114                     //循环取出查询列列名
115                     String columName=sm.getColumnName(i);
116                     //根据列名得到结果集所对应的值
117                     Object value=rs.getObject(columName);
118                     //得到属性名对应的属性对象
119                     Field f=beanClass.getDeclaredField(columName);
120                     f.setAccessible(true);
121                     f.set(beanObj, value);
122                 }
123                 list.add(beanObj);
124             }
125         } catch (Exception e) {
126             e.printStackTrace();
127         }finally {
128             this.closeConnection();
129         }
130         return list;
131     }
132 }
时间: 2024-10-25 05:05:23

工具类的相关文章

Arrays工具类

Arraysd的静态方法能够方便的对数组进行操作,每个方法也加了注释 : 程序: import java.util.*;public class Array{        public static void main(String[] args){                int[]  arr={1,3,4,2};                System.out.println("排序前:");                printArray(arr);//打印原数组

常用工具类(System,Runtime,Date,Calendar,Math)

一.Sy 一个java.lang包中的静态工具类. 三大字段: static PrintStream err "标准"错误输出流. static InputStream in "标准"输入流. static PrintStream out "标准"输出流. 其他常用方法: 描述系统信息: 获取系统属性信息: static Properties getProperties(): (Properties是Hashtable的子类,也就是Map 的子类

iOS 中的正则匹配(工具类)

正则表达式 正则表达式是对字符串操作的一种逻辑公式, 用事先定义好的一些特定字符.及这些特定字符的组合, 组成一个"规则字符串", 这个"规则字符串"用来表达对字符串的一种过滤逻辑, 正则表达式就是用于描述这些规则的工具, 或者说, 正则表达式就是记录文本规则的代码. 在开发中, 我们经常会有查找符合某些复杂规则的字符串的需要, 比如数据校验: 判断用户的输入是否合法(如:用户注册的时候,QQ号码,电话号码,邮箱是否符合要求) 下面让我们先来看看正则匹配常用的一些字

(九十五)音效播放方法和工具类的制作

音效通过AVFoundation框架实现,是通过函数而不是方法,因此需要进行桥接等操作,具体步骤如下. 进行音效播放,首先要得到音效的URL(只能是本地音频),然后转换为音效ID(唯一),通过ID播放音效. [音效播放方法] ①导入框架主头文件 #import <AVFoundation/AVFoundation.h> ②通过Bundle拿到本地音效,然后调用AudioServicesCreateSystemSoundID函数得到音效ID,ID为0代表无效,以此为依据可进行懒加载 @inter

spring endpoint工具类

工具类代码 @Controller public class EndpointDocController {     private final RequestMappingHandlerMapping handlerMapping;     @Autowired     public EndpointDocController(RequestMappingHandlerMapping handlerMapping) {         this.handlerMapping = handler

web常用的工具类总结

数据库的链接的操作类 package utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DBConnection { private static final String DBDRIVER = "com.m

字符串工具类(指定字符串的长度和判断是否为空等方法)

package com.sec.util; /** * 字符串工具类 * @author Administrator * */public class StringUtil { /** * 过滤<,>,\n 字符串的方法 * @param input * @return */ public static String filterHTML(String input){ if(input == null || input.length() == 0){ return input; } input

java并发的艺术-读书笔记-第八章常用的并发工具类

jdk中提供了几个非常有用的工具类,分别是CountDownLatch,CyclicBarrier和semaphore exchanger CountDownLatch:允许一个或者多个线程等待其他线程完成操作 public class CountDownLatchTest{ static CountDownLatch c = new CountDownLatch(2); public static void main(String[] args){ new Thread(new Runnabl

java分页的实现(后台工具类和前台jsp页面)

1.首先,新建一个类Page.java 1 public class Page implements Serializable { 2 private static final long serialVersionUID = -3198048449643774660L; 3 private int pageNow = 1; // 当前页数 4 private int pageSize = 10; // 每页显示记录的条数 5 private int totalCount; // 总记录条数 6

【Android 工具类】经常使用工具类(方法)大全

收集经常使用的工具类或者方法: 1.获取手机分辨率 /** * 获取手机分辨率 */ public static String getDisplayMetrix(Context context) { if (Constant.Screen.SCREEN_WIDTH == 0 || Constant.Screen.SCREEN_HEIGHT == 0) { if (context != null) { int width = 0; int height = 0; SharedPreferences