.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: