`
xgbjmxn
  • 浏览: 270691 次
  • 性别: Icon_minigender_1
  • 来自: 新乡
社区版块
存档分类
最新评论

利用反射和泛型让JDBC编程方便点

阅读更多
利用反射和泛型让JDBC编程方便点

一直以来使用JDBC编程的时候,最让人心烦的就是当表的字段很多的时候,我们总是要调用大量的rs的get方法和表对应的类中的set方法来获取一个对象,于是写了方法,让这个过程不用再自己手动写了

该方法经过测试,对基本数据类型,String类型,java.util.Date类型都没问题,另外要说明的是数据库中的字段名需要是属性名的全小写

    /**
     * 通过ResultSet构建一个指定类型的对象
     *
     * @param <T>
     * @param clazz
     * @param rs
     * @return
     */
    private <T> T buildObject(Class<T> clazz, ResultSet rs) {
        if (rs == null) {
            return null;
        }
        T object = null;
        try {
            // 通过默认构造方法创建一个新的对象
            object = clazz.getConstructor(new Class[] {}).newInstance(new Object[] {});
            // 获得对象的所有属性
            Field[] fields = clazz.getDeclaredFields();
            for (int i = 0; i < fields.length; i++) {
                // 获取属性名称
                String fieldName = fields.getName();
                // 获取属性名称的首字母,并将该字母转为大写形式
                String firstLetter = fieldName.substring(0, 1).toUpperCase();
                // 获得和属性对应的setXXX()方法的名字
                String setMethodName = "set" + firstLetter + fieldName.substring(1);
                // 获得和属性对应的setXXX()方法
                Method setMethod = clazz.getMethod(setMethodName, new Class[] { fields.getType() });
                // 调用目标对象的setXXX()方法对其属性赋值
                setMethod.invoke(object, new Object[] { rs.getObject(fieldName.toLowerCase()) });
            }
        } catch (Exception e) {
            e.printStackTrace();
            object = null;
        }
        return object;
    }

分享到:
评论

相关推荐

    泛型封装JDBC

    下面是一个简单的泛型JDBC查询方法的示例: ```java public &lt;T&gt; List&lt;T&gt; executeQuery(String sql, Object[] params, Class&lt;T&gt; clazz) { // 连接数据库,执行SQL,获取ResultSet ResultSet resultSet = ...

    java 基于泛型与反射的通用 DAO

    在Java编程语言中,泛型和反射是两个非常重要的特性,它们可以极大地提高代码的复用性和灵活性。本文将深入探讨如何结合这两种技术实现一个通用的DAO(Data Access Object)设计模式。 首先,我们来看“泛型”。...

    java,反射+注释+泛型+jdbc mysql练习项目代码

    Java反射机制是Java编程...这个练习项目将帮助学习者深入理解如何结合使用反射、注释、泛型和JDBC来处理实际的数据库操作,提升Java编程技能。通过实际编写和运行代码,可以更好地掌握这些概念,并提高问题解决能力。

    反射泛型完美版分页.rar

    在Java编程语言中,反射和泛型是两个非常重要的特性,它们在开发复杂和灵活的应用程序时发挥着关键作用。本资源"反射泛型完美版分页.rar"似乎提供了一个结合了这两种特性的分页解决方案,特别适用于处理大量数据的...

    Java JDBC简单入门之枚举(Enum)、泛型、反射、JDBC整合

    通过以上知识点,你可以构建一个基础的Java JDBC应用,结合枚举增强代码的可读性,利用泛型提高代码复用,运用反射简化数据操作,整合JDBC实现与数据库的高效交互。在实际项目中,还可以考虑使用ORM框架如Hibernate...

    JAVA反射机制和JDBC和各种数据库的连接

    Java反射机制是Java编程语言中的一个强大工具,它允许程序在运行时检查和操作类、接口、对象等的内部结构。通过反射,开发者可以动态地创建对象、调用方法、访问字段,甚至修改私有成员,这极大地增强了代码的灵活性...

    基于泛型反射的数据层封装+MSSQLJDBC3.0驱动

    总结来说,这个案例展示了如何结合Java的泛型和反射机制来实现高效、灵活的数据层封装,同时利用MSSQL JDBC 3.0驱动来与SQL Server数据库进行通信。这样的设计有助于简化数据库操作,提高代码的可扩展性和维护性,...

    基于泛型与反射的万能数据库操作代码

    在Java编程语言中,泛型和反射是两个非常重要的特性,它们在开发高效、灵活的代码中发挥着关键作用。本篇文章将详细讲解如何利用泛型与反射来创建一个万能的数据库操作代码,如同标题所示,这可以极大提高代码的复用...

    利用java反射、注解及泛型模拟ORM实现

    在Java编程中,反射、注解(Annotation)和泛型是三个非常重要的特性,它们各自在不同的场景下发挥着关键作用。这篇博文“利用java反射、注解及泛型模拟ORM实现”旨在探讨如何结合这三种技术来实现对象关系映射(ORM...

    JDBC编程 J275练习题、Java基础知识

    在SL275.doc和JDBC编程.ppt中可能包含了JDBC的具体练习题和解决方案,Java275.ppt和J2SE 5.0中的新特性.ppt则可能详细介绍了Java基础知识和Java 5.0版本的更新内容。通过学习这些资料,开发者可以深入理解JDBC编程,...

    JAVA反射机制原理剖析配经典例子,以及模拟DBUTIL发射实现的JDBC操作包自己写的一个DEMO.★

    模拟DBUTIL的实现可以让你更深入理解反射机制如何在实际场景中应用,通过这种方式,你可以动态地调用JDBC接口,使得代码更具通用性和灵活性。 总之,Java反射机制为程序员提供了运行时的类信息访问和动态操作能力,...

    Java编程习题与解答(pdg版)

    这个pdg版的习题集很可能包含了各种类型的题目,包括但不限于基础语法、类与对象、接口、多线程、异常处理、集合框架、输入/输出流、网络编程、反射、泛型、JDBC数据库操作等Java核心概念和应用。 1. **基础语法**...

    java复习题,jdbc,DAO模式,oracle复习题

    这些知识点的结合,意味着你可能需要编写能够使用JDBC与Oracle数据库进行交互的Java程序,同时运用DAO模式来实现数据访问的抽象和隔离。这样的复习涵盖了编程、数据库和设计模式等多个层面,对于提升你的IT技能...

    java编程思想第四版源代码.7z

    《Java编程思想》是 Bruce Eckel 的经典著作,第四版更是深入浅出地介绍了Java语言的核心概念和技术。这个压缩包包含的源代码是书中的示例程序,它们旨在帮助读者理解书中阐述的各种编程原理和实践。通过分析这些源...

    Java课后编程练习题答案

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而著名。在学习Java的过程中,编程练习是巩固知识、提升技能的关键环节。"Java课后编程练习题答案"提供了对这些练习题的解答,帮助学习者...

    java实效编程百例

    学习如何设计和实现类,理解对象之间的关系,以及如何利用多态性提高代码的灵活性和可复用性,是Java编程的基础。 2. **异常处理**:Java提供了强大的异常处理机制,如try-catch-finally语句块,用于捕获和处理运行...

    java编程思想thinking in java

    以上只是《Java编程思想》中部分核心知识点的概述,实际书籍中涉及的内容更为丰富,包括网络编程、数据库连接、GUI编程、Swing、JDBC、设计模式等多个方面,是一本全面而深入的Java学习指南。通过阅读和实践书中的...

    JAVA 应用编程150例

    最后,本书可能还会涉及异常处理、反射机制、泛型、注解以及JAVA EE的相关技术,如Servlet、JSP和JDBC等,这些都是企业级JAVA开发中的常用技能。 通过《JAVA应用编程150例》,读者不仅可以学习到JAVA编程的基本语法...

    java编程百例

    13. **泛型**:泛型引入了类型参数,增强了代码的类型安全性和复用性,实例会展示泛型类、泛型接口和泛型方法的使用。 通过这100个Java编程实例,学习者可以深入理解Java的各个方面,并在实践中不断提升编程能力。...

    Java高级编程(JDK6版)原书代码

    9. **网络编程**:Java的Socket和ServerSocket类提供了网络通信的能力,而URL和URLConnection类则方便了网络资源的访问。 10. **国际化**:Java的国际化支持包括ResourceBundle和Locale类,用于处理不同地区的语言...

Global site tag (gtag.js) - Google Analytics