- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了一个奇怪的问题:
我有一列“MaxDealtDamage”,例如低于 1000000 (1000k)。代码是这样的:
class xyz = PlayerData.GetData(player);
xyz.LoginTimes++;
PlayerData.SetData(xyz, player);
当它是 1000000 (1000k) 或更高时,将发送此错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '.000,
MaxDefense
= 0 WHERE UUID='d839d1f0-ad5b-4922-841c-1d6ee05d9f56'' at line 1
它的行为就像尝试给他一个包含“4.000.000”的字符串,但它是一个值为“4000000”(4000k)的整数。为了确保运行时的输出是 4000000,我仔细检查了它。
这里是查询:
MessageFormat.format("INSERT INTO PlayerData(
UUID
,VIPExpirationDate
,IPv4
,FirstPlayTime
,LastPlayTime
,TotalPlayTime
,TotalLogins
,MaxDealtDamage
,MaxDefense
) " + "VALUES(''{0}'',''{1}'',''{2}'',''{3}'',''{4}'',{5},{6},{7},{8});", data.UUID.toString(), DBDateFormat.format(data.VIPExpirationDate), data.IPv4, DBDateFormat.format(data.FirstPlayTime), DBDateFormat.format(data.LastPlayTime), data.TotalPlayTime, data.TotalLogins, data.MaxDealtDamage, data.MaxDefense);
最佳答案
MessageFormat
不是用于创建 SQL 语句的工具。它是一个简单的实用程序,用于构建具有正确格式的文本消息。
您应该使用 PreparedStatement
使用绑定(bind)参数,如 Using Prepared Statements 中所述教程。 JDBC 将负责转义和格式化提供的值,以便数据库服务器可以接收它们,同时防止 SQL Injections .
关于java - INSERT INTO 语句自动向从 1000k 开始的 java 整数添加千位分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54316446/
我正在使用报表查看器控件 (rdlc) 生成报表。我的一列表示来自 SQL 数据库的十进制值,例如: 5199.9800 在此列的末尾,汇总了所有金额。因此,金额行以这种方式表示: =Fields!
我在这段代码中尝试用以下模式替换引号 (') 的千位分隔符 (.):###'###,## import java.text.*; public class NumberFormatTests
对于具有财务计算的网站,我尝试将包含在 HTML 输入字段中的每个数字转换为 xxx,xxx,xxx.xx 格式,其中千位分隔符为逗号,小数点为小数点。与我们从 Excel 中了解到的类似。 现在是挑
有没有一种方法可以使用字符串格式化程序将 Thousands、Millions、Billions 格式化为 123K、123M、123B 而无需更改代码以将值除以 Thousand、Million 或
我是一名优秀的程序员,十分优秀!