如何在SQL语句中使用Java变量?
我正在尝试使用本地变量用户名和密码添加到我的表中。我只尝试了变量,条目被计数,但它显示为空 公共类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 {如何在SQL语句中使用Java变量?,java,Java,我正在尝试使用本地变量用户名和密码添加到我的表中。我只尝试了变量,条目被计数,但它显示为空 公共类FullDB { 公共静态字符串参数 { FullDB连接=新的FullDB; } 公共全文数据库 { createConnectionusman,你好,真的; } public void createConnectionString用户名、字符串密码、布尔选择{ 试一试{ //连接到数据库 Class.forNamecom.mysql.cj.jdbc.Driver; Connection conn
//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字符串中插入值是一个向量。此外,值必须用单引号'转义。