- 浏览: 285670 次
- 性别:
- 来自: 哈尔滨
文章分类
最新评论
-
netfengxia:
这个是Mybatis哦. 是一个ORM框架, 这里展示的是My ...
mybatis merge 语句使用 -
MILLETS:
好像没有效果
jsp页面打印、预览、设置实现方案 -
evic520:
mysql有merge into的用法?是不是标题错了 楼主? ...
mybatis merge 语句使用 -
winner_king:
解决问题
pager-taglib分页中文乱码问题 -
Renee涟漪:
...
SVN搭建
package object; import java.lang.reflect.Field; import java.sql.ResultSet; import java.sql.SQLException; import org.springframework.jdbc.core.RowMapper; public class ObjectRowMapper implements RowMapper{ private Class className; public ObjectRowMapper(Class className){ this.className = className; } /* * 该方法自动将数据库字段对应到Object中相应字段 * 要求:数据库与Object中字段名相同 * */ public Object mapRow(ResultSet rs, int rowNum) throws SQLException { Object nt = new Object(); Field[] fields = className.getDeclaredFields(); try { nt = className.newInstance(); for (Field field : fields) { //如果结果中没有改field项则跳过 try { rs.findColumn(field.getName()); } catch (Exception e) { continue; } //修改相应filed的权限 boolean accessFlag = field.isAccessible(); field.setAccessible(true); String value = rs.getString(field.getName()); value = value==null?"":value; setFieldValue(nt, field, value); //恢复相应field的权限 field.setAccessible(accessFlag); } } catch (Exception e) { e.printStackTrace(); } return nt; } /* * 根据类型对具体对象属性赋值 */ public static void setFieldValue(Object form, Field field, String value) { String elemType = field.getType().toString(); if (elemType.indexOf("boolean") != -1||elemType.indexOf("Boolean") != -1) { try { field.set(form, Boolean.valueOf(value)); } catch (IllegalAccessException e) { e.printStackTrace(); } } else if (elemType.indexOf("byte") != -1||elemType.indexOf("Byte") != -1) { try { field.set(form, Byte.valueOf(value)); } catch (IllegalAccessException e) { e.printStackTrace(); } } else if (elemType.indexOf("char") != -1||elemType.indexOf("Character") != -1) { try { field.set(form, Character.valueOf(value.charAt(0))); } catch (IllegalAccessException e) { e.printStackTrace(); } } else if (elemType.indexOf("double") != -1||elemType.indexOf("Double") != -1) { try { field.set(form, Double.valueOf(value)); } catch (IllegalAccessException e) { e.printStackTrace(); } } else if (elemType.indexOf("float") != -1||elemType.indexOf("Float") != -1) { try { field.set(form, Float.valueOf(value)); } catch (IllegalAccessException e) { e.printStackTrace(); } } else if (elemType.indexOf("int") != -1||elemType.indexOf("Integer") != -1) { try { field.set(form, Integer.valueOf(value)); } catch (IllegalAccessException e) { e.printStackTrace(); } } else if (elemType.indexOf("long") != -1||elemType.indexOf("Long") != -1) { try { field.set(form, Long.valueOf(value)); } catch (IllegalAccessException e) { e.printStackTrace(); } } else if (elemType.indexOf("short") != -1||elemType.indexOf("Short") != -1) { try { field.set(form, Short.valueOf(value)); } catch (IllegalAccessException e) { e.printStackTrace(); } } else { try { field.set(form, (Object) value); } catch (IllegalAccessException e) { e.printStackTrace(); } } } }
发表评论
-
struts2从2.2.3升级到2.3.15.1步骤
2014-05-19 10:41 10921. 删除以下jar包 asm-3.1.jar asm- ... -
mybatis merge 语句使用
2014-03-26 10:26 17819<update id="saveRechou ... -
多个SSH2 项目部署在Tomcat下,解决Tomcat启动失败问题
2013-04-24 09:30 2196我在tomcat下同时部署多个SSH2项目时,Tomcat启 ... -
WEB容器启动的时候,加载常用数据到内存
2012-04-26 09:00 1272项目中,有很多数据是基本上不变的,同时用到的频率还比较高,如果 ... -
给spring jdbctemplate加上一层“华丽外衣”-动态SQL&&SQL语句以文件存放
2012-04-26 08:58 1386用hibernate用得多了,忽然怀念起自己直接写sql 的轻 ... -
struts2文件下载
2012-04-01 09:19 1010public String download(){ ... -
spring JdbcTemplate文件写数据库,读取
2012-03-31 15:09 1742/** * 插入文件表数据 * @param tb ... -
struts2标签详解与实例
2012-02-23 16:30 870见附件 -
java数据类型验证工具类
2012-02-23 16:29 4817package net.hlj.common.util; ... -
解决struts2get请求乱码问题
2012-02-13 11:02 10371、建立CharFilter.java package cn ... -
防跨域
2012-02-10 14:34 10381、建立CrossDomainFilter.java pac ... -
struts2中struts.xml非默认路径的配置
2012-01-31 14:33 10581) my-struts.xml置于WEB-INF/cla ... -
泛域名解析
2012-01-30 11:15 1198web.xml配置 <!-- webSite d ... -
(转)log4j详解与实战
2011-07-26 08:57 883log4j是一个非常强大的log记录软件,下面我们就来看看在项 ... -
模拟spring功能
2011-06-22 17:14 10411、建立User.java,内容如下: package ne ... -
struts2.1.1实例-helloworld
2011-06-15 17:15 1922Struts2 1.1 Struts ... -
spring配置文件获取方式
2010-12-24 11:33 11341、在src下(class): Applicatio ... -
配置Spring+hibernate使用ehcache作为second-level cache
2010-12-02 16:39 1027大量数据流动是web应用性能问题常见的原因,而缓存被广泛的 ...
相关推荐
params)`,查询通常使用`query(String sql, RowMapper<T> rowMapper, Object... params)`,删除操作则是`delete(String sql, Object... params)`。这些方法都处理了异常和资源关闭,使得代码更易读,更不易出错。 ...
4. **RowMapper.java**: RowMapper是Spring框架中常见的一种接口,用于将数据库查询结果的每一行映射为Java对象。在这个压缩包中,这个接口可能被用来将数据库查询的结果转换为自定义的Java对象。开发人员可以实现这...
1. `query(String sql, RowMapper<T> rowMapper)`:此方法用于执行SQL查询,并使用RowMapper将结果行映射为自定义对象。RowMapper是一个接口,你需要实现`mapRow(ResultSet rs, int rowNum)`方法,该方法将ResultSet...
在Java编程中,ResultSet是处理数据库查询结果的主要接口,它由Statement或PreparedStatement对象执行SQL查询后返回。...通过创建这样一个工具类,我们可以方便地将数据库查询结果封装成易于操作的对象,简化业务逻辑。
- `query(String sql, RowMapper<T> rowMapper)`:执行查询并使用自定义的RowMapper将结果映射到对象。 - `update(String sql)`:执行更新操作,如INSERT、UPDATE或DELETE。 - `execute(String sql)`:执行任意的...
- **`StoredQueryInfo`**:该类封装了存储过程的元信息,如名称、参数等,方便在调用过程中使用。 - **`RowMapper`**:这是Apache Commons DBUtils提供的一个接口,用于从数据库结果集中提取数据并映射到Java对象。...
- **使用RowMapper接口**:用户自定义映射规则,直接获取对象。 ```java public <T> List<T> query(String sql, RowMapper<T> rowMapper, Object... args) { // 实现细节略 } public interface RowMapper<T> { T...
这里,`queryForList`接受SQL语句和结果集映射类作为参数,它会自动将查询结果转换为指定类型的列表。 2. **参数化查询** Spring JdbcTemplate支持参数化的SQL查询,这可以避免SQL注入的风险。例如,使用`query`...
- 查询(Query):`query(String sql, RowMapper<T> rowMapper)`方法用于执行SELECT语句,根据SQL语句获取结果集,并通过`RowMapper`接口将结果转换为自定义的对象。 3. **批处理操作**:如果需要批量执行SQL语句...
- **简单查询**:使用`query(String sql, RowMapper<T> rowMapper)`方法执行查询,其中RowMapper用于将结果集转换为Java对象。 - **参数化查询**:使用`queryForObject(String sql, Object[] args, RowMapper<T> ...
它通过封装了JDBC的基本步骤,如打开和关闭连接、处理结果集等,使得开发者能够更专注于业务逻辑,而不是底层的数据库操作细节。 在JDBCTemplate的API中,`queryForXXX`系列方法主要用于从数据库查询数据,并返回...
`UserRowMapper`是一个自定义的RowMapper,用于将查询结果的每一行映射为一个User对象。 3. **参数化查询**: 如果需要带参数的SQL语句,可以使用`queryForObject`或`query`方法,传入PreparedStatement参数。例如...
在上述代码中,`UserRowMapper`是自定义的RowMapper,用于将数据库查询结果映射到User对象。此外,为了获取总页数和总记录数,可能需要额外执行一次SQL,不带LIMIT和OFFSET的全表扫描,获取所有记录的数量,然后根据...
5. **Util工具类**:包括RowMapper,用于将数据库查询结果转换为Java对象;分页工具类,帮助实现高效的分页查询。 RowMapper是Spring JDBC中的一个接口,用于将数据库查询结果集的一行映射为一个Java对象。在项目中...
- `query(String sql, RowMapper<T> rowMapper)`: 执行SQL查询并使用RowMapper将结果映射到自定义类型。 - `queryForObject(String sql, RowMapper<T> rowMapper, Object... args)`: 执行查询并期望只返回一个对象。...
同时,JDBC Template提供了一种机制将查询结果自动转换为Java对象,如List、Map或自定义的Java类。 4. **事务支持**:Spring JDBC Template提供了一套易于使用的事务管理API,可以方便地在业务代码中进行事务的开始...
在处理结果集时,JdbcTemplate提供了RowMapper接口,我们可以自定义映射规则,将数据库行数据转换为我们需要的Java对象。例如,实现RowMapper接口的`mapRow(ResultSet rs, int rowNum)`方法,根据列名或索引将...
Spring的JdbcTemplate是Spring框架中用于简化数据库操作的工具,它是Spring JDBC模块的核心组件,提供了对SQL查询的封装,使得数据库访问更为简单和安全。JdbcTemplate的API设计清晰,主要分为几个部分,其中包括...
结果映射是JdbcTemplate的一个关键特性,可以通过实现RowMapper接口自定义映射规则,或者使用BeanPropertyRowMapper自动将结果映射到Java Bean。 7. **事务管理** JdbcTemplate可以配合...
- **结果处理**:可以使用RowMapper或ResultSetExtractor将结果集转换为自定义对象。 5. **NamedParameterJdbcTemplate** 如果SQL语句中使用命名参数,NamedParameterJdbcTemplate会更方便。它允许使用命名参数...