奇怪,向mysql插入数据部分会出现Data truncated for column 错误

使用框架:hibernate+spring+webwork+freemark

程序部分:
public String UpInaccExcel() throws Exception
{
message="";
if (!hasPermission(PermConst.INACC_BATCHADD)) {
message = "抱歉,您无该操作的权限!";
return Constant.NOT_AUTHORIZE;
}
if(inaccFile == null)
{
message="请选择要上传的Excel文件";
return INPUT;
}
else
{
try{
Workbook wb = Workbook.getWorkbook(inaccFile);
Sheet sheet = wb.getSheet(0);
//总行数
int count = sheet.getRows();
//取出标题
String a1 = sheet.getCell( 0 , 0 ).getContents().trim();
String a2 = sheet.getCell( 1 , 0 ).getContents().trim();
String a3 = sheet.getCell( 2 , 0 ).getContents().trim();
String a4 = sheet.getCell( 3 , 0 ).getContents().trim();
String a5 = sheet.getCell( 4 , 0 ).getContents().trim();
String a6 = sheet.getCell( 5 , 0 ).getContents().trim();
String a7 = sheet.getCell( 6 , 0 ).getContents().trim();
String a8 = sheet.getCell( 7 , 0 ).getContents().trim();
String a9 = sheet.getCell( 8 , 0 ).getContents().trim();
String a10 = sheet.getCell( 9 , 0 ).getContents().trim();

if(a1.equals("所在仓库") && a2.equals("品牌")&& a3.equals("产品大类")
&& a4.equals("配件编号")&& a5.equals("配件名称") && a6.equals("配件规格")&& a7.equals("仓位")
&& a8.equals("配件数量")&& a9.equals("配件单价")&& a10.equals("配件金额"))
{
for ( int i = 1 ;i < count;i ++ ){

try{
Cell[] cells = sheet.getRow(i);
System.out.println(cells[ 0 ].getContents()
+ cells[ 1 ].getContents() + cells[ 2 ].getContents()
+ cells[ 3 ].getContents() + cells[ 4 ].getContents()
+ cells[ 5 ].getContents() + cells[ 6 ].getContents()+ "---"+Double.parseDouble(cells[ 9 ].getContents())+"---

-"+StringUtil.MySubstring(cells[ 5 ].getContents(),100));
String scope = "storageName=?";
Collection paras = new ArrayList();
paras.add(cells[ 0 ].getContents());
Storage tmpstroage = this.storageService.GetInfo(scope, paras);
if(tmpstroage!=null){
Inaccessories tempinacc = new Inaccessories();
tempinacc.setStorage(tmpstroage);
tempinacc.setInBrand(StringUtil.MySubstring(cells[ 1 ].getContents(),50));
tempinacc.setInProducts(StringUtil.MySubstring(cells[ 2 ].getContents(),50));
tempinacc.setInAccNo(StringUtil.MySubstring(cells[ 3 ].getContents(),50));
tempinacc.setInAccName(StringUtil.MySubstring(cells[ 4 ].getContents(),100));
tempinacc.setInAccStandards(StringUtil.MySubstring(cells[ 5 ].getContents(),100));
tempinacc.setInPhysicsSort(StringUtil.MySubstring(cells[ 6 ].getContents(),400));
tempinacc.setInSortNum(Integer.parseInt(cells[ 7 ].getContents().trim()));
tempinacc.setInAccPrice(Double.parseDouble(cells[ 8 ].getContents().trim()));
tempinacc.setInAmount(Double.parseDouble(cells[ 9 ].getContents().trim()));
tempinacc.setInCreateDate(new Date());
tempinacc.setInOperator(getSessionAccount().getName());
tempinacc.setInSatus(0);
this.inaccessoriesService.save(tempinacc);
}
else
{
inaccFile=null;
message="已经成功上传前"+(i-1)+"条数据,第"+i+"的仓库不存在请先添加仓库!";
ToUrlPath="inAccHistory.do";
return SUCCESS;
}
}
catch(Exception ex)
{
inaccFile=null;
System.out.print(ex.getMessage());
message="已经成功上传前"+(i-1)+"条数据,请检查第"+i+"以后的数据是否完整、是否按格式!";
ToUrlPath="inAccHistory.do";

return SUCCESS;

}
}
wb.close();
inaccFile=null;
message="成功上传"+(count-1)+"条数据";
ToUrlPath="inAccHistory.do";
return SUCCESS;

}
else
{
wb.close();
inaccFile=null;
message="请检查信息是否按格式。";
return INPUT;

}

}
catch(Exception ex){
inaccFile=null;
message="上传失败!请检查上传的文件是否为excel格式、信息是否完整、是否按格式、且大小是否超过1兆。"+ex.toString();
return INPUT;
}
}
}

插入的excel数据
所在仓库 品牌 产品大类 配件编号 配件名称 配件规格 仓位 配件数量 配件单价 配件金额
超人产品仓 超人小家电 剃须刀 60004 超人剃须刀SA22 旋转式1刀头 前台 1 16.64 76.18
超人产品仓 超人小家电 剃须刀 60002 超人剃须刀SA96 浮动旋转双刀头 前台 2 38.09 76.18
超人产品仓 超人小家电 剃须刀 60005 超人剃须刀SA90 旋转式2刀头   前台 1 41.34 41.34
超人产品仓 超人小家电 剃须刀 60006 超人剃须刀SA851 旋转式3刀头 前台 1 62.14 62.14
超人产品仓 超人小家电 剃须刀 60007 超人剃须刀SA851 浮动式双头 前台 2 64.74 129.48


第一,二条数就会出错以下错误.其它数据不会出错这样的错误
Hibernate operation: could not insert: [com.equipment.vo.Inaccessories]; uncategorized SQLException for SQL [insert into equipment.inaccessories

(In_SortageID, In_AccNo, In_Brand, In_Products, In_AccName, In_PhysicsSort, In_AccStandards, In_CreateDate, In_SortNum, In_Batch, In_AccPrice, In_Amount,

In_Operator, In_Satus, In_ReviewTime, In_ReviewOperator) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; SQL state [01004]; error code [0]; Data

truncation: Data truncated for column 'In_Amount' at row 1

我试过把配件金额那列的数据都改成76.18都会有这样的问题.其实数据就不会. 不知道为什么,也很奇怪.请问谁遇到过这样的问题,如何解决的.先在这谢过大家啦!

我的In_Amount是类型是double的.数据库里的类型是decimal(10,2)

经查明:
decimal(10,2)对应double时是有问题存在.原因不明.知道的朋友补充一下
我把类型改成double(10,2)时就解决了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值