New RowMapper 在Spring JdbcTemplate中 是件很累的事情...
如是 自己就为了省自己的事情 写了个加强版本的 呵呵..
public class RowMapping implements RowMapper{
private Object className;
public RowMapping(Object className){
this.className=className;
}
public Object mapRow(ResultSet rs, int index) throws SQLException {
try {
className=className.getClass().newInstance();
}catch(Exception e){
e.printStackTrace();
}
ResultSetMetaData rsmd=rs.getMetaData();
int cc=rsmd.getColumnCount(); //获得查询结果列的总列数
String columnName=""; //列名
Object cellValue=""; //表格数据值
Field field=null;
String cellType=null;
for(int i=1;i<=cc;i++){
columnName=rsmd.getColumnName(i);
try{
field=className.getClass().getDeclaredField(columnName);
cellType=field.getType().getSimpleName();
if(cellType.equalsIgnoreCase("String")){
cellValue=rs.getString(columnName);
}else if(cellType.equalsIgnoreCase("Integer")){
cellValue=rs.getInt(columnName);
}else if(cellType.equalsIgnoreCase("Float")){
cellValue=rs.getFloat(columnName);
}else if(cellType.equalsIgnoreCase("Double")){
cellValue=rs.getDouble(columnName);
}else if(cellType.equalsIgnoreCase("Long")){
cellValue=rs.getLong(columnName);
}else if(cellType.equalsIgnoreCase("Short")){
cellValue=rs.getShort(columnName);
}else if(cellType.equalsIgnoreCase("Boolean")){
cellValue=rs.getBoolean(columnName);
}else if(cellType.equalsIgnoreCase("Date")){
cellValue=rs.getDate(columnName);
}else if(cellType.equalsIgnoreCase("Byte")){
cellValue=rs.getByte(columnName);
}else if(cellType.equalsIgnoreCase("BigDecimal")){
cellValue=rs.getBigDecimal(columnName);
}else if(cellType.equalsIgnoreCase("InputStream")){
cellValue=rs.getBinaryStream(columnName);
}else if(cellType.equalsIgnoreCase("Blob")){
cellValue=rs.getBlob(columnName);
}else if(cellType.equalsIgnoreCase("Clob")){
cellValue=rs.getClob(columnName);
}else if(cellType.equalsIgnoreCase("Time")){
cellValue=rs.getTime(columnName);
}else if(cellType.equalsIgnoreCase("Timestamp")){
cellValue=rs.getTimestamp(columnName);
}else if(cellType.equalsIgnoreCase("URL")){
cellValue=rs.getURL(columnName);
}else{
cellValue=rs.getObject(columnName);
}
//set method 赋值.
className.getClass().getDeclaredMethod("set"+(columnName.charAt(0)+"").toUpperCase()+
columnName.substring(1,columnName.length()),
new Class[]{field.getType()}).invoke(className, new Object[]{cellValue});
}catch(Exception ex){
ex.printStackTrace();
}
}
return this.className;
}
}
比如说是要查询一个Product 表的数据查询那么方法中查询时 就写
this.getJdbcTemplate().query("select * from product", new RowMapping(new Product()));
呵呵...好像还有些类型没有些进去。。而且数据库之间的数据类型不同。所以没有考虑这些。。这个是写的Mysql的。。
至于其他的...呵呵。。把上面的改改 就可以了。。
怎么合适自己 就怎么写。。。
万变的 可恶的 纠结的 ,实用第一....
学术不精,目前只知道这么写...效率上面。。没测试过。。不过用起来 还凑合 呵呵》。。
分享到:
相关推荐
"更新记录.docx"文件可能是项目开发过程中对SpringJdbcTemplate封装工具类的修改日志,记录了每次更新的功能改进、bug修复或性能优化等内容,这对于版本管理和问题排查非常有帮助。 通过上述分析,我们可以看到...
Spring JDBC Template是Spring框架中用于简化JDBC操作的一个核心组件,它是Spring对JDBC API的封装,旨在提供一个更加简洁、健壮且可测试的数据库访问层。在这个实例工程中,我们将深入探讨Spring JdbcTemplate的...
Spring JDBC Template是Spring提供的一个简化数据库操作的工具,它封装了JDBC的繁琐部分,让开发者可以更专注于业务逻辑。 在这个“简易登录系统”中,Struts2主要承担用户界面和控制器之间的交互。用户在登录页面...
本文将深入探讨如何利用Spring的JdbcTemplate进行MySQL数据库的分页查询,并对其进行封装,提高代码的复用性和可维护性。 首先,了解Spring JdbcTemplate的基本用法。JdbcTemplate是Spring提供的一个模板类,用于...
使用 Spring JdbcTemplate 调用 Oracle 存储过程实现 CRUD 在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储...
在提供的文件列表中,`BaseDao.java`和`BaseDaoImpl.java`很可能是自定义的基类和实现类,用于封装JdbcTemplate的常用操作。BaseDao通常会定义一些基本的CRUD(创建、读取、更新、删除)方法,如`selectById(int id)...
`JdbcUtils.java`可能是提供了一些数据库连接和JdbcTemplate使用的辅助方法,如数据库连接池的配置,或者封装了JdbcTemplate的执行方法,以提高代码复用性。例如: ```java public class JdbcUtils { private ...
模仿spring jdbcTemplate的粗略实现,只有很小的参考价值,如果是java初学者可以使用这个封装好的工具进行数据库操作,只需要在db.properties里配置好driver,url等信息
Spring JdbcTemplate是Spring框架中用于简化数据库操作的一个重要组件,它是Spring对JDBC的轻量级封装,旨在提供一种结构良好、易于使用的SQL执行机制,同时保持了JDBC的灵活性。在本实例中,我们将深入探讨Spring ...
此外,JdbcTemplate对JDBC的异常进行了封装,统一转换为Spring的DataAccessException,提供了更友好的异常处理机制。这使得错误信息更容易理解和处理,也保持了代码的一致性。 总结来说,Spring JDBCTemplate通过...
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.support.rowset.ResultSetWrappingSqlRowSet; import org.springframework.jdbc.support.rowset.SqlRowSet; import org....
JdbcTemplate是Spring提供的一个用于简化数据库操作的API,它是Spring对JDBC(Java Database Connectivity)的轻量级封装。通过使用JdbcTemplate,开发者可以避免编写大量的样板代码,如打开和关闭连接、处理结果集...
通过这种方式,`Spring JdbcTemplate`使得在Servlet中进行数据库操作变得更加简单和高效。它的主要优点包括: - **异常处理**:自动封装JDBC的异常,提供了统一的异常处理策略。 - **模板方法**:通过预定义的方法...
通过封装原生的JDBC API,JdbcTemplate不仅提高了代码的可读性和可维护性,还帮助开发者避免了许多常见的错误,比如资源关闭、SQL注入等问题。 Spring框架提供了多种模板类来处理不同的数据访问需求,例如...
Java Spring JdbcTemplate是Spring框架中一个非常重要的组件,它为开发者提供了一种简单而有效的方式来操作数据库。在本文中,我们将深入探讨JdbcTemplate的基本概念、使用场景、优势以及如何在实际项目中进行配置和...
通过以上介绍,我们可以看到 Spring-JdbcTemplate 是一个强大且易用的数据库访问工具,它通过封装 JDBC,简化了数据库操作,提升了开发效率。了解并熟练使用 JdbcTemplate,是提升 Java 后端开发能力的重要一环。
nimble-orm是一款灵活且轻量级的ORM框架,它是针对Spring JdbcTemplate进行了一层封装,旨在提高开发效率,特别是对于那些表结构变动频繁的互联网项目。nimble-orm的核心在于它能够帮助开发者快速实现对MySQL数据库...
标题中的"java-web-project.zip_jdbctemplate_js项目_spring jdbctemplate"表明这是一个Java Web项目,使用了Spring框架的JdbcTemplate模块,并且前端部分使用了JavaScript和Ajax技术。这个项目可能是为了演示如何在...
标题 "jdbcTemplate-spring对jdbc的支持" 涉及到的是Spring框架中的一个核心组件——JdbcTemplate,它是Spring对Java数据库连接(JDBC)的一种封装,用于简化数据库操作。JdbcTemplate提供了一种模板方法模式,使得...