.NET - Acesso a banco de dados C# e Java (JLCA)


Neste artigo eu vou mostrar que de certa forma o acesso a um banco de dados feito na linguagem C# é muito parecido com o que é feito na linguagem Java.

Não espere por benchmarks comparando as duas linguagens nem espere que eu tome o partido de uma e venha a denegrir a outra, para mim linguagens de programação são ferramentas para se realizar um serviço, basta usar a ferramenta certa para o serviço certo; não existe ferramenta melhor ou pior.

Mas voltando ao nosso assunto, C# e Java usam meios similares para acessar um banco de dados:

Os drivers de banco de dados como JDBC ou ODBC podem ser usados para acessar dados em Java e C#.

O driver Java DataBase Connectivity (JDBC) é usado em programas escritos na linguagem Java.

O driver ODBC Open DataBase Connectivity (ODBC) é uma interface de programação da Microsoft para acessar uma variedade de banco de dados relacionais.

Em Java , a informação da string de conexão para o driver para o tratamento de uma conexão é dado como a seguir:

final static private String url = "jdbc:oracle:server,usário,senha, …)";
Com C# , usando o .NET Framework, você não tem que carregar drivers ODBC ou JDBC para acessar um banco de dados.
Simplesmente defina a string de conexão para o objeto Connection do banco de dados conforme a seguir:
static string connectionString = "Initial Catalog=northwind;Data Source=(local);Integrated Security=SSPI;";
static SqlConnection cn = new SqlConnection(connectionString); 

Em Java , para realizar uma operação de leitura em um banco de dados, você pode usar o objeto ResultSet criado pelo método executeQuery do objeto Statement. O objeto ResulstSet contém os dados retornados pela consulta.

Você pode interagir através do objeto ResultSet para acessar os dados. Veja a seguir um exemplo de código que realiza o acesso a dados usando a linguagem Java via JDBC:

try
{
   Class.forName (_driver);
   c = DriverManager.getConnection(url, usuario, senha);
} 
catch (Exception e) 
{
   // tratamento de exceção
}
try
{
   Statement stmt = c.createStatement();
   ResultSet results = stmt.executeQuery("SELECT * FROM tabela ");
   while(results.next())
   {
         String s = results.getString("nomeColuna");
         // Exibe cada valor da coluna no ResultSet:
    }
    stmt.close();
} 
catch(java.sql.SQLException e)
{
    //trata exceção para executeQuery e getString: 
}

Vejamos agora a mesma tarefa em C#...

Usando a linguagem C# para acessar um banco de dados você vai precisar de:

A seguir temos o código para acessar um banco de dados com a linguagem C#;
namespace DataAccess
{
using System.Data;
using System.Data.SqlClient;

class DataAccess
{
  //Esta é sua conexão com o banco de dados Northwind
  static string connectionString = "Initial Catalog=northwind;Data Source=(local);Integrated Security=SSPI;";
  static SqlConnection cn = new SqlConnection(connectionString); 

  // Este é o seu objeto command que executa uma instrução SQL contra a conexão
  static string sCommand = "SELECT * from Products";

  //Este é o seu data adapter que entende banco de dados SQL
  static SqlDataAdapter da = new SqlDataAdapter(sCommand, cn);

  // Esta é a tabela que vai receber o resultado
  static DataTable dataTable = new DataTable();

static void Main()
{
  try{
       cn.Open();
      // preenche o datatabel com o resultado da consulta SQL
      int recordsAffected = da.Fill(dataTable);

      if (recordsAffected > 0) 
      { //percorre a tabela e exibe o primeiro campo
        foreach (DataRow dr in dataTable.Rows)
        {
             System.Console.WriteLine(dr[0]);
        }
    }
}
catch (SqlException e) 
{
   string msg = "";
   for (int i=0; i < e.Errors.Count; i++)
   {
     msg += "Error #" + i + " Message: " + e.Errors[i].Message + "\n";
   }
  System.Console.WriteLine(msg);
}
finally
{
   if (cn.State != ConnectionState.Closed)
   {
    cn.Close();
     }
  }
}
}
}

A sintaxe é muito parecida e os conceitos envolvidos também. Pensando nisso a Microsoft disponibilizou a ferramenta JLCA - Java Language Conversion Assistant , uma ferramenta que fornece a habilidade de converter o código Java e as chamadas para a linguagem Microsoft Visual C#.

Se você estiver interessado pegue o JLCA neste link:  Java Language Conversion Assistant 2.0

Eu sei é apenas C#, mas eu gosto...

Referências:


José Carlos Macoratti