Boa tarde pessoal !
Tenho uma aplicação que faz o seguinte: Eu efetuo o login com email e senha, após efetuar o login eu buscar no banco de dados os atributos nome, endereço, telefone, email, senha…
e seto os atributos de usuario, quando isso acontece é disponibilizado uma tele para eu cadastrar os medicamentos.
Eu preciso pegar o idUsuario e idRemedio, para preencher o campo da tabela prescricaoRemedio. Pois idUsuario e idRmedio são chaves estrangeiras .
idUsuario com os atributos campos setados apos o login.
idRemedio coms os mesmo atributos setados após cadastrar o login.
ou seja isso está acontecendo,mas na minha classe DAO está dando um erro que não consigo encontrar o mesmo:
public class PrescricaoRemedioDAO {
public boolean inserirDados(Usuario usuario, PrescricaoRemedio pscRemedio) {
int idRemedio = 0;
int idUsuario = 0;
boolean resultado = false;
Connection con = Conexao.conectar();
try {
String consultaRem = "SELECT idRemedio FROM remedio WHERE remedio = "+pscRemedio.getMedicamento().getRemedio();// NESSE PONTO ENTRE ASPAS PARA QUE O MYSQL ENTENDA COMO UM SELECT, FICARIA ASSIM : SELECT idRemedio FROm remedio where remedio = "nome do remedio"; entre aspas, mas como fazer?
PreparedStatement pst = con.prepareStatement(consultaRem);
ResultSet rs = pst.executeQuery();
if (rs.next()) {
idRemedio = rs.getInt(1); // AGORA NÃO SEI SE ESSE RS.NEXT ESTARIA CORRETO.
JOptionPane.showMessageDialog(null, "idremedio "+idRemedio);
}
String consultaUser = "SELECT idUsuario FROM usuario WHERE nome = "+usuario.getNome();
PreparedStatement ps = con.prepareStatement(consultaUser);
ResultSet rset = ps.executeQuery();
if (rset.next()) {
idUsuario = rset.getInt(1);
JOptionPane.showMessageDialog(null, "idusuario "+idUsuario);
}
String inserir = "INSERT INTO prescricaoRemedio (dataInicio,qtdDias,qtdVezesDia,idRemedio,idUsuario) VALUES(?,?,?,?,?)";
PreparedStatement p = con.prepareStatement(inserir);
p.setString(1, pscRemedio.getDataInicio());
p.setInt(2, pscRemedio.getQtdDias());
p.setInt(3, pscRemedio.getQtdVezesDias());
p.setInt(4, idRemedio);
p.setInt(5, idUsuario);
p.execute();
con.close();
resultado = true;
} catch (SQLException ex) {
ex.printStackTrace();
resultado = false;
}
return resultado;
}
}