`
yunzhongxia
  • 浏览: 648466 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SimpleJdbcInsert列的过滤

 
阅读更多
public void save(String tableName,HashMap<String,Object> param) throws Exception{
		//注意 param中的key必须与数据库中的列表相对应
		//如果主键不存在则从序列中生成一个新的id
		
		SimpleJdbcInsert jdbcInsert=new SimpleJdbcInsert(this.getDataSource()).withTableName(tableName);
		try {
			String primary_key=(String) param.get("primary_key");
			//如果主键不存在
			if(!StringUtils.isBlank(primary_key)){
				String seq_name=(String) param.get("seq_name");
				String selSql="select "+seq_name+".nextval from  dual";
				int primaryvalue=getJdbcTemplate().queryForInt(selSql);
				param.put(primary_key, primary_value);
			}
			param.remove("primary_key");
			param.remove("seq_name");
			
			List list=new ArrayList();
			Iterator entries = param.entrySet().iterator();
			while (entries.hasNext()) {
				Map.Entry entry = (Map.Entry) entries.next();
				String columnName = (String) entry.getKey();
				list.add(columnName.toLowerCase());
			}
			//  String[] array = (String[])list.toArray(); 抛出java.lang.ClassCastException
		    //  原因是java中的强制类型转换只是针对单个对象的,
		    //  将整个数组转换成另外一种类型的数组是不行的。
			//new String[0]实际上是告诉系统list中是String类型的数据,数组无所谓,不必与list.size()相同
			String[] columnNames = (String[])list.toArray(new String[0]);
			jdbcInsert.usingColumns(columnNames).execute(param);
		} catch (Exception e) {
			e.printStackTrace();
			logger.info("JdbcService save table:("+tableName+")param("+param+") error:"+e.getMessage());
			throw new Exception(tableName+"的"+e.getCause().getMessage());
		}
	}

 

分享到:
评论

相关推荐

    SpringSimpleJdbcInsertExample:通过H2 InMemory DB演示Spring的SimpleJDBCInsert类功能

    Springs SimpleJdbcInsert类的用法。 演示H2 InMemory DB对Spring的SimpleJdbcInsert类的用法。 #技术堆栈。 Spring JDBC。 H2 InMemory数据库。 Lombok。 Gradle。 #PreRequires。 JDK 1.7以上。 Gradle( ) ...

    springj-dbc文档

    本文将深入探讨Spring JDBC的核心概念,包括JdbcTemplate、SimpleJdbcInsert、SimpleJdbcCall等关键组件,以及它们在实际开发中的应用。 一、JdbcTemplate详解 JdbcTemplate是Spring JDBC的核心,它提供了一种模板...

    spring+jdbc组合开发

    private SimpleJdbcInsert simpleJdbcInsert; public void addUser(User user) { Map, Object&gt; params = new HashMap(); params.put("name", user.getName()); // ... 其他参数 simpleJdbcInsert....

    spring封装jdbc查询

    SimpleJdbcInsert insert = new SimpleJdbcInsert(dataSource) .withTableName("table_name") .usingGeneratedKeyColumns("id"); Number key = insert.execute(new MapSqlParameterSource(params)); ``` 这段...

    SpringJDBC工程对应Jar包

    `SimpleJdbcInsert`可以根据表结构自动生成INSERT语句,而`SimpleJdbcCall`则可以方便地调用数据库中的存储过程,极大地减少了编码量。 为了与Oracle数据库进行交互,本包内可能包含了以下Oracle相关的JAR文件: 1...

    Spring对JDBC的支持

    SimpleJdbcInsert insert = new SimpleJdbcInsert(dataSource) .withTableName("users") .usingGeneratedKeyColumns("id"); Map, Object&gt; params = new HashMap(); params.put("username", "testUser"); ...

    spring源码分析

    Spring JDBC模块则提供了简化数据库操作的工具,如`JdbcTemplate`和`SimpleJdbcInsert`,它们封装了SQL执行和结果处理,降低了数据库访问的复杂性。在源码中,可以看到Spring如何通过模板方法设计模式来实现数据库...

    spring-jdbc4.0jar包

    另外,`SimpleJdbcInsert`和`SimpleJdbcCall`是两个辅助类,分别简化了插入记录和调用存储过程的操作。`SimpleJdbcInsert`允许用户只需提供表名,然后通过设置参数即可执行插入操作。而`SimpleJdbcCall`则可以方便地...

    spring的JDBC开发类

    `SimpleJdbcInsert`简化了插入数据的过程,允许我们基于表结构动态构造INSERT语句,而`SimpleJdbcCall`则用于执行存储过程,使得调用数据库中的自定义函数或过程变得简单。 在事务管理方面,Spring JDBC提供了`...

    jdbcTemplate相关jar包.zip

    spring-jdbc.jar包含了Spring对JDBC的抽象层,包括JdbcTemplate类和SimpleJdbcInsert、SimpleJdbcCall等工具类。JdbcTemplate提供了一套模板化的API,用于执行SQL查询、更新、存储过程等操作,同时自动处理结果集、...

    spring3.10实现jdbc存储deom

    "jar对应关系.txt"文件很可能详细列出了这些依赖,可能包括`spring-context`、`spring-jdbc`、`spring-tx`等。`spring-context`提供核心容器功能,`spring-jdbc`包含了JDBC支持,而`spring-tx`则处理事务管理。确保...

    Spring_jdbc模板相关jar包

    `SimpleJdbcInsert`允许你设置表名和列名,然后自动构建插入语句,而`SimpleJdbcCall`则可以方便地调用数据库中的存储过程,自动处理输入参数和输出结果。 在事务管理方面,Spring JDBC提供了`...

    spring_JDBC整合包

    SimpleJdbcInsert适用于列名固定的插入操作,而NamedParameterJdbcInsert则允许使用参数名,更易于理解和维护。 3. **RowCallbackHandler/ResultSetExtractor**: 这两个接口用于处理查询结果。RowCallbackHandler...

    Java_学习如何使用Spring访问关系数据.zip

    通过`JdbcTemplate`和`SimpleJdbcInsert`等类,可以方便地执行SQL查询和更新操作。 2. **Spring Data JPA**: Spring Data JPA是Spring对Java Persistence API(JPA)的扩展,使得开发者能够快速实现基于JPA的数据...

    SpringJDBC训练素材.zip

    首先,要了解Spring JDBC的基本架构,包括DataSource、JdbcTemplate、SimpleJdbcInsert、SimpleJdbcCall等关键组件。DataSource是Java中用于获取数据库连接的接口,Spring提供了对多种DataSource实现的支持,如...

    spring对jdbc的支持jar包

    SimpleJdbcInsert可以自动计算生成主键值,而SimpleJdbcCall则允许开发者方便地定义和执行数据库的存储过程。 3. **RowMapper** 和 **ResultSetExtractor**:这两个接口用于将数据库查询的结果映射到Java对象。...

    Spring Jdbc的jar包

    首先,`spring-jdbc-3.2.0.RELEASE.jar` 包含了Spring JDBC的主要类和接口,如`JdbcTemplate`和`SimpleJdbcInsert`等。`JdbcTemplate`是Spring JDBC的核心,它提供了一种模板方法模式来执行常见的JDBC操作,如查询、...

    spring-jdbc-2.5.6.jar

    SimpleJdbcInsert用于简化插入操作,只需提供表名,Spring会自动构建INSERT语句,避免了手动拼接SQL的繁琐。而SimpleJdbcCall则用于调用存储过程,它可以自动映射结果集,使得调用存储过程如同调用方法一样简单。 ...

    使用JDBC进行数据访问【springframwork】定义.pdf

    它需要JDK 5或更高版本,并且能与SimpleJdbcInsert和SimpleJdbcCall配合使用。 4. **SimpleJdbcInsert 和 SimpleJdbcCall**: 这两个类利用了数据库元数据,简化了插入操作和调用存储过程的过程。只需要提供表名或...

Global site tag (gtag.js) - Google Analytics