Erro - Campo Sexo

6 respostas
L

Quando eu compilo essa tela , ela esta apresentando o erro no campo "Sexo" ,

[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'Masculino'.

No banco de dados ta inserindo normalmente

Segue o codigo abaixo :

import java.awt.*;

import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;

public class medico extends JFrame {


  private JLabel JLtitulo = new JLabel("Cadastro Médico");
  private JLabel JLID = new JLabel("ID Médico");
  private JLabel Jlnome = new JLabel("Nome Médico");
  private JLabel Jlnas = new JLabel("Data Nascimento");
  private JLabel Jlend = new JLabel("Endereço");
  private JLabel jlsexo = new JLabel("Sexo");
  private JLabel Jlcpf = new JLabel("CPF");
  private JLabel Jlrg = new JLabel("RG");
  private JLabel Jltel = new JLabel("Telefone Cel.");
  private JLabel Jlres = new JLabel("Telefone Res.");
  private JLabel Jlreg = new JLabel("Registro Médico");
  private JTextField JTid = new JTextField("");
  private JTextField JTnome = new JTextField("");
  private JTextField JTnas = new JTextField("");
  private JTextField JTrua = new JTextField("");  
  private JTextField JTsexo = new JTextField("");
  private JTextField JTcpf = new JTextField("");
  private JTextField JTrg = new JTextField("");
  private JTextField JTcel = new JTextField("");
  private JTextField JTres = new JTextField("");
  private JTextField JTreg = new JTextField("");
  private JLabel Jlesp = new JLabel("Especialidade");
  private JTextField JTesp = new JTextField("");
  private JButton JBadd = new JButton("Cadastrar");
 // private JButton JBalt = new JButton("Alterar");
  private JButton JBexit = new JButton("Sair");


  public medico() {
    try {
      mostra();
    } catch(Exception ex) {
      ex.printStackTrace();
    }
  }

  public void mostra() throws Exception {

    this.getContentPane().setLayout(null);
    this.setSize(639, 487);
    this.setTitle("Cadastro Médico");
    this.setResizable(false);
    this.setVisible(true);

    JLtitulo.setBounds(new Rectangle(268, 8, 120, 13));
    this.getContentPane().add(JLtitulo, null);
    JLID.setBounds(new Rectangle(12, 76, 110, 13));
    this.getContentPane().add(JLID, null);
    Jlnome.setBounds(new Rectangle(12, 108, 110, 13));
    this.getContentPane().add(Jlnome, null);
    Jlnas.setBounds(new Rectangle(12, 138, 110, 13));
    this.getContentPane().add(Jlnas, null);
    Jlend.setBounds(new Rectangle(12, 168, 110, 13));
    this.getContentPane().add(Jlend, null);
    
  
    jlsexo.setBounds(new Rectangle(12, 195, 110, 13));
    this.getContentPane().add(jlsexo, null);
    Jlcpf.setBounds(new Rectangle(12, 228, 110, 13));
    this.getContentPane().add(Jlcpf, null);
    Jlrg.setBounds(new Rectangle(12, 259, 110, 13));
    this.getContentPane().add(Jlrg, null);
    Jltel.setBounds(new Rectangle(12, 291, 110, 13));
    this.getContentPane().add(Jltel, null);
    Jlres.setBounds(new Rectangle(12, 322, 110, 13));
    this.getContentPane().add(Jlres, null);
    Jlreg.setBounds(new Rectangle(12, 350, 110, 13));
    this.getContentPane().add(Jlreg, null);
    JTid.setBounds(new Rectangle(155, 74, 100, 21));
    this.getContentPane().add(JTid, null);
    JTnome.setBounds(new Rectangle(155, 105, 300, 21));
    this.getContentPane().add(JTnome, null);
    JTnas.setBounds(new Rectangle(155, 134, 100, 21));
    this.getContentPane().add(JTnas, null);
    JTrua.setBounds(new Rectangle(155, 164, 130, 21));
    this.getContentPane().add(JTrua, null);
    

    JTsexo.setBounds(new Rectangle(155, 194, 100, 21));
    this.getContentPane().add(JTsexo, null);
    JTcpf.setBounds(new Rectangle(155, 224, 100, 21));
    this.getContentPane().add(JTcpf, null);
    JTrg.setBounds(new Rectangle(155, 254, 100, 21));
    this.getContentPane().add(JTrg, null);
    JTcel.setBounds(new Rectangle(155, 284, 100, 21));
    this.getContentPane().add(JTcel, null);
    JTres.setBounds(new Rectangle(155, 315, 100, 21));
    this.getContentPane().add(JTres, null);
    JTreg.setBounds(new Rectangle(155, 345, 100, 21));
    this.getContentPane().add(JTreg, null);
    Jlesp.setBounds(new Rectangle(12, 379, 110, 13));
    this.getContentPane().add(Jlesp, null);
    JTesp.setBounds(new Rectangle(155, 375, 400, 21));
    this.getContentPane().add(JTesp, null);
    
    JBadd.setBounds(new Rectangle(150, 410, 100, 30));
    this.getContentPane().add(JBadd, null);
    JBadd.addActionListener (new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        try
          {   
                String drv = "sun.jdbc.odbc.JdbcOdbcDriver";
                String url = "jdbc:odbc:Luiz";
          
                Connection con;
                Class.forName(drv);
                con = DriverManager.getConnection(url,"Luiz","");
                
                Statement SQL_Comando;
                SQL_Comando = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);  
                
                if(JTid.getText().equals("") || JTnome.getText().equals("") || JTnas.getText().equals("") || JTrua.getText().equals("") || 
                 JTsexo.getText().equals("") || JTcpf.getText().equals("") || JTrg.getText().equals("") || 
                JTcel.getText().equals("") || JTres.getText().equals("") || JTreg.getText().equals("") || JTesp.getText().equals(""))
               
               {
                         JOptionPane.showMessageDialog(null,"Preencher campos");
               }
               else
               {
                   
//                   JTid JTnome JTnas JTrua JTcidade  JTsexo JTcpf JTrg JTcel JTres JTreg  JTesp
    
                    int id = Integer.parseInt(JTid.getText());  
                    String nome = JTnome.getText();
                    String nasc = JTnas.getText();
                    String rua = JTrua.getText();
                    String sexo = JTsexo.getText();
                    String esp = JTesp.getText();
                    int cpf = Integer.parseInt(JTcpf.getText());
                    int rg = Integer.parseInt(JTrg.getText());
                    int cel = Integer.parseInt(JTcel.getText());
                    int res = Integer.parseInt(JTres.getText());
                    int reg = Integer.parseInt(JTreg.getText());
                    
                    
                    String sql = "insert into Medico (ID_Medico, Nome_Medico, Nasc, Endereco, Sexo, CPF, RG_Medico, Tel_Cel, Tel_Res, Reg_Medico, Espec) values (";
                    sql = sql+"'"+JTid.getText()+"','"+JTnome.getText();
                    sql = sql+"', '"+JTnas.getText()+"', '"+JTrua.getText()+"', ', '"+JTsexo.getText()+"', '"+JTcpf.getText();
                    sql = sql+"', '"+JTrg.getText()+"', '"+JTcel.getText()+"', '"+JTres.getText()+"', '"+JTreg.getText()+"','"+JTesp.getText()+"')";
                    
                    int rows = SQL_Comando.executeUpdate(sql);
                    JOptionPane.showMessageDialog(null,"Registro incluido com sucesso!:"+rows);                
               } 
              con.close();        
            }    
            catch(ClassNotFoundException er1)
            {
                 System.out.println(er1.getMessage());
            }    
            catch(SQLException er2)
            {
                 System.out.println(er2.getMessage());
            }
        
    }});
 
    JBexit.setBounds(new Rectangle(300, 410, 100, 30));
    this.getContentPane().add(JBexit, null); 
    JBexit.addActionListener (new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        dispose();
    }});
    this.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
         aoFechar(e);
      }});
  }

  private void aoFechar(WindowEvent e) {
    System.exit(0);
  }

  public static void main(String args[]) {
    medico janela = new medico();
   
  }
}

6 Respostas

ViniGodoy

Já tentou imprimir o conteúdo da variável SQL?

Dê uma olhada em PreparedStatement também, para evitar aquelas concatenações. Ah, e não tem porque criar variáveis para guardar o conteúdo dos JTextFields se você não vai usa-las depois.

L

Como assim preparedStatement ?
Sou novo em java , se for encomodo em ajudarr

ViniGodoy

Dá uma lida:
http://www.guj.com.br/article.show.logic?id=115

L

Bem eu li e entendi mais ou menos ,.
Mas me explica , aonde eu aplico preparedStatement na minha script ?

L
StringBuilder sb = new StringBuilder();
            sb.append("select count(*) from tabela ");
            PreparedStatement pst = repositorio.getConnection().prepareStatement(sb.toString().toUpperCase());
            ResultSet rs = pst.executeQuery();
            while (rs.next()) {
                retorno = rs.getLong(1);
            }
ViniGodoy

Olha só como se usa o PreparedStatement. Coloquei outras dicas no código.
Ainda está longe de estar perfeito, mas já está bem melhor.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;

//Atenção para a convenção do Java
//Nomes de classe tem letra maiúscula
public class Medico extends JFrame {
	// Nomes de variável, letra começam com minúsculas
	private JLabel lblTitulo = new JLabel("Cadastro Médico");
	private JLabel lblID = new JLabel("ID Médico");
	private JLabel lblNome = new JLabel("Nome Médico");
	private JLabel lblNascimento = new JLabel("Data Nascimento");
	private JLabel lblEndereco = new JLabel("Endereço");
	private JLabel lblSexo = new JLabel("Sexo");
	private JLabel lblCpf = new JLabel("CPF");
	private JLabel lblRg = new JLabel("RG");
	private JLabel lblCelular = new JLabel("Telefone Cel.");
	private JLabel lblTelefone = new JLabel("Telefone Res.");
	private JLabel lblRegistro = new JLabel("Registro Médico");
	private JTextField txtId = new JTextField("");
	private JTextField txtNome = new JTextField("");
	private JTextField txtNascimento = new JTextField("");
	private JTextField txtEndereco = new JTextField("");
	private JTextField txtSexo = new JTextField("");
	private JTextField txtCpf = new JTextField("");
	private JTextField txtRg = new JTextField("");
	private JTextField txtCelular = new JTextField("");
	private JTextField txtTelefone = new JTextField("");
	private JTextField txtRegistro = new JTextField("");
	private JLabel lblEspecialidade = new JLabel("Especialidade");
	private JTextField txtEspecialidade = new JTextField("");
	private JButton btnAdicionar = new JButton("Cadastrar");
	// private JButton btnAlterar = new JButton("Alterar");
	private JButton btnSair = new JButton("Sair");

	public Medico() {
		mostra();
	}

	public void mostra() {
		this.getContentPane().setLayout(null);
		this.setSize(639, 487);
		this.setTitle("Cadastro Médico");
		this.setResizable(false);		

		lblTitulo.setBounds(new Rectangle(268, 8, 120, 13));
		this.getContentPane().add(lblTitulo, null);
		lblID.setBounds(new Rectangle(12, 76, 110, 13));
		this.getContentPane().add(lblID, null);
		lblNome.setBounds(new Rectangle(12, 108, 110, 13));
		this.getContentPane().add(lblNome, null);
		lblNascimento.setBounds(new Rectangle(12, 138, 110, 13));
		this.getContentPane().add(lblNascimento, null);
		lblEndereco.setBounds(new Rectangle(12, 168, 110, 13));
		this.getContentPane().add(lblEndereco, null);

		lblSexo.setBounds(new Rectangle(12, 195, 110, 13));
		this.getContentPane().add(lblSexo, null);
		lblCpf.setBounds(new Rectangle(12, 228, 110, 13));
		this.getContentPane().add(lblCpf, null);
		lblRg.setBounds(new Rectangle(12, 259, 110, 13));
		this.getContentPane().add(lblRg, null);
		lblCelular.setBounds(new Rectangle(12, 291, 110, 13));
		this.getContentPane().add(lblCelular, null);
		lblTelefone.setBounds(new Rectangle(12, 322, 110, 13));
		this.getContentPane().add(lblTelefone, null);
		lblRegistro.setBounds(new Rectangle(12, 350, 110, 13));
		this.getContentPane().add(lblRegistro, null);
		txtId.setBounds(new Rectangle(155, 74, 100, 21));
		this.getContentPane().add(txtId, null);
		txtNome.setBounds(new Rectangle(155, 105, 300, 21));
		this.getContentPane().add(txtNome, null);
		txtNascimento.setBounds(new Rectangle(155, 134, 100, 21));
		this.getContentPane().add(txtNascimento, null);
		txtEndereco.setBounds(new Rectangle(155, 164, 130, 21));
		this.getContentPane().add(txtEndereco, null);

		txtSexo.setBounds(new Rectangle(155, 194, 100, 21));
		this.getContentPane().add(txtSexo, null);
		txtCpf.setBounds(new Rectangle(155, 224, 100, 21));
		this.getContentPane().add(txtCpf, null);
		txtRg.setBounds(new Rectangle(155, 254, 100, 21));
		this.getContentPane().add(txtRg, null);
		txtCelular.setBounds(new Rectangle(155, 284, 100, 21));
		this.getContentPane().add(txtCelular, null);
		txtTelefone.setBounds(new Rectangle(155, 315, 100, 21));
		this.getContentPane().add(txtTelefone, null);
		txtRegistro.setBounds(new Rectangle(155, 345, 100, 21));
		this.getContentPane().add(txtRegistro, null);
		lblEspecialidade.setBounds(new Rectangle(12, 379, 110, 13));
		this.getContentPane().add(lblEspecialidade, null);
		txtEspecialidade.setBounds(new Rectangle(155, 375, 400, 21));
		this.getContentPane().add(txtEspecialidade, null);

		btnAdicionar.setBounds(new Rectangle(150, 410, 100, 30));
		this.getContentPane().add(btnAdicionar, null);
		btnAdicionar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				InserirMedico();
			}
		});

		btnSair.setBounds(new Rectangle(300, 410, 100, 30));
		this.getContentPane().add(btnSair, null);
		btnSair.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dispose();
			}
		});
		this.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				aoFechar(e);
			}
		});
	}

	private void aoFechar(WindowEvent e) {
		System.exit(0);
	}

	private void InserirMedico() {
		// Comece validando os campos.
		// Nem sequer abra a conexão se forem inválidos.
		// Use return para cair fora do método direto.
		if (txtId.getText().isEmpty() || txtNome.getText().isEmpty()
				|| txtNascimento.getText().isEmpty()
				|| txtEndereco.getText().isEmpty()
				|| txtSexo.getText().isEmpty()
				|| txtCpf.getText().isEmpty()
				|| txtRg.getText().isEmpty()
				|| txtCelular.getText().isEmpty()
				|| txtTelefone.getText().isEmpty()
				|| txtRegistro.getText().isEmpty()
				|| txtEspecialidade.getText().isEmpty()) {
			JOptionPane.showMessageDialog(this, "Preencher campos");
			return;
		}

		try {
			Connection con = null;
			PreparedStatement sqlComando = null;
			
			try {
				String drv = "sun.jdbc.odbc.JdbcOdbcDriver";
				String url = "jdbc:odbc:Luiz";

				Class.forName(drv);
				con = DriverManager.getConnection(url, "Luiz", "");

				// Assim que se usa o PreparedStatement
				sqlComando = con
						.prepareStatement("INSERT INTO Medico (ID_Medico, Nome_Medico, Nasc, Endereco, Sexo,"
								+ " CPF, RG_Medico, Tel_Cel, Tel_Res, Reg_Medico, Espec) "
								+ "VALUES (?, ?, ?, ?, ?, ?, ?,  ?, ?, ?, ?)");

				sqlComando.setInt(1, Integer.parseInt(txtId.getText()));
				sqlComando.setString(2, txtNome.getText());
				sqlComando.setString(3, txtNascimento.getText());
				sqlComando.setString(4, txtEndereco.getText());
				sqlComando.setString(5, txtSexo.getText());
				sqlComando.setString(6, txtCpf.getText());
				sqlComando.setString(7, txtRg.getText());
				sqlComando.setString(8, txtCelular.getText());
				sqlComando.setString(9, txtTelefone.getText());
				sqlComando.setString(10, txtRegistro.getText());
				sqlComando.setString(11, txtEspecialidade.getText());
				int rows = sqlComando.executeUpdate();

				// A janela que está exibindo o dialog é a de médico
				// passe-a como pai do JOptionPane.
				JOptionPane.showMessageDialog(this,
						"Registro incluido com sucesso!:" + rows);
			} finally {
				// Certifique-se de fechar o statement e a connection
				// num finally.
				if (sqlComando != null)
					sqlComando.close();
				if (con != null)
					con.close();
			}
		} catch (SQLException err) {
			System.out.println(err);
		} catch (ClassNotFoundException err) {
			System.out.println(err);
		}
	}

	public static void main(String args[]) {
		EventQueue.invokeLater(new Runnable()
		{
			@Override
			public void run() {
				Medico janela = new Medico();
				janela.setVisible(true);
			}
		});
	}
}
Criado 16 de novembro de 2009
Ultima resposta 16 de nov. de 2009
Respostas 6
Participantes 3