【问题标题】:Data base update query exception handling error数据库更新查询异常处理错误
【发布时间】:2012-10-29 13:34:37
【问题描述】:
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)       

请提出可能是什么问题............

【问题讨论】:

  • 它看起来像数据类型或数据类型长度问题。你通过代码传递什么?该错误表示您传递的值超出了数据库中mobile number 的允许长度
  • 不要仅仅连接字符串来构建查询,而是使用PreparedStatement
  • Goel:你是对的......我用int而不是bigint作为手机号码......我如何改变数据类型现在问题解决了......谢谢
  • @KarthikKolla,不客气。建议请使用@ 在 SO 上标记人员,以便通知他们您在某些 cmets 中引用他们。在这里很好,但这可能会导致您无限期地等待,以防您要求更多澄清,因为不会通知此人,而且很少有人来查看那里的帖子。如果您打算积极参与 SO,您可能需要阅读 stackoverflow.com/faq

标签: java jdbc jdbc-odbc


【解决方案1】:

来自变量 mobileNumber 的值超过了它的限制。因此,请检查您在 DB 和 java 程序中定义的数据类型,并验证您提供的要保存的 mobileNumber。

【讨论】:

  • 谢谢....我将数据库中的数据类型从 int 更改为 bigint .... 现在问题解决了
【解决方案2】:

尝试检查“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 注入攻击的可能性。

【讨论】:

  • 谢谢....我将数据库中的数据类型从 int 更改为 bigint .... 现在问题解决了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 2017-01-30
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多