//jdbctemplate批量新增的使用MENU_ID_LIST是前端页面传递到后端控制层,再由控制层传到实现层的List

 //JdbcTemplate是spring jdbctemplate通过注解实例化得到的

 public int insertEmpMenu(final String EMP_ID_, final List<String> MENU_ID_LIST, Map<String, Object> operator) {
if (MENU_ID_LIST == null || MENU_ID_LIST.size() == 0) {//常见的判断方式
return 0;
} String sql = "insert into OM_EMPMENU(ID_, EMP_ID_, MENU_ID_) values (?, ?, ?)";
BatchPreparedStatementSetter batch = new BatchPreparedStatementSetter() {
public void setValues(PreparedStatement ps, int i) throws SQLException {
ps.setString(1, BaseUtils.getUuid());
ps.setString(2, EMP_ID_);
ps.setString(3, MENU_ID_LIST.get(i));
} public int getBatchSize() {
return MENU_ID_LIST.size();
}
};
return JdbcTemplate.batchUpdate(sql, batch).length;
}

BigDecimal : Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处 理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用 java.math.BigDecimal。

当从数据库中取出的数是BigDecimal,需要对数据进行BigDecimal造型,然后调用相关方法,取得值,常见方法doubleValue(),intValue()。String类型可以直接造型

Double AVL_AMOUNT_ = ((BigDecimal) matYearPlanSum.get("AMOUNT_")).doubleValue();

(String) matMonthPlan.get("MAT_DESC_")

而如果是自己对取得的数据再进行计算获得新值时,从Map里取就不需要再使用BigDecimal,而是使用自己为其设定的类型

 for (Map<String, Object> matYearPlanSum : matYearPlanSumList) {
AVL_AMOUNT_ = ((BigDecimal) matYearPlanSum.get("AMOUNT_")).doubleValue();
matYearPlanSum.put("AVL_AMOUNT_", AVL_AMOUNT_);
for (Map<String, Object> matMonthPlanHis : matDeptMonthPlanSpentBudget) {
if (matYearPlanSum.get("MAT_NO_").equals(matMonthPlanHis.get("MAT_NO_"))) {
if (matYearPlanSum.get("AMOUNT_") != null && matMonthPlanHis.get("SPENT_AMOUNT_") != null) {
AVL_AMOUNT_ = ((BigDecimal) matYearPlanSum.get("AMOUNT_")).doubleValue() - ((BigDecimal) matMonthPlanHis.get("SPENT_AMOUNT_")).doubleValue();
}
matYearPlanSum.put("AVL_AMOUNT_", AVL_AMOUNT_);
break;
}
}
}
for (Map<String, Object> matMonthPlan : matMonthPlanList) {
for (Map<String, Object> matYearPlanSum : matYearPlanSumList) {
if (matMonthPlan.get("MAT_NO_").equals(matYearPlanSum.get("MAT_NO_"))) {
if (matYearPlanSum.get("ENABLE_AMOUNT_") != null && matMonthPlan.get("AMOUNT_") != null) {
ENABLE_AMOUNT_ = ((BigDecimal) matMonthPlan.get("AMOUNT_")).doubleValue();
ENABLE_AMOUNT_ = (Double) matYearPlanSum.get("ENABLE_AMOUNT_") + ENABLE_AMOUNT_;//例如此处的Double
}
matMonthPlan.put("ENABLE_AMOUNT_", ENABLE_AMOUNT_);
break;
}
}
}

常见报错:Caused by: java.sql.SQLException: ORA-00911: 无效字符 是因为拼接的SQL语句后面多了一个分号。使用spring jdbctemplate不需要在SQL语句后加分号

to_date() 作用将字符类型按一定格式转化为日期类型:
具体用法:to_date(''2004-11-27'',''yyyy-mm-dd''),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。
如;to_date(''2004-11-27 13:34:43'', ''yyyy-mm-dd hh24:mi:ss'') 将得到具体的时间

最新文章

  1. 测试dns
  2. C#语法糖(Csharp Syntactic sugar)大汇总
  3. Linux rsync网站目录同步功能的实现
  4. C# “快捷方式” 实现程序开机启动
  5. Windows server 2008R2部署服务批量安装Windows7教程
  6. Nginx负载均衡:分布式/热备Web Server的搭建
  7. 手机版WEB开发经验分享,手机版网站开发注意事项,网站自适应,手机版网站自适应,移动安卓APP自适应
  8. 浅谈javascript继承体系
  9. MySQL查询所有数据库表出错
  10. 计蒜客NOIP模拟赛4 D1T2小X的密室
  11. 使用Multiplayer Networking做一个简单的多人游戏例子-3/3(Unity3D开发之二十七)
  12. 【Linux】Linux主要目录以及说明
  13. Python学习之路——装饰器
  14. 阿里云 ss!!!
  15. 代码学习-Linux内核网卡收包过程(NAPI)【转】
  16. Linux:DNS服务器搭建及配置
  17. HDU 3980 Paint Chain (sg函数)
  18. SpringMVC系列(七)视图解析器和视图
  19. 查询yum包安装路径
  20. 远景GIS云产品规划

热门文章

  1. File类-文件基本操作
  2. 配置oracle instance client
  3. nodejs express 静态文件的路径
  4. ios9适配系列教程——ios9新变化
  5. Asp.Net MVC3 简单入门详解过滤器Filter(转)
  6. JAVA的垃圾回收机制
  7. 点击弹出li所在的序列号
  8. 个人作业——关于K米的产品案例分析
  9. 软件工程(FZU2015)赛季得分榜,第六回合
  10. [转]在html中控制自动换行