sql >> Databáze >  >> RDS >> Mysql

Java JDBC -vložit záznam do databáze pouze v případě, že neexistuje

ResultSet rs =pStmnt.executeQuery() vrátí sadu výsledků, která nikdy nebude mít hodnotu null, dokud neexistuje žádná výjimka, pokud chcete zkontrolovat, zda existují záznamy, můžete použít metodu rs.next() ověřit, zda tam jsou nějaké záznamy nebo ne sada výsledků

 public boolean createRecord(Myuser myuser) 
    {
        Connection cnnct = null;
        PreparedStatement pStmnt = null;
        try
        {
            cnnct = getConnection();
            String preQueryStatement
            = "SELECT * FROM MYUSER WHERE MYUSER.USERID = ?;";
            pStmnt = cnnct.prepareStatement(preQueryStatement);
            pStmnt.setLong(1,youruserid);
            ResultSet rs = pStmnt.executeQuery();
            if (!rs.next())
            {
                String insertStatement
                = "INSERT INTO MYUSER VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
                PreparedStatement ps = cnnct.prepareStatement(insertStatement);

                ps.setString(1, myuser.getUserid());
                ps.setString(2, myuser.getName());
                ps.setString(3, myuser.getPassword());
                ps.setString(4, myuser.getEmail());
                ps.setString(5, myuser.getPhone());
                ps.setString(6, myuser.getAddress());
                ps.setString(7, myuser.getSecQn());
                ps.setString(8, myuser.getSecAns());

                System.out.println("new user inserted");
                return true;
            } 
            else
            {
                System.out.println("user already in data base");
                return false;
            }

        } 

        catch (SQLException ex) 
        {
            while (ex != null) 
            {
                ex.printStackTrace();
                ex = ex.getNextException();
            }
        } 

        catch (IOException ex) 
        {
            ex.printStackTrace();
        }

        finally 
        {
            if (pStmnt != null) 
            {
                try 
                {

                    pStmnt.close();
                } 
                catch (SQLException e)
                {

                }
            }

            if (cnnct!= null) 
            {

                try 
                {
                    cnnct.close();

                } 
                catch (SQLException sqlEx) 
                {

                }
            }
        }
    }



  1. Použijte proměnnou s TOP v příkazu select na serveru SQL Server, aniž by byla dynamická

  2. MySQL vložit řádek na duplicitní klíč aktualizuje více sloupců

  3. Jak odstranit koncové nuly z desetinných míst v PostgreSQL

  4. Více dotazů provedených v jazyce Java v jednom příkazu