spring jdbctemplate 插入数据

问题描述

spring jdbctemplate 插入数据

手动拼装的sql : insert into tableA (id,name) values(:id,:name)

使用BeanPropertySqlParameterSource

执行:jdbcTemplate.update(sql, new BeanPropertySqlParameterSource(vo));
出问题了,
我跟代码进去 发现new BeanPropertySqlParameterSource(vo) 所有集合是空的,但是我的vo对象是有值的

-------------源码-------------
public int insertVo(SuperVo vo) throws Exception {
StringBuffer insert = new StringBuffer(" insert into ");
StringBuffer insert_value = new StringBuffer(" values ( ");
insert.append(vo.getTableName()).append(" ( ");

    // 主键/序列
    String pkFieldName = vo.getPKFieldName();
    String sequence = vo.getSequence();
    Integer seq = null;
    if (pkFieldName != null) {
        if (sequence != null && null == vo.getAttributeValue(vo.getPKFieldName())) {
            seq = this.queryNextSeq(sequence);
            vo.setAttributeValue(pkFieldName, seq);
        } else {
            seq = Util.getIntegerValue(vo.getAttributeValue(vo.getPKFieldName()));
        }
    }

    List<String> list = vo.getAttributeNames();
    int[] types = new int[list.size()];
    Object[] params = new Object[list.size()];
    String split = "";
    for (int i = 0; i < list.size(); i++) {
        String fieldName = list.get(i);
        insert.append(split).append(fieldName);
        insert_value.append(split).append(":").append(fieldName);
        split = ",";
    }
    insert.append(")");
    insert_value.append(")");

    SqlParameterSource paramSource = new BeanPropertySqlParameterSource(vo);
    String sql = insert.append(insert_value).toString();
    jdbcTemplate.update(sql, new BeanPropertySqlParameterSource(vo));

    }
 ![图片说明](http://img.ask.csdn.net/upload/201505/26/1432611494_91042.jpg)

![图片说明](http://img.ask.csdn.net/upload/201505/26/1432611544_196163.jpg)

解决方案

虽然没有人回答,但是这个问题解决了,就此结贴。将数据缘转成namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(
jdbcTemplate.getDataSource());就ok了。

时间: 2024-09-20 00:31:31

spring jdbctemplate 插入数据的相关文章

db2-使用jdbctemplate插入数据到DB2出现异常 不能完全插入

问题描述 使用jdbctemplate插入数据到DB2出现异常 不能完全插入 使用jdbctemplate插入数据到DB2出现异常 不能完全插入 插入1000条 只能成功900多条 插入100条 只能成功90多条 08:54:30.784 [main] DEBUG o.s.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource 08:54:30.784 [main] DEBUG o.s.j.d.Driv

insert-spring jdbcTemplate怎么得到新插入数据的主键(varchar2类型)

问题描述 spring jdbcTemplate怎么得到新插入数据的主键(varchar2类型) 在网上看到用KeyHelper 可以得到数字类型的主键,但是表的主键guid是varchar类型的,用Spring的jdbcTemplate有什么方法可以得到新插入数据的主键? 用的是Hibernate 数据库是Oracle 求大神帮忙了啊! 不用先插入了,再查询的方法怎么破?

Spring中如何实现插入数据后调用存储过程,且在同一事务里,如何证明。

问题描述 Spring中如何实现插入数据后调用存储过程,且在同一事务里,如何证明.Spring是如何管理事务的,我在插入后如何自动提交的. 解决方案 解决方案二:<propertyname="sqlMapClientTemplate"ref="sqlMapClientTemplate"></property>DAO中使用的这个对应的beanxml是<beanid="sqlMapClientTemplate"class

spring jdbctemplate使用queryforlist返回的数据不能修改么?

问题描述 spring jdbctemplate使用queryforlist返回的数据不能修改么? 我有两个表,表中各有一个类型字段,名称字段,数值字段,例 如下: 表1: 类型 名称 数值 文具 铅笔 2 耗材 纸 10 表2 类型 名称 数值 文具 铅笔 1 耗材 纸 1 表1存的是采购计划数据,表2存的是采购数据 我现在需要将两表的各自分类数据汇总后进行输出 我分别用两次jdbctemplate查询了两个表,并汇总了数据,现在需要将表2中与表1中类型.名称一致的数据加入表1的查询结果 St

Spring往SQL SERVER2000插入数据失败

问题描述 使用SSH框架,用java往数据库SQL SERVER2000里插入数据时报Hibernate flushing: could not insert: [com.diagnose.bean.JianCeInfo]; SQL [insert into jianCeInfo (typeNo, trainNo, cheCi, jcDate, jcEndDate, operateUser, placeName, jcResult1, jcResult2, kz1, kz2, jcCount,

Spring让LOB数据操作变得简单易行

概述 LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型,前者用于存储大块的二进制数据,如图片数据,视频数据等,而后者用于存储长文本数据,如论坛的帖子内容,产品的详细描述等.值得注意的是:在不同的数据库中,大对象对应的字段类型是不尽相同的,如 DB2 对应 BLOB/CLOB,MySql 对应 BLOB/LONGTEXT,SqlServer 对应 IMAGE/TEXT.需要指出的是,有些数据库的大对象类型可以象简单类型一样访问,如 MySql 的 LONGTEXT 的操作方式和 VA

hibernate 如何插入数据到多对多的中间表中

问题描述 hibernate 如何插入数据到多对多的中间表中 hibernate 如何插入数据到多对多的中间表中 关联表已经存在,只是需要在中间表中插入数据 解决方案 全靠自动不用手动,在配置文件里配置好many-to-many的关系 解决方案二: 这种中间表一般都是用手动的..jdbcTemplate来插入的 解决方案三: 使用HibernateCallback,因为该类可以获取到session并且被HibernateCTemplate调用,拿到了session你就应该知道怎么做了. 解决方案

求助!SSH2,action调用数据访问层,插入数据不报错也不插入,查询值全部返回true??

问题描述 如题,action调用数据访问层,插入数据时不报错也不能插入,查询方法值全部返回true.另,service层和dao层均通过单元测试,可以正常运行.操作.但是集成action和jsp就会出问题.使用了<propertyname="connection.autocommit">true</property>.无效.上代码:applicationcontext.xml<?xmlversion="1.0"encoding=&quo

Hibernate打出执行语句,怎么还是没有插入数据呢,也没有异常,这怎么解释呢?

问题描述 public static void main(String[] agrs) {Session session = null;try{session = HibernateSessionFactory.getSession();News news = new News();news.setAddtime(new Date());news.setNewscontent("aaa");news.setTitle("bbb");session.save(news