String Query="insert into sms (Jobno, Mobilenumber, MStatus, ReceivedTime, AmountDeducted, Message, DoneTime) values ("+jobnum +","+mobilenum+","+ smsstatus+",'"+ rxtimestamp+ "',"+ amt+",'"+smstxt+"','"+timedone1+"')";
注意:通过Mysql,上面的查询成功执行....
我在程序中导入了所有必需的库及其各自的接口.... 当我通过java panel / ide执行时抛出以下错误?
Exception in thread "main" com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'Mobilenumber' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2983)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1402)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1317)
请建议可能出现的问题...........
答案 0 :(得分:1)
变量mobileNumber的值大于其限制。因此,请检查您在DB和Java程序中定义的数据类型,并验证您已保存的mobileNumber。
答案 1 :(得分:1)
尝试检查列'Mobilenumber'的类型,范围和长度,并将插入的值放入''以避免出现空格,插入的移动数字中的其他字符(例如“+”或“/”)和长手机号码。如果它是一个实数,MySQL应该正确地将文本转换为数字。
即。结果代码应为:
String Query="insert into sms (Jobno, Mobilenumber, MStatus, ReceivedTime, AmountDeducted, Message, DoneTime) values ('"+jobnum +"','"+mobilenum+"','"+ smsstatus+"','"+ rxtimestamp+ "','"+ amt+"','"+smstxt+"','"+timedone1+"')";
另外一个提示:总是尝试使用prepared statements来避免SQL注入攻击的可能性。