`
汉唐铁骑破虏用刀
  • 浏览: 32640 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

实用JDBC数据库查询封装

阅读更多
很实用的封装,适用于仅使用JDBC操作数据库的时候。查询数据库后直接封装javabean对象到集合中,免去了繁琐的迭代每条记录然后逐个取字段封装javaBean.

  当然是存在很多的不方便的地方的,比如数据库字段名和javabean属性名需要一致的情况下才能被封装到javabean中, 以下代码中也还缺少判断javabean中的属性是否对应在数据库查询中存在, 但是这个看看API就可以当场搞定的事情。不再废话

 public static List queryList(String preSql, String className,
            Connection con, int offset, int pagelength) throws PortalException
    {        
        List beanbasket = new ArrayList();
        String[] columns = null;        
        if (con == null)
        {
            con = getConnection();
        }
        //查询出的结果集
        ResultSet rs = null;
        PreparedStatement pstmt = null;
        try
        {
            pstmt = con.prepareStatement(preSql);
            if (pagelength != 0)
            {
                int endnum = offset+pagelength;
                int stratnum = offset+1;
                pstmt.setInt(1, endnum); 
                pstmt.setInt(2, stratnum); 
            }
            LogFactory.debug("will query the data!!");
            rs = pstmt.executeQuery();
            LogFactory.debug("query the data success!!!");
            
            ResultSetMetaData metedata = rs.getMetaData();
            //获取查询出的字段总数
			int i = metedata.getColumnCount();
			//获取数据库表中所有的字段名
			columns = new String[i];
			for (int j = 1; j < i+1; j++) 
			{ 
				columns[j-1] = metedata.getColumnName(j);
			}
            
            Class clazz = Class.forName(className);
            Field[] fields = clazz.getDeclaredFields();
            
            LogFactory.debug("the fields length is:"
                    + fields.length);

            while (rs.next())
            {

                Object obj = clazz.newInstance();

                for (Field f : fields)
                {	
                	//如果该字段在数据库中有存储
                	if(isContainField(f.getName(),columns)){
                		
	                    f.setAccessible(true);
	                    String strType = f.getType().toString();
	
	                    if (strType.indexOf("Long") != -1)
	                    {
	                        f.set(obj, rs.getLong(f.getName()));
	                    }
	                    else if (strType.indexOf("Integer") != -1
	                            || strType.indexOf("int") != -1)
	                    {
	                        f.set(obj, rs.getInt(f.getName()));
	                    }
	                    else if (strType.indexOf("String") != -1)
	                    {
	 	                       String s = rs.getString(f.getName());
	                       if(s!=null&&!s.equals("null"))
	                       { 
	                           s =s.trim();
	                       }
	                       else
	                       {
	                           s = "";
	                       }
	                       f.set(obj, s);
	                    }
	                    else if (strType.indexOf("Date") != -1)
	                    {
	                        f.set(obj, rs.getDate(f.getName()));
	                    }
	                    else if (strType.indexOf("Double") != -1)
	                    {
	                        f.set(obj, rs.getDouble(f.getName()));
	                    }
	                    else if (strType.indexOf("Float") != -1)
	                    {
	                        f.set(obj, rs.getFloat(f.getName()));
	                    }
	                    else
	                    {
	                        LogFactory.debug(
	                                 "this data type not support yet!");
	                        LogFactory.debug("this date type is"
	                                + f.getName());
	                       	                    }
                	
                }
                beanbasket.add(obj);
            }
        }
              catch (Exception ex)
        {
        }
        
        LogFactory.info("Exit DBProxy.querylist()");
        return beanbasket;
    }

分享到:
评论

相关推荐

    JDBC链接Oracle数据库增删改查通用工具类

    标题中的“JDBC链接Oracle数据库增删改查通用工具类”指的是一个Java编程中的实用工具类,它封装了与Oracle数据库交互的JDBC操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select)这四种基本...

    Oracle数据库连接封装类

    总的来说,Oracle数据库连接封装类是Java开发中一个实用的工具,它简化了与Oracle数据库的交互,让开发者能更专注于业务逻辑,而不是数据库操作的细节。在学习和使用时,理解JDBC的基本原理以及封装类的设计思路,将...

    Java数据库操作封装类

    在"Java Database Utils"这个标签下,我们可以理解到这个封装类主要服务于Java环境下的数据库操作,提供实用工具函数,使得开发者无需深入了解底层的JDBC操作,就能高效地完成数据库相关的工作。 至于"repositories...

    对jdbc的封装的总结

    在IT行业中,JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。本文将深入探讨对JDBC的封装,旨在提高数据库操作的效率、...

    jdbc封装包

    综上,JDBC封装包是一个实用的工具,它简化了数据库操作流程,提高了开发效率,并且通过良好的封装,降低了出错的可能性。使用时,只需根据自己的数据库配置进行适当的参数修改,即可快速地进行数据库操作。

    java增删改查JDBC封装类(泛型封装)

    - JDBC是Java中连接数据库的标准接口,它提供了连接、查询、更新数据库的一系列方法。 - 基本步骤包括:加载驱动、建立连接、创建Statement或PreparedStatement对象、执行SQL、处理结果集、关闭资源。 2. **泛型*...

    java JDBC 连接sql server封装

    在本主题中,我们将深入探讨如何使用Java JDBC来封装对SQL Server数据库的连接,从而创建一个实用工具类(Util类),提高代码的复用性和可维护性。 首先,确保你的项目已经引入了适用于SQL Server的JDBC驱动,如...

    自己封装的JDBC

    “工具”可能指的是这个封装的JDBC可以作为项目开发的一个实用工具。 由于没有提供具体的压缩包文件内容,无法进一步分析其内部实现。但根据提供的信息,我们可以理解这个压缩包可能包含了一个自定义的JDBC封装库的...

    封装各种数据库操作JAR

    总结来说,"封装各种数据库操作JAR"是一个非常实用的工具,它提供了一个统一的接口来处理多种数据库系统,简化了开发过程,增强了代码的可维护性和扩展性。对于需要与多个数据库平台交互的应用来说,这是一个不可或...

    基于JDBC的最好用数据库访问类

    总的来说,"基于JDBC的最好用数据库访问类"是Java开发中一个实用的工具,它通过提供高层抽象,简化了数据库操作,提升了开发效率和代码质量。对于初学者而言,理解并掌握此类的使用,有助于更好地理解和运用JDBC,而...

    自己写的java对数据库操作的功能一个简单封装

    这个“自己写的java对数据库操作的功能一个简单封装”旨在提供一个基础且实用的工具集,方便开发者执行常见的数据库交互任务,如连接、查询、以及更新和删除数据。 首先,让我们详细探讨数据库连接。在Java中,我们...

    JDBC简单封装类

    在这个"JDBC简单封装类"中,我们可以预期找到一种方法来简化这些常见的数据库操作。 首先,让我们详细了解一下JDBC的基本步骤: 1. **加载驱动**:通过`Class.forName()`方法加载数据库驱动,使Java应用程序能够与...

    类似hibernate的jdbc封装

    然而,有些场景下,我们可能并不需要完整的ORM功能,而是寻求一个轻量级的解决方案,这时,对JDBC进行简单的封装就显得非常实用。标题提到的"类似hibernate的jdbc封装"就是这样的一个实践,它试图在不引入庞大框架的...

    自己封装的小框架--JDBC封装 Action层封装 手动事务管理

    本项目中,"自己封装的小框架--JDBC封装 Action层封装 手动事务管理"是一个实用的实践案例,旨在提高开发效率,优化代码结构,并确保数据操作的完整性。下面我们将深入探讨这个框架中的主要组成部分及其相关知识点。...

    JDBC实现纵向导出数据库数据

    此外,HappyUtility可能是一个工具类,它封装了上述JDBC操作,提供更便捷的接口供其他代码调用。 如果你对JDBC操作不熟悉,可以通过阅读相关文档或者参考`HappyUtility`的源码来学习。对于大型项目,你还可以考虑...

    JDBC_DBUtils查询操作处理

    总结来说,"JDBC_DBUtils查询操作处理"这个主题涵盖的是使用Java的DBUtils库来简化JDBC数据库查询的流程,包括DBUtils的介绍、核心功能、查询操作的步骤以及相关代码示例。通过学习和应用这些知识点,开发者可以更...

    JDBC连接MySQL例子

    综上所述,这个例子不仅展示了JDBC基础的数据库连接过程,还涉及了配置文件的使用以及大文本和图片数据的处理,是学习JDBC与MySQL交互的一个实用教程。对于初学者来说,理解并实践这个例子有助于提升数据库操作的...

    使用JSP+SERVLET+JDBC实现对数据库的增删改查

    3. **JDBC(Java Database Connectivity)**:JDBC是Java平台用于访问数据库的标准API,它提供了一种统一的方式来连接、查询和操作各种关系型数据库。DBUtil类通常用于封装数据库连接、预编译SQL语句和执行SQL操作等...

    jdbc mysq 封装

    在给定的"jdbc mysql 封装"主题中,我们主要讨论的是如何在Java项目中创建一个简洁而实用的MySQL数据库操作类,以便于进行数据的增删改查操作。 首先,我们需要导入JDBC相关的jar包,这通常包括`mysql-connector-...

    JDBC实用技术.pdf

    - ResultSet:用于封装查询的结果集。 要通过JDBC连接Oracle数据库,可以使用不同的连接URL格式,例如使用oci或thin协议: - jdbc:oracle:oci:@ip:1521:sid - jdbc:oracle:thin:@ip:1521:sid 在编写Java应用程序...

Global site tag (gtag.js) - Google Analytics