Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL语句中使用Java变量?_Java - Fatal编程技术网

如何在SQL语句中使用Java变量?

如何在SQL语句中使用Java变量?,java,Java,我正在尝试使用本地变量用户名和密码添加到我的表中。我只尝试了变量,条目被计数,但它显示为空 公共类FullDB { 公共静态字符串参数 { FullDB连接=新的FullDB; } 公共全文数据库 { createConnectionusman,你好,真的; } public void createConnectionString用户名、字符串密码、布尔选择{ 试一试{ //连接到数据库 Class.forNamecom.mysql.cj.jdbc.Driver; Connection conn

我正在尝试使用本地变量用户名和密码添加到我的表中。我只尝试了变量,条目被计数,但它显示为空

公共类FullDB { 公共静态字符串参数 { FullDB连接=新的FullDB; } 公共全文数据库 { createConnectionusman,你好,真的; } public void createConnectionString用户名、字符串密码、布尔选择{ 试一试{ //连接到数据库 Class.forNamecom.mysql.cj.jdbc.Driver; Connection connect=DriverManager.getConnection jdbc:mysql://localhost:3306/?根 System.out.PrintLn连接到数据库; //SQL语句 语句查询=connect.createStatement; //插入语句 如果用户名!=null {
//query.executeUpdate插入用户+用户名、密码+值用户名、密码; 来自用户的query.executeElete; } 如果选择==true { ResultSet rs=query.executeQuerySELECT*FROM users; System.out.PrintlUser数据:; 惠勒,下一个 { String table=rs.getStringUserName; System.out.PrintLTable; } } } 捕获类NotFoundException ex { Logger.getLoggerFullDB.class.getName.logLevel.SEVERE,null,ex; } 捕获SQLException-ex { Logger.getLoggerFullDB.class.getName.logLevel.SEVERE,null,ex; 例如,打印跟踪; } } } 试试这个

query.executeUpdate("INSERT INTO users (UserName,Password) VALUES ('" + userName + "','" + password + "');");
也许双引号放错地方了。 尝试直接在数据库命令行中使用相同的查询,不使用倒逗号,并使用一些伪数据,如果它在那里工作,请进行必要的修改以适合您的代码

编辑

正如在下面的文章中提到的,在SQL字符串中使用值存在一些安全问题,这是一种简单但不是最安全的方法


对于corse,值必须用单引号转义,我总是忘记它们。上述代码中已经解决了此问题。

您应该学习如何使用JDBC运行查询。还请考虑到您实际上是在删除代码段中用户表中的所有条目,所以运行SELECT查询时没有得到任何结果也就不足为奇了。这是出于测试目的,当我运行SELECT查询时,它实际上被注释掉了。我终于找到了方法,我像equaly.executeUpdateINSERT一样将它插入到用户+用户名、密码+值“+UserName+”、“+Password+”;在SQL字符串中插入值是一个向量。此外,值必须用单引号'转义。