Jepeto
#1
Olá a todos,
Sou novo neste Forum e também sou novo no Java.
Estou com dificuldades com um software que estou tentando fazer.
Bom é o seguinte tenho uma Classe a seguinte classe:
public double getP(String symbol) {
if (con != null) {
try {
Statement stmt = con.createStatement();
String sql = "SELECT * FROM stocks WHERE NAME='
+ symbol + "'";
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
return rs.getDouble("VALUE");
}
return -1;
} catch (Exception e) {
}
}
return -2;
}
Em outra classe estou tentando chamar a getP e passando os paramentros para realizar a consulta,
Mas está dando um erro.
Olha só como estou fazendo:
import jv.pj.StockServiceStub.GetPriceResponse;
public static void main(String[] args) throws RemoteException {
StockServiceStub stub = new StockServiceStub();
String nome = new string();
GetPriceResponse resp = stub.GetP(nome);
System.out.println("Nome = " + resp.get_return());
}
O erro que aparece é o seguinte:
[color=red]the method GetP in the type stockservicestub is not applicable for the arguments (string)[/color]
na linha que tem o codigo GetPriceResponse resp = stub.GetP(nome);
O que estou fazendo de errado?
Obrigado.
1o - Java é Case Sensitive, ou seja, String != string.
2o - String não é um objeto, e sim um tipo, não tem necessidade de construtor.
public static void main(String[] args) throws RemoteException {
StockServiceStub stub = new StockServiceStub();
//String nome = new string();
String nome = ""
GetPriceResponse resp = stub.GetP(nome);
System.out.println("Nome = " + resp.get_return());
}
Sua query deveria estar assim:
[code]
//Não é assim
/* String sql = "SELECT * FROM stocks WHERE NAME=’
- symbol + “’”; */
//É assim
String sql = “SELECT * FROM stocks WHERE NAME=’”
- symbol + “’”;[/code]
Recomendo também usar PreparedStatement ao invés de Statement.
[quote=Renatobh]1o - Java é Case Sensitive, ou seja, String != string.
2o - String não é um objeto, e sim um tipo, não tem necessidade de construtor.
public static void main(String[] args) throws RemoteException {
StockServiceStub stub = new StockServiceStub();
//String nome = new string();
String nome = ""
GetPriceResponse resp = stub.GetP(nome);
System.out.println("Nome = " + resp.get_return());
}
Sua query deveria estar assim:
[code]
//Não é assim
/* String sql = "SELECT * FROM stocks WHERE NAME=’
- symbol + “’”; */
//É assim
String sql = “SELECT * FROM stocks WHERE NAME=’”
- symbol + “’”;[/code]
Recomendo também usar PreparedStatement ao invés de Statement.[/quote]
Java suporta uma notação especial para criação de Strings mas elas continuam sendo objetos.
http://download.oracle.com/javase/6/docs/api/java/lang/String.html
É, falha minha :oops:
Mas eu acho mais fácil você usar
String var = “valordavar” do que criar um vetor de char para criar uma String via String = new String(char vetordechar[]);
:roll:
Jepeto
#5
[quote=Renatobh]1o - Java é Case Sensitive, ou seja, String != string.
2o - String não é um objeto, e sim um tipo, não tem necessidade de construtor.
public static void main(String[] args) throws RemoteException {
StockServiceStub stub = new StockServiceStub();
//String nome = new string();
String nome = ""
GetPriceResponse resp = stub.GetP(nome);
System.out.println("Nome = " + resp.get_return());
}
Sua query deveria estar assim:
[code]
//Não é assim
/* String sql = "SELECT * FROM stocks WHERE NAME=’
- symbol + “’”; */
//É assim
String sql = “SELECT * FROM stocks WHERE NAME=’”
- symbol + “’”;[/code]
Recomendo também usar PreparedStatement ao invés de Statement.[/quote]
Valew pela dica da String. já arrumei mas mesmo assim o erro ainda não saiu… fica o erro no stub.GetP(nome).
Estou achando que o erro está no GetP.
Tentei mudar assim
//No lugar do String nome = ""
// coloquei
GetP nome = String;
GetPriceResponse resp = stub.getP(nome);
O erro saiu do stub.getP(nome), só que apareceu um erro onde está String.
o erro é esse >> [color=red]String cannot be resolved to a variable[/color]
Sobre a String sql aqui no meu código estava correto, devo ter apagado as aspas conforme inclui aqui no fórum.rsrsrs. mas mesmo assim valew.
Funciona assim:
TipodaVariavel NomedaVariavel = AlgumaCoisa
ou seja
String Nome = “Joãozinho da Silva”
Sua chamada no main tem que ficar assim:
[code]String nome = “Joãozinho da Silva”;
Double resp = stub.getP(nome);
System.out.println(resp);
//Você pode simplificar isso usando “System.out.println(stub.getP(nome));”
[/code]
Já corrigi outro erro, porque sua função retorna um double, e você está chamando ela numa variável do tipo “GetPriceResponse” (!?)
Ai ele vai fazer uma busca na tabela stocks e retornar um double.