java - java 提供什么工具来从 SQL 中的executeUpdate() 方法的命令行获取输入

标签 java sql

Scanner input = new Scanner(System.in);
System.out.println("Enter Staff Name: ");
String staffName = input.nextLine();
System.out.println("Enter Department Name: ");
String department =Input.nextLine();

stmt.executeUpdate("insert into staff (StaffName,department) " + "values " +  
staffName,department);

这给了我一个错误并要求我检查 SQL 手册。这可能吗?

最佳答案

这是可能的,因为它已经发生了。 SQL 中的字符串必须用引号引起来:

insert into foo (bar, baz) values ('hello', 'world');

学习使用prepared statements而不是字符串连接,使您的查询有效,并且不受 SQL injection 的约束攻击:

PreparedStatement stmt = connection.prepareStatement("insert into staff (StaffName, department) values (?, ?)");
stmt.setString(1, staffName);
stmt.setString(2, department);
stmt.executeUpdate();

使用上面的内容,您不需要弄乱引号,也不需要在字符串中转义它们。

关于java - java 提供什么工具来从 SQL 中的executeUpdate() 方法的命令行获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18197447/

相关文章:

java - Checkstyle 输出大量调试语句

java - 如何创建随机字母的单词?

mysql - 将 MySQL 简单查询转换为 SQL Server

mysql infile无法访问子查询中的@user变量

sql - Azure 上的 SSAS 表格?

sql - 在 Oracle 中使用 NOT LIKE

java - 使用XML数据时出错内容类型 'application/xml;charset=utf-8' spring不支持

java - 如何进行JoinTable注解映射

java - 有没有不应该使用分析器的情况?

php - 如何获取MySQL数据库表的最后一个id,并将其存储在变量中