如何防止重复。 Java中,SQL

时间:2017-10-05 09:38:01

标签: java mysql jdbc

我尝试复制username列中的条目,但结果总是在else语句中,即数据已成功插入表中,不应基于{{1声明。顺便说一下if

这是代码:

String value1=username1.getText();

4 个答案:

答案 0 :(得分:1)

您只需创建SQL字符串并从不运行它(相反,您将其与用户名进行比较,该用户名始终为false)。

您应该实际执行它并检查结果。 例如。 (为简洁起见,省略了错误处理和资源清理):

Connection conn = // Connect to the database... 
PreparedStatement ps = 
    conn.prepareStatement("SELECT username FROM login where username = ?";
ps.setString(1, value1);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
    JOptionPane.showMessageDialog
        (null,"username is already existed! please create new username.");   
} 

答案 1 :(得分:0)

如果你只是将它分配给一个完整的SELECT语句,

sq将永远不会等于value1:

String sq = "SELECT username FROM login where username = '"+value1+"'";

您缺少的是sq String的数据库请求。

答案 2 :(得分:0)

sq包含查询(sql代码)

String sq = "SELECT username FROM login where username = '"+value1+"'";

value1包含用户名值(例如“user1”)。所以

sq.equals(value1)

总是假的

"SELECT username FROM login where username = '"+value1+"'" != value1

答案 3 :(得分:0)

字符串基础:

String sq = "Something in double quotes"

Something分配给sq。

并且

String value1=username1.getText();

可以获得一些其他字符串,例如" root"

sq.equals(value1)

现在String类equals()方法检查两个字符串的内容(sq和value1)。

如果不等于返回false,则会发生这种情况。

现在如何实现目标?人们已经回答了检查。

我建议你自己study

相关问题