`

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

    通过jdbc驱动获得连接,将数据库操作封装在javabean中。

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

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

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

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

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

    本文介绍了以SQLServer为例编写一个简单的数据库连接工具类,把它封装到web项目的(WEB-INF/classes/)目录下,在Java或JSP页面引入就可以实现了。

    图书管理系统 jsp+javabean+servlet

    jsp+javabean+servlet

    Javabean封装数据库

    String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; //数据库用户名 String user = "sa"; //数据库密码 String password = "123456"; //根据数据库参数取得一个数据库连接 conn =...

    基于jsp javabean &sql的新闻网

    用一个javabean把常用的的数据库功能都封装起来,例如打开数据库、关闭数据库、执行数据库查询、插入数据等操作,当封装到javabean后,就可以在jsp文件中直接调用,隐藏了复杂的操作,这样比在每一个jsp文件中写一大...

    Jsp+JavaBean的新闻发布系统后台管理

    利用传统Jsp+JavaBean技术,对新闻发布系统的后台进行管理。数据库为sqlserver,利用JDBC链接数据库的。同时把数据库封装在JavaBean中。

    基于JavaBean+Servlet网上购物系统(含源码和使用说明)

    数据访问层:负责与数据库交互,执行SQL查询和事务管理。 主要功能 用户管理:允许用户注册、登录和更新个人信息。 商品浏览:用户可以浏览商品列表,查看商品详情。 购物车:用户可以将商品添加到购物车,并管理...

    天师大网上商城 .zip

    运用了工程化的思想和手段,例如将抽象的基类(JavaBean)封装到mall.JavaBean中,将对数据库的查询,增删改的具体实现(包括SQL语句)封装到mall.dao中,将承担事务处理的Servlet封装到mall. Servlet中。同时使用了...

    JSP + MySQL+Servlet+JavaBean 实现图片上传

    通过JSP录入本地图片,MySQL建库,图片以blob值上传数据库,JavaBean封装对象。我上传的是整个项目的代码,并附加使用教程,简单易用。

    JAVA读取Excel,建库建表,并生成java实体.rar

    JAVA读取Excel表格,建数据库建表,并...MssqlDBHelper.java:对应sqlserver底层操作类,包括建库、建表、同步表及将数据库中tableMate和columnMate封装成javabean SyncDbBiz.java 业务层,包括同步数据库和生成sql.

    基于JSP+JavaBean+Servlet三层架构员工考勤管理系统源码+数据库+项目说明.zip

    3) 修改JSP代码中的分页查询部分代码, 并将(总记录条数,总页码数,每页要显示的数据List&lt;T&gt; 当前页码,每页显示的记录条数(默认为5) 封装到PageBean类中) 4) 通过JSP中的标签的href属性 或 form的action属性 或...

    基于servlet+Jsp+Mysql 的学生信息管理系统源代码,一个简洁的学生管理系统

    一个简洁的学生管理系统,系统基于servlet和...JavaBean:用于封装数据和业务逻辑。 JDBC(Java Database Connectivity):用于与数据库进行交互,执行SQL查询和更新。 MySQL:关系型数据库,用于存储和管理数据。

    毕设-NTsky新闻发布(提供JavaBean)v1.0

    整个站的全部数据逻辑运算完全有beans封装, 具有界面简洁、功能强大、操作方便等特点。 本站后台默认的用户名和密码为admin,admin 数据库 本程序的数据库备份在nt/sql/nt.sql,还原的时候先用MYSQL建立数据库note,...

    Query.java

    JPA自定义SQL语句动态自动拼接工具,自动生成Hql的select语句,和count语句,以及params(Object[])数组的形式,该工具,主要是将前端的数据封装成map对象,或者是对应的Javabean对象后进行动态拼接,也可以加入特定的...

    Spring面试题

    当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的...

    java从入门到精通70个PPT

    7.封装,继承,多肽 8.接口与抽象类 9.java集合类 10.jdbc 11 html简介与js的基本语法 12 javascript内置对象和内置函数 13 javascript的DOM编程 14-15项目案例:当当网上书店或者做一个计算器 16 Ajax 原理 17 ...

    mybatis完整的理论知识(.md版本)用Typora查看

    MyBatis 是一个优秀的基于 java 的持久层框架, 内部封装了 jdbc,开发者只需要关注 sql 语句 本身, 而不需要处理加载驱动、创建连接、创建 statement 、关闭连接, 资源等繁杂 的过程。 MyBatis 通过 xml 或注解两...

    TestAny2_jar.rar

    链接mysql数据库, 查询所有表, 取出数据, 封装javabean格式, 转为java文件, 另外将每个表所有字段提取封装为单独的json文件, 对应java文件所有属性提取出单独json,给 mybatis 写sql做准备的, 没有把mysql配置单独...

Global site tag (gtag.js) - Google Analytics