Boa tarde pessoa estou tendo dificuldades para encontrar a solução de um select em um MySQLexterno usando android, lib usada no android para conectar com MySQL:
mysql-connector-java-3.0.17-ga-bin.jar
segue os códigos para entendimento:
Iniciando a conexão:
private static final Conexao conect = new Conexao();
fazendo a arrayList
public ArrayList<MesesEntidade> getList() {
try {
st = conect.con.createStatement(); // AQUI ACONTECE O ERRO
sql = "select id_funcionarios_2,nome_21 "
+ "from Contracheques_8_2016 "
+ "GROUP BY nome_21 "
+ "LIMIT 10";
rs = st.executeQuery(sql);
list = new ArrayList<MesesEntidade>();
while (rs.next()) {
MesesEntidade p = new MesesEntidade();
p.setIdMes(rs.getInt("id_funcionarios_2"));
p.setDescricaoMes(rs.getString("nome_21"));
list.add(p);
}
} catch (SQLException e) {
conect.close();
System.out.println("erro: " + e);
}
arqui o código da conexão
@Override
protected Object doInBackground(Object... params) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://10.1.1.10:3306/dbmysql", "root", "root");
System.out.println("(OK) Conexão: " + con);
} catch (ClassNotFoundException ex) {
System.out.println("Não foi possível encontrar o Driver! " + ex);
} catch (InstantiationException ex) {
System.out.println(ex);
} catch (IllegalAccessException ex) {
System.out.println(ex);
} catch (SQLException ex) {
System.out.println("ERRO");
System.err.println("exception: " + ex);
}
return con;
}
a conexão parece estar ok, porém quando chega em CreateStatement(); acontece o NullExeptionPointer.
porque será?
SOLUÇÃO PARA ESTE PROBLEMA
a princípio tem que se criar dentro do doInBackground toda a conexão e o select.
@Override
protected ArrayList doInBackground(String... params) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://10.1.1.10:3306/dbmysql", "root", "root");
System.out.println("Principal (OK) Conexão: " + con);
Statement create = con.createStatement();
ResultSet rs = create.executeQuery("select id_funcionarios_2,nome_21 "
+ "from Contracheques_8_2016 "
+ "GROUP BY nome_21 "
+ "LIMIT 10");
list = new ArrayList<MesesEntidade>(); // ATE AQUI TA BLZA REALIZA O ARRAY OK
while (rs.next()) {
MesesEntidade p = new MesesEntidade();
p.setIdMes(rs.getInt("id_funcionarios_2"));
p.setDescricaoMes(rs.getString("nome_21"));
list.add(p);
}
} catch (ClassNotFoundException ex) {
System.out.println("Não foi possível encontrar o Driver! " + ex);
} catch (InstantiationException ex) {
System.out.println(ex);
} catch (IllegalAccessException ex) {
System.out.println(ex);
} catch (SQLException ex) {
System.out.println(ERRO");
System.err.println("exception: " + ex);
}
return list;
}