分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

JSP底层方法的封装

发布时间:2023-09-06 01:59责任编辑:顾先生关键词:暂无标签

之前在写JSP三层代码的时候,封装了一个BaseDao的工具类,包含executeQuery()方法、executeUpdate()方法。每个Dao层的方法都会把结果集进行再次的封装,为了减轻代码的冗余,就对这些方法进行的封装,并且根据模型直接返回一个结果集。

 ???public ?<T> List<T> ?findModelListBySqlAndParam(String sql,List<Object> param,T t) ?{ ???????//定义一个集合来存放需要转成的对象集合 ???????List<T> list=new ArrayList<T>(); ???????//获取当前类 ???????Class<?> c=t.getClass(); ???????//遍历结果集,封装成外界用户所需要的对象集合 ???????//1>获取结果集 ???????ResultSet rs=executeQuery(sql, param); ???????//2>开始遍历 ???????try { ???????????while(rs.next()){ ???????????????//初始化对象 ???????????????T obj= (T)c.newInstance(); ???????????????//获取当前类一共多少个属性啊 ???????????????Field[] fields=c.getDeclaredFields(); ???????????????for(Field f:fields){ ???????????????????//获取当前属性的属性名子 ???????????????????String fname=f.getName(); ???????????????????//获取当前的属性的类型(简称) ?java.lang.String ???????????????????String type=f.getType().getSimpleName(); ???????????????????//***************** ?取出来当前属性对应的数据库的值了 **************** ???????????????????Object value=null; ???????????????????if(type.equalsIgnoreCase("string")){ ???????????????????????value=rs.getString(fname); ???????????????????}else if(type.equalsIgnoreCase("int")){ ???????????????????????value=rs.getInt(fname); ???????????????????}else if(type.equalsIgnoreCase("Integer")){ ???????????????????????value=rs.getInt(fname); ???????????????????}else if(type.equalsIgnoreCase("Double")){ ???????????????????????value=rs.getDouble(fname); ???????????????????}else if(type.equalsIgnoreCase("Float")){ ???????????????????????value=rs.getFloat(fname); ???????????????????}else if(type.equalsIgnoreCase("date")){ ???????????????????????value=rs.getDate(fname); ???????????????????}else if(type.equalsIgnoreCase("long")){ ???????????????????????value=rs.getLong(fname); ???????????????????} ???????????????????//***************** ?将取出来当前属性的值设置给当前对象obj**************** ???????????????????//1>获取当前对象的所有set方法,并找到当前取出来的属性对应的set方法 ???????????????????Method[] methods=c.getDeclaredMethods(); ???????????????????for(Method m:methods){ ???????????????????????//获取当前方法名 ???????????????????????String methodName=m.getName(); ???????????????????????//判断是不是当前属性 ???????????????????????if(methodName.equalsIgnoreCase("set"+fname)){ ???????????????????????????//执行该方法 ???????????????????????????m.invoke(obj, value); ???????????????????????} ???????????????????} ???????????????} ???????????????list.add(obj); ???????????????????????????} ???????} ?catch (Exception e) { ???????????// TODO Auto-generated catch block ???????????e.printStackTrace(); ???????} ???????return list; ???}

JSP底层方法的封装

原文地址:https://www.cnblogs.com/1960366876tZ/p/9164776.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved