Alguém tem idéia de como posso fazer pela aplicação, para pegar 2 colunas de um banco de dados access e inserir elas em 2 do MySQL, eu só preciso do algoritmo e das instruções sql, criar conexão e tals…eu consigo…
Valew
Alguém tem idéia de como posso fazer pela aplicação, para pegar 2 colunas de um banco de dados access e inserir elas em 2 do MySQL, eu só preciso do algoritmo e das instruções sql, criar conexão e tals…eu consigo…
Valew
Faça um SELECT dos dados e monte um INSERT(ou UPDATE):
// Abra as conexões, trate as exceções
...
Statement stmtAccess = connAccess.createStatement();
Statement stmtMySQL = connMySQL.createStatement();
String resultado1 = "";
String resultado2 = "";
String sqlMySQL = "";
String sqlAccess = "SELECT coluna1, coluna2 FROM tabela_access";
ResultSet rsAccess = stmt.executeQuery(sqlAccess);
while (rsAccess.next()) {
resultado1 = rsAccess.getString(coluna2);
resultado2 = rsAccess.getString(coluna1);
sqlMySQL = "INSERT INTO tabela_mysql(nome_coluna1, nome_coluna2) VALUES (" + resultado1 + ", " + resultado2 + ")";
stmtMySQL.executeUpdate(sqlMySQL );
}
stmtAccess.close();
stmtMySQL.close();
rsAccess.close();
...
// Feche as conexões, termine de tratar as exceções
No geral é isso, corrija e adapte ao seu uso. 8)
OK,
Vou fazer aqui e ver o que rola, valewwwwwww
Então eu fiz o seguinte
import java.sql.*;
public class Exporta{
Connection connAccess;
Connection connMySQL;
Statement stmtAccess;
Statement stmtMySQL;
public Exporta(){
String url = "jdbc:odbc:fasp";
String login = "Java";
String senha = "java";
String urlmysql = "jdbc:mysql://127.0.0.1:3306/fasp";
String loginmysql = "";
String senhamysql = "";
try {
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
connAccess = DriverManager.getConnection( url, login, senha );
stmtAccess = connAccess.createStatement();
Class.forName( "com.mysql.jdbc.Driver" );
connMySQL = DriverManager.getConnection( urlmysql, loginmysql, senhamysql );
stmtMySQL = connMySQL.createStatement();
}
catch( ClassNotFoundException ref )
{
System.err.println( "Falha ao carregar o driver JDBC/ODBC" );
System.exit( 1 );
}
catch( SQLException sq )
{
System.err.println( "Impossível conectar" );
}
exportando();
}
public void exportando()
{
try {
String resultado1 = "";
String resultado2 = "";
String sqlMySQL = "";
String sqlAccess = "SELECT nome, idade FROM fasp";
ResultSet rsAccess = stmtAccess.executeQuery(sqlAccess);
while (rsAccess.next()) {
resultado1 = rsAccess.getString("nome");
resultado2 = rsAccess.getString("idade");
sqlMySQL = "INSERT INTO fasp(Nome, Idade) VALUES (" + resultado1 + ", " + resultado2 + ")";
stmtMySQL.executeUpdate(sqlMySQL );
}
stmtAccess.close();
stmtMySQL.close();
rsAccess.close();
}
catch( SQLException sq )
{
sq.printStackTrace();
}
}
public void fechar()
{
try {
connAccess.close();;
connMySQL.close();;
}
catch( SQLException sq )
{
System.err.println( "Impossivel desconectar" );
}
}
public static void main( String args[] )
{
final Exporta ba = new Exporta();
}
}
Mas estou pegando o seguinte erro…
Exception in thread “main” java.lang.NullPointerException
at Exporta.exportando(Exporta.java:59)
at Exporta.<init>(Exporta.java:39)
at Exporta.main(Exporta.java:86)
Para ajudar a linah 59 é “stmtMySQL.executeUpdate(sqlMySQL );” o que pode ser ??ou melhor porque ele não esta recebendo a conexão ?
Provavelmente deve tar rolando alguma Exception, por isso o
connMySQL.createStatement();
não tá retornando uma instância no stmtMySQL e você tá tendo um NullPointerException
OK, e como posso resolver isto?
Você pode começar colocando a linha exportando() dentro do try - catch:
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connAccess = DriverManager.getConnection(url, login, senha);
stmtAccess = connAccess.createStatement();
Class.forName("com.mysql.jdbc.Driver");
connMySQL = DriverManager.getConnection(urlmysql, loginmysql, senhamysql);
stmtMySQL = connMySQL.createStatement();
exportando();
}
catch(ClassNotFoundException ref) {
ref.printStackTrace();
System.err.println("Falha ao carregar o driver JDBC/ODBC");
System.exit(1);
}
catch(SQLException sq) {
sq.printStackTrace();
System.err.println("Impossível conectar");
}
do jeito que você fez ele tenta exportar os dados mesmo que dê exceção antes. Coloque um printStackTrace em todas as exceções também, que assim fica mais fácil descobrir em que trecho está o erro.
Além disso, você consultou a API? O método getString retorna null se o campo estiver com valores NULL. Dê uma melhorada no seu código e faça a checagem.