mysql truncated_奇怪,向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 

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刀头前台116.6476.18

超人产品仓超人小家电剃须刀60002超人剃须刀SA96浮动旋转双刀头前台238.0976.18

超人产品仓超人小家电剃须刀60005超人剃须刀SA90旋转式2刀头   前台141.3441.34

超人产品仓超人小家电剃须刀60006超人剃须刀SA851旋转式3刀头前台162.1462.14

超人产品仓超人小家电剃须刀60007超人剃须刀SA851浮动式双头前台264.74129.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)

2009年3月02日 16:48

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值