Pessoal pesquisei sobre banco, Dao e acabei achando um conteudo bacana, agora quero estou fazendo uns teste mas deu erro e gostaria de saber qual o erro:
Codigo DaoConexão:
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class ConexaoBanco {
Connection con;
PreparedStatement pstmt;
public void abrirBanco()throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/estoque";
String user = "root";
String password = "root";
con = DriverManager.getConnection(url, user, password);
}
public void fecharBanco()throws Exception{
if(con != null)
con.close();
if(pstmt != null)
pstmt.close();
}
}
Codigo Dao inserir:
public class ClienteDao extends ConexaoBanco {
public void Gravar(Cliente p)throws Exception{
abrirBanco();
pstmt = con.prepareStatement("insert into clientes values(null,?,?,?,?)");
pstmt.setInt(1, p.getCodigo());
pstmt.setString(2, p.getNome());
pstmt.setString(3, p.getCidade());
pstmt.setString(4, p.getSexo());
pstmt.execute();
fecharBanco();
}
}
Codigo inserir:
try{
Scanner sc = new Scanner (System.in);
Cliente p = new Cliente();
ClienteDao pd = new ClienteDao();
System.out.printf("Digite seu Codigo:");
p.setCodigo(sc.radix());
System.out.printf("Digite seu Nome: ");
p.setNome(sc.nextLine());
System.out.printf("Digite sua Cidade: ");
p.setCidade(sc.nextLine());
System.out.printf("Digite seu Sexo:");
p.setSexo(sc.nextLine());
pd.Gravar(p);
}catch(Exception e){
System.out.println("Erro:"+e.getMessage());
}
Como falei sou novo vou pegando conteudo e lendo enfim, estou utilizando o metodo Scanner. tenho que usar para inserir dados em String o parametro p.setSexo(sc.nextLine()); e para valores inteiros???
erro:
Digite seu Codigo:Digite seu Nome: marco // pode perceber que nesta linha não deixou eu inserir o Codigo, pulou e foi direto para o Nome
Digite sua Cidade:
Digite seu Sexo:
Erro:Column count doesn't match value count at row 1 //erro
Eai pessoal por que este erro???
Quero aprender.