`
xzj127
  • 浏览: 16007 次
  • 性别: Icon_minigender_1
  • 来自: 帝都火星村
社区版块
存档分类
最新评论

Spring JdbcTemplate简单的封装

阅读更多

   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的。。

 

至于其他的...呵呵。。把上面的改改 就可以了。。

 

怎么合适自己 就怎么写。。。

  

             万变的 可恶的 纠结的   ,实用第一....

 

 

      学术不精,目前只知道这么写...效率上面。。没测试过。。不过用起来 还凑合 呵呵》。。

0
0
分享到:
评论
1 楼 jkluooop 2011-07-18  
使用spring的new BeanPropertyRowMapper(xxx.class)

相关推荐

    SpringJdbcTemplate封装工具类

    "更新记录.docx"文件可能是项目开发过程中对SpringJdbcTemplate封装工具类的修改日志,记录了每次更新的功能改进、bug修复或性能优化等内容,这对于版本管理和问题排查非常有帮助。 通过上述分析,我们可以看到...

    spring-jdbcTemplate实例工程

    Spring JDBC Template是Spring框架中用于简化JDBC操作的一个核心组件,它是Spring对JDBC API的封装,旨在提供一个更加简洁、健壮且可测试的数据库访问层。在这个实例工程中,我们将深入探讨Spring JdbcTemplate的...

    strut2+spring+springjdbctemplate做的简易登录系统

    Spring JDBC Template是Spring提供的一个简化数据库操作的工具,它封装了JDBC的繁琐部分,让开发者可以更专注于业务逻辑。 在这个“简易登录系统”中,Struts2主要承担用户界面和控制器之间的交互。用户在登录页面...

    Spring jdbctemplate + mysql 分页封装

    本文将深入探讨如何利用Spring的JdbcTemplate进行MySQL数据库的分页查询,并对其进行封装,提高代码的复用性和可维护性。 首先,了解Spring JdbcTemplate的基本用法。JdbcTemplate是Spring提供的一个模板类,用于...

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    使用 Spring JdbcTemplate 调用 Oracle 存储过程实现 CRUD 在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储...

    Spring JdbcTemplate

    在提供的文件列表中,`BaseDao.java`和`BaseDaoImpl.java`很可能是自定义的基类和实现类,用于封装JdbcTemplate的常用操作。BaseDao通常会定义一些基本的CRUD(创建、读取、更新、删除)方法,如`selectById(int id)...

    Spring JdbcTemplate 常用方法整理

    `JdbcUtils.java`可能是提供了一些数据库连接和JdbcTemplate使用的辅助方法,如数据库连接池的配置,或者封装了JdbcTemplate的执行方法,以提高代码复用性。例如: ```java public class JdbcUtils { private ...

    模仿spring jdbcTemplate的实现

    模仿spring jdbcTemplate的粗略实现,只有很小的参考价值,如果是java初学者可以使用这个封装好的工具进行数据库操作,只需要在db.properties里配置好driver,url等信息

    Spring JdbcTemplate查询实例

    Spring JdbcTemplate是Spring框架中用于简化数据库操作的一个重要组件,它是Spring对JDBC的轻量级封装,旨在提供一种结构良好、易于使用的SQL执行机制,同时保持了JDBC的灵活性。在本实例中,我们将深入探讨Spring ...

    spring jdbcTemplate 源码

    此外,JdbcTemplate对JDBC的异常进行了封装,统一转换为Spring的DataAccessException,提供了更友好的异常处理机制。这使得错误信息更容易理解和处理,也保持了代码的一致性。 总结来说,Spring JDBCTemplate通过...

    spring jdbctemplate 封裝

    import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.support.rowset.ResultSetWrappingSqlRowSet; import org.springframework.jdbc.support.rowset.SqlRowSet; import org....

    Spring 学习 JdbcTemplate,模板模式,回调

    JdbcTemplate是Spring提供的一个用于简化数据库操作的API,它是Spring对JDBC(Java Database Connectivity)的轻量级封装。通过使用JdbcTemplate,开发者可以避免编写大量的样板代码,如打开和关闭连接、处理结果集...

    spring jdbcTemplate 注入到servlet

    通过这种方式,`Spring JdbcTemplate`使得在Servlet中进行数据库操作变得更加简单和高效。它的主要优点包括: - **异常处理**:自动封装JDBC的异常,提供了统一的异常处理策略。 - **模板方法**:通过预定义的方法...

    4.Spring中的JdbcTemplate,Spring中的的事务,

    通过封装原生的JDBC API,JdbcTemplate不仅提高了代码的可读性和可维护性,还帮助开发者避免了许多常见的错误,比如资源关闭、SQL注入等问题。 Spring框架提供了多种模板类来处理不同的数据访问需求,例如...

    java Spring JdbcTemplate 入门工具

    Java Spring JdbcTemplate是Spring框架中一个非常重要的组件,它为开发者提供了一种简单而有效的方式来操作数据库。在本文中,我们将深入探讨JdbcTemplate的基本概念、使用场景、优势以及如何在实际项目中进行配置和...

    Spring-JdbcTemplate

    通过以上介绍,我们可以看到 Spring-JdbcTemplate 是一个强大且易用的数据库访问工具,它通过封装 JDBC,简化了数据库操作,提升了开发效率。了解并熟练使用 JdbcTemplate,是提升 Java 后端开发能力的重要一环。

    一个灵活轻量级的基于SpringjdbcTemplate的ORM

    nimble-orm是一款灵活且轻量级的ORM框架,它是针对Spring JdbcTemplate进行了一层封装,旨在提高开发效率,特别是对于那些表结构变动频繁的互联网项目。nimble-orm的核心在于它能够帮助开发者快速实现对MySQL数据库...

    java-web-project.zip_jdbctemplate_js项目_spring jdbctemplate

    标题中的"java-web-project.zip_jdbctemplate_js项目_spring jdbctemplate"表明这是一个Java Web项目,使用了Spring框架的JdbcTemplate模块,并且前端部分使用了JavaScript和Ajax技术。这个项目可能是为了演示如何在...

    jdbcTemplate-spring对jdbc的支持

    标题 "jdbcTemplate-spring对jdbc的支持" 涉及到的是Spring框架中的一个核心组件——JdbcTemplate,它是Spring对Java数据库连接(JDBC)的一种封装,用于简化数据库操作。JdbcTemplate提供了一种模板方法模式,使得...

Global site tag (gtag.js) - Google Analytics