Qual a forma correta de se fazer inserção no banco?

Assim:

String sql = 'INSERT INTO tblclientes (nome,rf,secaoid,status) VALUES (?,?,?,?)';
PreparedStatement pst = conexao.conn.prepareStatement(sql);
pst.setString(1, cliente.getNome());
pst.setString(2, cliente.getRf());
pst.setInt(3, cliente.getSecaoid());
pst.setString(4, "ATIVO");
pst.executeUpdate(); 

ou assim:

sql = "INSERT INTO pessoa (nome, rf, secaoid, status) VALUES ("
          + "'" + pCliente.getNome() + "',"
          + "'" + pCliente.getRf() + "',"
          + "'" + pCliente.getSecaoid() + "',"
          + "'" + pCliente.getStatus() + "'"
          + ");";
        
return conexao.insertSQL(sql);
1 curtida

Geralmente a forma correta é aquela que funciona, se todas funcionam então todas estão corretas.

Uma vez eu estava bisbilhotando o código da biblioteca Java e encontrei algo parecido com isso:

boolean value = true;

if (value == true) {
  return false;

return false;

Isso está correto? Claro que está pois funciona, embora fosse mais simples ter substituído tudo por um return false;

Quando uma pessoa lê os ingredientes de um pacote de biscoito dificilmente pergunta se foi colocado o chocolate primeiro ou foi o açúcar, o que estou querendo dizer é que quase ninguém se preocupa como o processo é feito, só se preocupa se realmente é saboroso (funciona).

Se eu disser que ambos exemplos seu podem estar errados.

Suponha que o nome do cliente seja “SELECT” ou “‘SELECT’”:

Cliente c1 = new Cliente();
c1.setNome("SELECT");

Cliente c2 = new Cliente();
c2.setNome("'SELECT'");

Teste e me diga se funcionam

No sou desenvolvedor Java, mas, trabalho com duas linguagens (C# e PHP), a melhor forma de fazer um CRUD na minha visão é a primeira, porque, vai evitar Injeção de SQL, as conversões serão feitas automaticamente e isso é um fator primordial em desenvolvimento, manter um padrão também é um fator importantíssimo para futuras manutenção.

Então, isso que eu estou dizendo não é opinião, são razões pertinentes e reais no desenvolvimento no dia a dia! Use a primeira forma, sempre que possível, vai funcionar 100%.

Em PHP e C# por exemplo temos isso como premissa, utilizando as estruturas propostas para que tenhamos um maior controle no código e uma manutenção mais tranquila.