`

SQL查询数据封装JavaBean对象

阅读更多
SQL查询数据封装JavaBean对象
分类: JAVA J2EE 2013-06-17 14:03 548人阅读 评论(0) 收藏 举报
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;



public static List getListBySql(String sql, Class cls){
  List list = new ArrayList();
  Connection connection =null;
  Statement stmt =null;
  ResultSet rs =null;
  try {
   connection = getConnection();
   stmt = connection.createStatement();
   rs = stmt.executeQuery(sql);
   while (rs.next()) {
    Object obj = getObject(rs, cls);
    list.add(obj);
   }
  }catch (Exception e) {
   e.printStackTrace();
   String sWord = " sql:" + sql;
   sWord += " 错误信息:" + e.getLocalizedMessage();
   PayMd5Utils.logResult(logpath,sWord);
   throw new RuntimeException("#执行出错:"+e.getLocalizedMessage());
  }finally{
   closeResultSet(rs);
   closeStatement(stmt);
   closeConnection(connection);
  }
  return list;
}
private static Object getObject(ResultSet rs, Class cls) throws SQLException, IllegalArgumentException, IllegalAccessException, InstantiationException {
  Object object = null;
  Field[] fields = cls.getDeclaredFields();
  ResultSetMetaData metaData = rs.getMetaData();
  int columnCount = metaData.getColumnCount();
  for (int i = 1; i <= columnCount; i++) {
   String columnName = metaData.getColumnName(i);
   Field field = getField(fields, columnName);
   if (field != null) {
    if (object==null) {
     object=cls.newInstance();
    }
    field.setAccessible(true);
    Object value = rs.getObject(field.getName());
    setFieldValue(object, value, field);
   }
  }
  return object;
}
private static Field getField(Field[] fields, String columnName) {
  for (Field field : fields) {
   if (columnName.toUpperCase().equals(field.getName().toUpperCase())) {
    return field;
   }
  }
  return null;
}
private static void setFieldValue(Object obj, Object value, Field field)
   throws IllegalArgumentException, IllegalAccessException {
  if (value == null) {
   return;
  }
  if (field.getType() == Long.class) {
   field.set(obj, StringUtil.toLong(value));
  } else if (field.getType() == Double.class) {
   field.set(obj, StringUtil.toDouble(value));
  } else if (field.getType() == Integer.class) {
   field.set(obj, StringUtil.toInteger(value));
  } else if (field.getType() == Date.class) {
   field.set(obj, new Date());
  } else {
   field.set(obj, StringUtil.toString(value));
  }
}
分享到:
评论

相关推荐

    将数据库操作封装到Javabean

    JavaBean作为一种常见的Java对象模型,可以用来封装数据及对数据的操作,特别适用于Web应用程序中的数据处理。 #### 二、JavaBean简介 JavaBean是一种Java类,用于封装数据和方法。它们遵循特定的命名约定,并且...

    解析sql文件并且生成Javabean的工具类

    这个标题涉及到的是一个编程工具,它能够处理SQL文件并根据其中的数据结构生成对应的JavaBean对象。在软件开发中,尤其是涉及到数据库操作时,这样的工具能显著提高开发效率。SQL文件通常包含数据库的创建语句、插入...

    jsp+javabean 学生管理系统 sql数据库

    JavaBean是符合JavaBeans规范的Java类,通常用于封装数据和业务逻辑。在这个学生管理系统中,JavaBean可能包含了学生对象的属性(如姓名、学号、班级等)和相关的方法(如获取、设置属性,添加、删除、更新学生信息...

    JavaBean封装MySQL数据库操作(学习版)

    我学习过程中自己参考书本写的,注释详细,我也自己写了使用说明放在里面,...你要是要学javabean,还想知道javabean怎么封装数据库,这个最好不过了. 数据库的链接你得改下用户名,密码之类东西,你打开.java文件就会看懂的.

    用JavaBean编写SQL Server数据库连接类

    本文将详细介绍如何使用 JavaBean 编写一个简单的 SQL Server 数据库连接工具类,并将其封装到 web 项目的 (WEB-INF/classes/) 目录下,以便在 Java 或 JSP 页面中引入使用。 一、数据库连接的基本概念 在开始编写...

    读取.sql文件,转化为javabean保存为.java文件

    本项目以“读取.sql文件,转化为javabean保存为.java文件”为主题,旨在帮助开发者自动将SQL脚本中的表结构转换成Java语言中的Bean类,从而提高开发效率并降低出错概率。这个任务通常应用于编译原理实验或者数据库...

    基于sqlserver jsp serverlet javabean 的网上购书系统

    `sqlserver`是用于存储和管理数据的关系型数据库管理系统,`jsp`(JavaServer Pages)负责动态网页的生成,`serverlet`作为服务器端的程序接口处理用户请求,而`javabean`则是Java语言中的一个组件模型,用以封装...

    javaBean自动生成工具,jdbc连接池封装

    4. 执行SQL:提供执行SQL语句的方法,如executeQuery、executeUpdate等,可以方便地转换ResultSet到JavaBean对象。 5. 关闭连接池:在应用程序结束时,关闭所有的数据库连接并销毁连接池。 "支持Resultset转List ...

    sql server+javaBean jsp留言板

    JavaBean是一种特殊的Java类,遵循特定的编码规范,主要用于封装业务逻辑和数据。在这个项目中,JavaBean负责处理留言板的业务逻辑,比如用户留言的添加、删除、查询等操作。JavaBean可以被JSP页面通过Java ...

    jsp+javaBean查询数据库

    而JavaBean是Java编程中的一种组件模型,用于封装业务逻辑或数据,通常作为JSP中的模型层,提供数据处理和服务。 2. 数据库连接管理:在上述代码中,`FirstBean`类初始化时,通过`Class.forName()`加载MySQL的JDBC...

    使用javabean封装数据库操作1.rar_bean_javabean_javabean 数据库_planet7r1

    3. **JavaBean与ResultSet映射**:当我们从数据库查询数据时,结果集(ResultSet)会被转化为JavaBean对象。通过迭代ResultSet,我们可以调用setter方法将每一行数据赋值给JavaBean的属性。 4. **CRUD操作**:...

    JSP+javabean+sql购物车

    - **显示购物车**:用户查看购物车时,JSP页面通过查询数据库并使用javabean对象填充数据,然后展示给用户。 - **结算**:用户确认购买后,javabean处理订单创建、库存更新等逻辑,JSP页面生成确认页面并可能跳转...

    jsp + servlet + javaBean + SqlServer

    3. **JavaBean**:JavaBean是一种符合特定规范的Java类,通常用于封装数据和业务逻辑。在本BBS中,JavaBean可能包含用户、帖子、评论等实体的属性和方法,方便在Servlet中使用。例如,`UserBean`可以管理用户信息,`...

    SqlToJavaBean_javabean_根据表结构生成javabean_生成javabean_

    在数据库操作中,将SQL查询结果映射到Java对象是常见的需求,这时JavaBean的作用就显现出来了。"SqlToJavaBean_javabean_根据表结构生成javabean_生成javabean_"这个标题暗示了一个工具或库,它能够自动化地根据...

    JAVA基础:将数据库操作封装到Javabean文档信息

    如果真的要获得查询数据库的结果集,就把结果集对象内的所有数据,转储到以 Map 为元素的 List 对象内。 将数据库操作封装到 Javabean 中,可以隐藏核心数据库操作代码,杜绝直接数据库操作带来的资源未释放问题,...

    利用servlet+jsp+javabean进行分页查询

    Servlet会调用javabean的方法获取数据,并将结果封装成适合传递给JSP的对象或集合。 2. **JavaBean**:在这个过程中,javabean主要负责与数据库交互。它包含一个或多个方法,用于执行SQL查询,例如“SELECT * FROM ...

    图书管理系统 jsp+javabean+servlet

    3. **业务层**:javabean作为业务对象,封装具体的业务逻辑,如添加新书、删除旧书、更新图书状态等。 4. **数据访问层**:通常使用JDBC(Java Database Connectivity)与数据库进行交互,执行SQL语句,实现数据的...

    jsp+javabean+servlet+sql2005博客

    JavaBean是Java语言中封装业务逻辑和数据的对象,遵循特定的规范。在博客系统中,JavaBean可以用来封装用户信息、文章信息、评论信息等。例如,UserBean、ArticleBean和CommentBean分别对应用户、文章和评论的业务...

    学生课绩管理系统 jsp + servlet + javaBean + sql.rar

    在学生课绩管理系统中,javaBean可以被用来封装学生对象、课程对象和成绩对象,每个对象包含其相关的属性和方法。例如,一个“Student”类可以包含姓名、学号、所属班级等属性,以及获取和设置这些属性的方法。在...

    javabean连接数据库SQL2000

    JavaBean是一种特殊的Java类,常用于封装数据和业务逻辑,便于在Java应用程序中重用和交换数据。在本实例中,我们将探讨如何使用JavaBean连接到Microsoft SQL Server 2000数据库,这是Java开发中常见的一项任务,...

Global site tag (gtag.js) - Google Analytics