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));
}
}
分享到:
相关推荐
通过jdbc驱动获得连接,将数据库操作封装在javabean中。
我学习过程中自己参考书本写的,注释详细,我也自己写了使用说明放在里面,...你要是要学javabean,还想知道javabean怎么封装数据库,这个最好不过了. 数据库的链接你得改下用户名,密码之类东西,你打开.java文件就会看懂的.
如果真的要获得查询数据库的结果集,就把结果集对象内的所有数据,转储到以 Map 为元素的 List 对象内。 将数据库操作封装到 Javabean 中,可以隐藏核心数据库操作代码,杜绝直接数据库操作带来的资源未释放问题,...
本文介绍了以SQLServer为例编写一个简单的数据库连接工具类,把它封装到web项目的(WEB-INF/classes/)目录下,在Java或JSP页面引入就可以实现了。
jsp+javabean+servlet
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; //数据库用户名 String user = "sa"; //数据库密码 String password = "123456"; //根据数据库参数取得一个数据库连接 conn =...
用一个javabean把常用的的数据库功能都封装起来,例如打开数据库、关闭数据库、执行数据库查询、插入数据等操作,当封装到javabean后,就可以在jsp文件中直接调用,隐藏了复杂的操作,这样比在每一个jsp文件中写一大...
利用传统Jsp+JavaBean技术,对新闻发布系统的后台进行管理。数据库为sqlserver,利用JDBC链接数据库的。同时把数据库封装在JavaBean中。
数据访问层:负责与数据库交互,执行SQL查询和事务管理。 主要功能 用户管理:允许用户注册、登录和更新个人信息。 商品浏览:用户可以浏览商品列表,查看商品详情。 购物车:用户可以将商品添加到购物车,并管理...
运用了工程化的思想和手段,例如将抽象的基类(JavaBean)封装到mall.JavaBean中,将对数据库的查询,增删改的具体实现(包括SQL语句)封装到mall.dao中,将承担事务处理的Servlet封装到mall. Servlet中。同时使用了...
通过JSP录入本地图片,MySQL建库,图片以blob值上传数据库,JavaBean封装对象。我上传的是整个项目的代码,并附加使用教程,简单易用。
JAVA读取Excel表格,建数据库建表,并...MssqlDBHelper.java:对应sqlserver底层操作类,包括建库、建表、同步表及将数据库中tableMate和columnMate封装成javabean SyncDbBiz.java 业务层,包括同步数据库和生成sql.
3) 修改JSP代码中的分页查询部分代码, 并将(总记录条数,总页码数,每页要显示的数据List<T> 当前页码,每页显示的记录条数(默认为5) 封装到PageBean类中) 4) 通过JSP中的标签的href属性 或 form的action属性 或...
一个简洁的学生管理系统,系统基于servlet和...JavaBean:用于封装数据和业务逻辑。 JDBC(Java Database Connectivity):用于与数据库进行交互,执行SQL查询和更新。 MySQL:关系型数据库,用于存储和管理数据。
整个站的全部数据逻辑运算完全有beans封装, 具有界面简洁、功能强大、操作方便等特点。 本站后台默认的用户名和密码为admin,admin 数据库 本程序的数据库备份在nt/sql/nt.sql,还原的时候先用MYSQL建立数据库note,...
JPA自定义SQL语句动态自动拼接工具,自动生成Hql的select语句,和count语句,以及params(Object[])数组的形式,该工具,主要是将前端的数据封装成map对象,或者是对应的Javabean对象后进行动态拼接,也可以加入特定的...
当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的...
7.封装,继承,多肽 8.接口与抽象类 9.java集合类 10.jdbc 11 html简介与js的基本语法 12 javascript内置对象和内置函数 13 javascript的DOM编程 14-15项目案例:当当网上书店或者做一个计算器 16 Ajax 原理 17 ...
MyBatis 是一个优秀的基于 java 的持久层框架, 内部封装了 jdbc,开发者只需要关注 sql 语句 本身, 而不需要处理加载驱动、创建连接、创建 statement 、关闭连接, 资源等繁杂 的过程。 MyBatis 通过 xml 或注解两...
链接mysql数据库, 查询所有表, 取出数据, 封装javabean格式, 转为java文件, 另外将每个表所有字段提取封装为单独的json文件, 对应java文件所有属性提取出单独json,给 mybatis 写sql做准备的, 没有把mysql配置单独...