如何在原始用户输入中保存mysql数据库中的数据

时间:2017-09-19 07:51:11

标签: java mysql

我为评估创建自定义应用, 所以一些输入和生成的数据是浮动值, 所以我不会将这些数据保存在MySQL数据库中......就像在原始值中一样

作为示例 - 10.25必须保存10.25而不是10.00 不幸的是,它保存为10.00(如何将数据保存为10.25) 但在这种情况下,我的代码保存了以前的值,

这是我使用的代码 -

connectDB();
try{

    String value1 = txt_search_code.getText();
    String value2 = txt_item_code.getText();
    String value3 = txt_discription.getText();
    String value4 = txt_bin_balance.getText();
    String value5 = txt_date.getText();
    String value6 = txt_issued_quantaty.getText();
    String value7 = txt_issued_inno.getText();
    String value8 = txt_arrived_quantaty.getText();
    String value9 = txt_arrived_inno.getText();
    String value10 = txt_final_bin_balance.getText();

    String sql = "Update tbl_stock set No='"+value1+"',ITEM_CODE='"+value2+"',DISCRIPTION='"+value3+"',PREVIOUS_BIN_BALANCE='"+value4+
                 "',DATE='"+value5+"',ISSUED_QUANTATY='"+value6+"',ISSUED_INVOICE_NO='"+value7+"',ARRIVED_QUANTATY='"+value8+"',ARRIVED_INVOICE_NO='"+value9+"',FINAL_BINCARD_BALANCE='"+value10+"'WHERE No='"+value1+"' ";
    PreparedStatement pstmt = con.prepareStatement(sql);
    pstmt.execute();
    JOptionPane.showMessageDialog(null, " Your new records saved Succsessfully!!");

}catch(Exception e){

    JOptionPane.showMessageDialog(null,e);
}

closeDB(); 

这是数据库的MYSQL all语句

SELECT * FROM db_biling.tbl_stock;
    tbl_stock.No, tbl_stock.ITEM_CODE, tbl_stock.DISCRIPTION, 
    tbl_stock.PREVIOUS_BIN_BALANCE, tbl_stock.DATE, 
    tbl_stock.ISSUED_QUANTATY, tbl_stock.ISSUED_INVOICE_NO,     
    tbl_stock.ARRIVED_QUANTATY, tbl_stock.ARRIVED_INVOICE_NO, 
    tbl_stock.FINAL_BINCARD_BALANCE FROM db_biling.tbl_stock;

那么如何将数据保存为原始值 请帮我解决这个问题 请举个例子 感谢

更新

CREATE TABLE tbl_stock ( 
    No int(11) NOT NULL, 
    ITEM_CODE varchar(45) DEFAULT NULL, 
    DISCRIPTION varchar(45) DEFAULT NULL, 
    PREVIOUS_BIN_BALANCE decimal(2,0) DEFAULT NULL, 
    DATE varchar(45) DEFAULT NULL, 
    ISSUED_QUANTATY decimal(2,0) DEFAULT NULL, 
    ISSUED_INVOICE_NO varchar(45) DEFAULT NULL, 
    ARRIVED_QUANTATY decimal(2,0) DEFAULT NULL, 
    ARRIVED_INVOICE_NO varchar(45) DEFAULT NULL, 
    FINAL_BINCARD_BALANCE decimal(2,0) DEFAULT NULL, 
    PRIMARY KEY (No) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 个答案:

答案 0 :(得分:0)

我认为问题在于数据类型的精确度

如果它是DECIMAL(10,2),它将总共有10个数字,其中2个是十进制值(2个十进制舍入意味着10.215保存为10.22,10.214变为10.21)。

在你的情况下,你使用了十进制(2,0)..所以10.25将变为10。

REF: https://stackoverflow.com/a/13501505/7016969