java - 无法将 UUID 插入嵌入式数据库
问题描述
我一直在尝试将数据从应用程序插入数据库,但总是收到与 UUID 编号相关的语法错误,该编号将是客户的 ID 和表的主键。该列设置为BIGINT
,它总是返回。这是代码:
String a = txtNombre.getText();
String b = txtApellido.getText();
String c = txtLetras.getText();
String d = txtFin.getText();
String e = txtMensual.getText();
e = e.replaceAll("[^\\d.]","");
String f = txtfecha.getText();
String g = txtdeuda.getText();
g = g.replaceAll("[^\\d.]","");
int c1 = Integer.parseInt(c);
long result = UUID.nameUUIDFromBytes((a+b).getBytes()).getMostSignificantBits();
String x = "" + result + "";
String sbStr = x.substring(0, 6);
sbStr = sbStr.replaceAll("[^\\d.]","");
long csId = Long.parseLong(sbStr);
JOptionPane.showInternalMessageDialog(dskPane, "Cliente Ingresado con id#" + csId, "Cliente a Base de"
+ "Datos", 1, null);
connectMyDB con = new connectMyDB();
Statement state = null;
try {
Connection charlie = con.connect();
state = charlie.createStatement();
String insert = "insert into APP.CLIENTES("+csId+",'"+a+"',"
+ "'"+b+"',"+c1+","+d+","+e+",'"+f+"',"+g+")";
state.executeUpdate(insert);
System.out.println(insert);
if(state!=null) {
state.close();
charlie.close();
}
} catch(SQLException ex) {
System.out.print(ex);
}
我总是得到sql.SQLSyntaxErrorException: Syntax error: Encountered "61297" at line 1, column 26
。有没有办法避免这种情况?
解决方案
插入 SQL 命令的正确方法之一是:
insert into tables values (val1, val2, ...)
您还必须使用PreparedStatement来防止 SQL 注入。
推荐阅读
- c# - 我如何设置最大值。现有预制件的数量,并且在玩家通过它们后还会在 Unity 中消失预制件地板?
- heroku - 部署时Python套接字服务器不工作
- flutter - 如果在 Flutter android 中使用 webview 页面时互联网连接丢失,则显示消息“无互联网”
- cordova - 如何在从 PC 转移的 Mac 上运行 Ionic 应用程序
- javascript - 如何从对象中删除属性但保留其值?
- android - 删除图像会留下甚至不存在的空占位符 (Android Studio)
- numpy - 在 Spyder 的变量资源管理器中加载整个列表
- git - 在推送到 github 之前,我是否需要 git checkout 从 svn 转换创建的远程分支
- google-maps - form.currentstate.validate() 失败 - Flutter
- ios - 在动态 UITableView 中使用多个 UIPickerView