博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP底层方法的封装
阅读量:5235 次
发布时间:2019-06-14

本文共 2674 字,大约阅读时间需要 8 分钟。

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

public  
List
findModelListBySqlAndParam(String sql,List
param,T t) { //定义一个集合来存放需要转成的对象集合 List
list=new ArrayList
(); //获取当前类 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; }

 

转载于:https://www.cnblogs.com/1960366876tZ/p/9164776.html

你可能感兴趣的文章
Android 导航(介绍)页面ViewPager内存溢出解决方法
查看>>
检测php网站是否已经被攻破的方法
查看>>
经验总结 - 20111115
查看>>
(servlet页面跳转没有反应)
查看>>
JDK安装与环境变量配置
查看>>
【动态规划】skiing
查看>>
USB2.0的鸡血补丁
查看>>
java定时器的使用(Timer)
查看>>
Cocos2d-x官方在线视频-Cocos2d-x3.2《2048》手游开发揭秘
查看>>
转载---SQL Server XML基础学习之<7>--XML modify() 方法对 XML 数据中插入、更新或删除...
查看>>
[转载]马士兵Java视频教程 —— 学习顺序
查看>>
合唱队(华为OJ)
查看>>
Reverse Words in a String III
查看>>
静态页面复习--用semantic UI+网格+卡片实现图片布局
查看>>
数据库交互之减少IO次数
查看>>
8天玩转并行开发——第一天 Parallel的使用
查看>>
Http通讯协议在.net下的实现方法
查看>>
leaflet与ECharts的统计图表
查看>>
print横向打印数据
查看>>
mq_overview(7)
查看>>