一个通用查询(原创)

java 代码
  1. package com.abc.www;   
  2.   
  3. import java.lang.reflect.InvocationTargetException;   
  4. import java.lang.reflect.Method;   
  5. import java.sql.*;   
  6. import java.util.ArrayList;   
  7.   
  8. public class NewTestReflect {   
  9.   
  10. public static void main(String[] args) throws Exception {   
  11.    NewTestReflect newtestreflect=new NewTestReflect();   
  12.    newtestreflect.select("select * from test""com.tangshun.www.Person");   
  13. }   
  14.   
  15. private static String getSetMethodName(String columnName) {   
  16.    return "set" + columnName.substring(01).toUpperCase()   
  17.      + columnName.toLowerCase().substring(1);   
  18. }   
  19.   
  20. /**  
  21.    * 需要提供sql语句,以及操作数据库表对应的类名字(包括包名)  
  22.    * 如:select * from test;则类名字应该是   包.Test  
  23.    * Test.java是一个简单的pojo,对数据库里面的字段只有相应的set get方法  
  24.    * 如果有必要,可以增加其他相关的构造方法等  
  25.    * @param sql  
  26.    * @param className  
  27.    * @return ArrayList  
  28.    */  
  29. public ArrayList select(String sql, String className) {   
  30.    Connection connection = null;   
  31.    PreparedStatement stmt = null;   
  32.    ResultSet rs = null;   
  33.    ArrayList paraList = new ArrayList();   
  34.    try {   
  35.     Class.forName("com.mysql.jdbc.Driver");   
  36.     connection = DriverManager.getConnection(   
  37.       "jdbc:mysql://localhost/test""root""123456");   
  38.     stmt = connection.prepareStatement(sql);   
  39.     rs = stmt.executeQuery();   
  40.     Object c1 = null;   
  41.     ResultSetMetaData rsmd = rs.getMetaData();//获得元数据   
  42.     int columnCount = rsmd.getColumnCount();//获得查询的列数个数   
  43.     while (rs.next()) {   
  44.      c1 = Class.forName(className).newInstance();//根据String型的类名,得到一个Object   
  45.      for (int i = 1; i <= columnCount; i++) {//循环设置该类的set方法的相关属性   
  46.       Method m = c1.getClass().getMethod(   
  47.         getSetMethodName(rsmd.getColumnName(i)),   
  48.         Class.forName(rsmd.getColumnClassName(i)));//获得方法   
  49.       m.invoke(c1, rs.getObject(rsmd.getColumnName(i)));//设置set,此处用ResultSet.getObject(String s)方法   
  50.      }   
  51.      paraList.add(c1);//增加到List中   
  52.     }   
  53.     Person p = (Person) paraList.get(0);   
  54.     System.out.println(p.getName());   
  55.   
  56.    } catch (SQLException ex) {   
  57.     ex.printStackTrace();   
  58.    } catch (ClassNotFoundException e) {   
  59.     e.printStackTrace();   
  60.    } catch (NoSuchMethodException e) {   
  61.     e.printStackTrace();   
  62.    } catch (InvocationTargetException e) {   
  63.     e.printStackTrace();   
  64.    } catch (IllegalAccessException e) {   
  65.     e.printStackTrace();   
  66.    } catch (InstantiationException e) {   
  67.     e.printStackTrace();   
  68.    } finally {   
  69.     try {   
  70.      rs.close();   
  71.      rs = null;   
  72.     } catch (Exception ex) {   
  73.     }   
  74.     try {   
  75.      stmt.close();   
  76.      stmt = null;   
  77.     } catch (Exception ex) {   
  78.     }   
  79.    }   
  80.    try {   
  81.     connection.close();   
  82.     connection = null;   
  83.    } catch (Exception ex) {   
  84.    }   
  85.   
  86.    return paraList;   
  87. }   
  88.   
  89.   
  90. }   
  91.   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值