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作为一种常见的Java对象模型,可以用来封装数据及对数据的操作,特别适用于Web应用程序中的数据处理。 #### 二、JavaBean简介 JavaBean是一种Java类,用于封装数据和方法。它们遵循特定的命名约定,并且...
这个标题涉及到的是一个编程工具,它能够处理SQL文件并根据其中的数据结构生成对应的JavaBean对象。在软件开发中,尤其是涉及到数据库操作时,这样的工具能显著提高开发效率。SQL文件通常包含数据库的创建语句、插入...
JavaBean是符合JavaBeans规范的Java类,通常用于封装数据和业务逻辑。在这个学生管理系统中,JavaBean可能包含了学生对象的属性(如姓名、学号、班级等)和相关的方法(如获取、设置属性,添加、删除、更新学生信息...
我学习过程中自己参考书本写的,注释详细,我也自己写了使用说明放在里面,...你要是要学javabean,还想知道javabean怎么封装数据库,这个最好不过了. 数据库的链接你得改下用户名,密码之类东西,你打开.java文件就会看懂的.
本文将详细介绍如何使用 JavaBean 编写一个简单的 SQL Server 数据库连接工具类,并将其封装到 web 项目的 (WEB-INF/classes/) 目录下,以便在 Java 或 JSP 页面中引入使用。 一、数据库连接的基本概念 在开始编写...
本项目以“读取.sql文件,转化为javabean保存为.java文件”为主题,旨在帮助开发者自动将SQL脚本中的表结构转换成Java语言中的Bean类,从而提高开发效率并降低出错概率。这个任务通常应用于编译原理实验或者数据库...
`sqlserver`是用于存储和管理数据的关系型数据库管理系统,`jsp`(JavaServer Pages)负责动态网页的生成,`serverlet`作为服务器端的程序接口处理用户请求,而`javabean`则是Java语言中的一个组件模型,用以封装...
4. 执行SQL:提供执行SQL语句的方法,如executeQuery、executeUpdate等,可以方便地转换ResultSet到JavaBean对象。 5. 关闭连接池:在应用程序结束时,关闭所有的数据库连接并销毁连接池。 "支持Resultset转List ...
JavaBean是一种特殊的Java类,遵循特定的编码规范,主要用于封装业务逻辑和数据。在这个项目中,JavaBean负责处理留言板的业务逻辑,比如用户留言的添加、删除、查询等操作。JavaBean可以被JSP页面通过Java ...
而JavaBean是Java编程中的一种组件模型,用于封装业务逻辑或数据,通常作为JSP中的模型层,提供数据处理和服务。 2. 数据库连接管理:在上述代码中,`FirstBean`类初始化时,通过`Class.forName()`加载MySQL的JDBC...
3. **JavaBean与ResultSet映射**:当我们从数据库查询数据时,结果集(ResultSet)会被转化为JavaBean对象。通过迭代ResultSet,我们可以调用setter方法将每一行数据赋值给JavaBean的属性。 4. **CRUD操作**:...
- **显示购物车**:用户查看购物车时,JSP页面通过查询数据库并使用javabean对象填充数据,然后展示给用户。 - **结算**:用户确认购买后,javabean处理订单创建、库存更新等逻辑,JSP页面生成确认页面并可能跳转...
3. **JavaBean**:JavaBean是一种符合特定规范的Java类,通常用于封装数据和业务逻辑。在本BBS中,JavaBean可能包含用户、帖子、评论等实体的属性和方法,方便在Servlet中使用。例如,`UserBean`可以管理用户信息,`...
在数据库操作中,将SQL查询结果映射到Java对象是常见的需求,这时JavaBean的作用就显现出来了。"SqlToJavaBean_javabean_根据表结构生成javabean_生成javabean_"这个标题暗示了一个工具或库,它能够自动化地根据...
如果真的要获得查询数据库的结果集,就把结果集对象内的所有数据,转储到以 Map 为元素的 List 对象内。 将数据库操作封装到 Javabean 中,可以隐藏核心数据库操作代码,杜绝直接数据库操作带来的资源未释放问题,...
Servlet会调用javabean的方法获取数据,并将结果封装成适合传递给JSP的对象或集合。 2. **JavaBean**:在这个过程中,javabean主要负责与数据库交互。它包含一个或多个方法,用于执行SQL查询,例如“SELECT * FROM ...
3. **业务层**:javabean作为业务对象,封装具体的业务逻辑,如添加新书、删除旧书、更新图书状态等。 4. **数据访问层**:通常使用JDBC(Java Database Connectivity)与数据库进行交互,执行SQL语句,实现数据的...
JavaBean是Java语言中封装业务逻辑和数据的对象,遵循特定的规范。在博客系统中,JavaBean可以用来封装用户信息、文章信息、评论信息等。例如,UserBean、ArticleBean和CommentBean分别对应用户、文章和评论的业务...
在学生课绩管理系统中,javaBean可以被用来封装学生对象、课程对象和成绩对象,每个对象包含其相关的属性和方法。例如,一个“Student”类可以包含姓名、学号、所属班级等属性,以及获取和设置这些属性的方法。在...
JavaBean是一种特殊的Java类,常用于封装数据和业务逻辑,便于在Java应用程序中重用和交换数据。在本实例中,我们将探讨如何使用JavaBean连接到Microsoft SQL Server 2000数据库,这是Java开发中常见的一项任务,...