preparedStatement.getString(int i,String str); --> o que é esse inteiro "int i"?

Pessoal,

tem pequenas informações muito difíceis de se encontrar.
Então, venho por meio desta, lhes perguntar: ao que se refere o inteiro aceito no parâmetro deste método? preparedStatement.getString(int i, String str); // Ao que se refere esse inteiro "int i"??? Valeu

A classe PreparedStatement não tem nenhum método getString.

E a API do java é muito fácil de encontrar.

[quote=lucasribeiro]Pessoal,

tem pequenas informações muito difíceis de se encontrar.
Então, venho por meio desta, lhes perguntar: ao que se refere o inteiro aceito no parâmetro deste método? preparedStatement.getString(int i, String str); // Ao que se refere esse inteiro "int i"??? Valeu[/quote]

Na verdade, esse método seria:

preparedStatement.setString(int i, String str); 

Onde o i é a posição das interrogações(Positional Parameter Notation) que tem em seu sql.
E a str: é a String que será passará como valor para a posição do i

Simples exemplo:

sql = insert into produto(nome, marca) values (?, ?)
preparedStatement.setString(1,  "Camiseta");
preparedStatement.setString(2,  "Polo");

Espero que tenha entendido.

Abraços.

Fica com DEUS.

Ué!

Eita! Tem razão, mas eu quis dizer “set” mesmo… Poxa, tô dormindo mesmo. Era só olhar na API…

Mas tem “setString()”, né? Olha esse post:
http://www.guj.com.br/java/107757-metodo-preparedstatement

Olha a descrição da API acessada através do eclipse (só tirei as throws):

void setString(int parameterIndex,String x)

Parameters:
parameterIndex - the first parameter is 1, the second is 2, …
x - the parameter value
Throws:
SQLException - if parameterIndex does not correspond to a parameter marker in the SQL statement; if a database access error occurs or this method is called on a closed PreparedStatement

É verdade. Valeu…

Pessoa(s),

depois disso, eu estou fazendo assim:

[code]static String query =
“INSERT INTO empresas(” +
“captacao,razaoSocial,nomeFantasia,” +
“cnpj,aberturaCnpj,atividadePrincipal,” +
“atividadesSecundarias,endereco,situacaoCadastral,” +
“rlNome,rlEmail,rlFixo,rlCelular” +
") value (" +
"?,?,?,?,?,?,?,?,?,?,?,?,?)" +
");";

public static void adicionar(){
	try{
		conn = DriverManager.getConnection(DATABASE_URL, "SstAdmin","adminsst.123");
		prepared = conn.prepareStatement(query);
		prepared.setString(1,captacao);
        prepared.setString(2,razaoSocial);
        prepared.setString(3,nomeFantasia);
        prepared.setString(4,cnpj);
        prepared.setString(5,aberturaCnpj);
        prepared.setString(6,atividadePrincipal);
        prepared.setString(7,atividadesSecundarias);
        prepared.setString(8,endereco);
        prepared.setString(9,situacaoCadastral);
        prepared.setString(10,rlNome);
        prepared.setString(11,rlEmail);
        prepared.setString(12,rlFixo);
        prepared.setString(13,rlCelular);
        prepared.executeUpdate(query);
        prepared.close();
        conn.close();
	} catch(SQLException sqlException){
		sqlException.printStackTrace();
		System.exit(1);
	}
}

[/code] Mas recebo a seguinte exception:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?,?,?,?,?,?,?,?,?,?,?,?))' at line 1 Gostaria que me ajudassem (mas uma vez…)

Valeu

Onde tem:

prepared.executeUpdate(query);  

Troque por:

prepared.executeUpdate();  

Verifique também os tipos que está passando para o prepared.setString, ou seja, verifique se todos os atributos realmente é do tipo String.

Testa ai.

Sim. Até que se faça necessário fazer diferente, estou usando string para todos, menos a chave primária…
Tá valendo. Poxa, quero começar a ajudar tbm…

Pessoal, agora foi! Tô feliz.
Valeu mesmo…