import com.yd.common.data.CIPPageInfo;
import com.yd.common.data.CIPReqCondition;
import com.yd.common.exception.CIPDaoException;
import com.yd.common.runtime.CIPErrorCode;
import com.yd.wms.busi.dao.impl.WMS_busi_outboundDaoImpl;
import com.yd.wms.busi.data.WMS_busi_outboundData;
import com.yd.wms.busi.data.po.WMS_busi_outboundPO; import java.util.List;
import java.util.Map; import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
import org.springframework.jdbc.support.KeyHolder;
import org.springframework.stereotype.Repository; public int addData(WMS_busi_outboundPO po) {
SimpleJdbcInsert insertActor = new SimpleJdbcInsert(jdbcTemplate).withTableName("riv_outbound_notice_h").usingGeneratedKeyColumns("ONH_ID");
try{
KeyHolder keyHolder = insertActor.executeAndReturnKeyHolder(new BeanPropertySqlParameterSource(po));
return keyHolder.getKey().intValue();
}catch(Exception e) {
log.error(e);
throw new CIPDaoException(CIPErrorCode.ERROR_DATABASE_TECH_EXCEPTION);
}
}
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder; KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.getJdbcOperations().update(new PreparedStatementCreator() {
public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
PreparedStatement ps = con.prepareStatement(OmsSqlConstants.SAVE_MATERIAL_FOR_QM, new String[] {"mat_id"});
ps.setString(1, materialProxy.getRivMaterial().getMatCode());
ps.setInt(2, materialProxy.getRivMaterial().getMatOwnerId());
ps.setString(3, materialProxy.getRivMaterial().getMatName());
ps.setString(4, materialProxy.getRivMaterial().getMatShortName());
ps.setString(5, materialProxy.getRivMaterial().getMatEnName());
ps.setString(6, materialProxy.getRivMaterial().getMatSpec());
ps.setString(7, materialProxy.getRivMaterial().getMatBarcode());
ps.setString(8, materialProxy.getRivMaterial().getMatBasicUomName());
ps.setBigDecimal(9, materialProxy.getRivMaterial().getMatShelfLifeDays());
ps.setInt(10, materialProxy.getRivMaterial().getMatIsFragile());
ps.setInt(11, materialProxy.getRivMaterial().getStatus());
ps.setTimestamp(12, new Timestamp(System.currentTimeMillis()));
ps.setInt(13, SecurityContextHelper.getCurrentUserId());
ps.setString(14, materialProxy.getRivMaterial().getMatInternalBarcode());
ps.setString(15, materialProxy.getRivMaterial().getGenMethod());
ps.setInt(16, SecurityContextHelper.getCurrentUserId());
ps.setString(17, materialProxy.getRivMaterial().getMatSkc());
return ps;
}
}, keyHolder); /** 物料表记录保存 **/
public final static String SAVE_MATERIAL_FOR_QM = "insert into riv_material \n" +
" (mat_code, mat_owner_id, mat_name, mat_short_name, mat_en_name, mat_spec, \n" +
" mat_barcode, mat_basic_uom_name, mat_shelf_life_days, mat_is_fragile, status, create_time, \n" +
" create_user_id, MAT_INTERNAL_BARCODE, GEN_METHOD, update_user_id,mat_skc) " +
" values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?) ";

插入po得到主键,插入sql得到主键的更多相关文章

  1. hibernate向mysql插入数据后,得到该条数据主键的方法

    hibernate向MySQL插入一条数据后,得到该条数据主键的方法.主键是自增长的. 保存完成后,直接用该实体的getId的方法就可以得到.因为保存完成后,hibernate会自动将id赋值给实体. ...

  2. SQLServer 主键插入

    设置此命令后可以往主键插入值 set IDENTITY_INSERT 表名 on set IDENTITY_INSERT 表名 off 注意: 此语句是一个整体操作 反例: 先单步执行:set IDE ...

  3. SQL的主键和外键约束

    SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...

  4. SQL的主键和外键

    SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...

  5. SQL的主键和外键约束(转)

    SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...

  6. 浅谈SQL之主键、外键约束

    约束:顾名思义就是一种限制,在表或列的层次设置约束,确保数据的有效性和完整性. SQL server中约束的主要分类: UNIQUE约束(唯一性约束) 防止一个特定的列中两个记录具有相同的值.可设置多 ...

  7. SQL Server 主键及自增长列的修改

    一.对主键的修改 主键值都会带有主键约束,当执行update操作或是其他操作的时候就会受到限制无法修改,解决的方法是:取消主键约束->删掉主键列->插入修改后的主键值. (1)取消主键约束 ...

  8. Sql Server 主键 外键约束

    主键约束 表通常具有包含唯一标识表中每一行的值的一列或一组列. 这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性. 由于主键约束可保证数据的唯一性,因此经常对标识列定义这种约束. 如果为 ...

  9. [转]SQL的主键和外键约束

    SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...

  10. sql解决主键冲突

    在数据插入的时候,假设主键对应的值已经存在,则插入失败!这就是主键冲突.当主键存在冲突(duplicate key)的时候,可以选择性的进行处理,即忽略.更新或者替换. 1.忽略 insert ign ...

随机推荐

  1. SLF4j+LOG4j

    工作笔记:在myeclipse 中创建一个java project 创建一个 TestSlf4J 类 import org.slf4j.Logger; import org.slf4j.LoggerF ...

  2. Poj_1004_FinancialManagement

    一.Description Larry graduated this year and finally has a job. He's making a lot of money, but someh ...

  3. 【转】 Pro Android学习笔记(六四):安全和权限(1):签发apk

    目录(?)[-] Android安全模型 数字证书签发 Debug的keystore 生产unsigned的apk 为apk进行证书签发 align安装包 使用Export Wizard生成签发的ap ...

  4. 【转】Jquery折叠效果

    转自:http://www.cnblogs.com/clc2008/archive/2011/10/25/2223254.html <!DOCTYPE html PUBLIC "-// ...

  5. 18_andriod常用布局&内容回顾

    线性布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:androi ...

  6. Static与Const的区别

    static static局部变量 将一个变量声明为函数的局部变量,那么这个局部变量在函数执行完成之后不会被释放,而是继续保留在内存中 static 全局变量 表示一个变量在当前文件的全局内可访问 s ...

  7. hadoop-2.3.0-cdh5.1.0伪分布安装(基于centos)

    一.环境 操作系统:CentOS 6.5 64位操作系统  注:Hadoop2.0以上采用的是jdk环境是1.7,Linux自带的jdk卸载掉,重新安装 下载地址:http://www.oracle. ...

  8. Linux下ping加上时间戳

    命令(ping10次): ping 192.168.5.160 -c 10 | awk '{ print $0"\t" strftime("%H:%M:%S", ...

  9. C# 关于跨线程访问控件问题

    跨线程访问控件问题的原因是:控件都是在主线程中创建的,而系统默认控件的修改权归其创建线程所有.在子线程中如果需要直接修改控件的内容,需要使用委托机制将控件的修改操作交给主线程处理.因此,当没有使用委托 ...

  10. 序列化 (C#)

    序列化是指将对象转换成字节流,从而存储对象或将对象传输到内存.数据库或文件的过程. 它的主要用途是保存对象的状态,以便能够在需要时重新创建对象. 反向过程称为"反序列化". 序列化 ...