Exemplo Sockets

1 resposta
M

Alguém poderia me mandar algum código fonte que use Sockets e faça acesso a banco de dados?

Esto tentando aprender…
Obrigado!

1 Resposta

B

Conexão de Banco de Dados:

import java.sql.*;   //pra usar sql em um programa Java tem que importar isso

class sql_cons

{

public static void main (String args[])

{

String url = jdbc:odbc:agenda;     //odbc é um protocolo do windows que permite acessar um banco de dados.Nome da fonte de dados. “dbsmf” 'e o nome que referencia ao nome(DSN) que configurei l’a no ODBC do windows.
String query = "SELECT * FROM Pessoa.db"; //query é consulta
try//Se der problema em alguma parte do bloco abaixo ele vai pro bloco do catch, se não der ele não vai no catch
{
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  //'E a conexao
  Connection con = DriverManager.getConnection (url, "", ""); //fez a conexão//Os vazios seriam usuário e senha, que o paradox não precisa
  Statement stmt = con.createStatement();//tem que criar o stmt pra executar um comando. O "stmt" referencia a conexão. 
  ResultSet rs = stmt.executeQuery(query);  //Executa a query com o "stmt", porque o Java não usa a Query diretamente, tem que criar o statement.O "query" referencia ao stmt     
  printResultSet(rs);
  rs.close();    //Fecha a tabela virtual(formada pelo query).
  stmt.close();  //Fecha o stmt(usado pra executar uma query no Java)
  con.close();//Fecha a conexão.

}//Se for erro de banco de dados no bloco do try , ele vai pro de baixo, se for erro de processamento vai pro segundo abaixo 

catch (SQLException ex) //Problema de banco de dados que esse bloco trata

{
  System.out.println ("SQLException:");
  while (ex != null)
  {
    System.out.println ("SQLState: " + ex.getSQLState());
    System.out.println ("Message:  " + ex.getMessage());
    System.out.println ("Vendor:   " + ex.getErrorCode());
    ex = ex.getNextException();
    System.out.println ("");
  }
}
catch (java.lang.Exception ex)   //Problema de processamento que esse bloco trata
{
  ex.printStackTrace();
}

}

private static void printResultSet (ResultSet rs) throws SQLException

{

int numCols = rs.getMetaData().getColumnCount();  //“getMetData” é um método que referencia a várias coisas da tabela (quais nomes das colunas, tipos,etc). getColumnCount() devolve o número de colunas da tabela.

while (rs.next()) //Enquanto tiver um próximo registro

{

for (int i = 1; i <= numCols; i++)//numCols é o número de colunas

{

System.out.println(rs.getString(i) + " | ");  <a href="//rs.getString">//rs.getString</a>(i) é o que tem em cada coluna.Vai passando de coluna em coluna, de cada registro. Quando acaba todas as colunas vai pro próximo registro.

}

System.out.println();

}

}

}

Sockets:

import java.net.;
import java.io.
;

public class Servidor {
public static void main(String[] args) throws IOException {

ServerSocket serverSocket = null;
    try {
        serverSocket = new ServerSocket(4444);
    } catch (IOException e) {
        System.err.println("Could not listen on port: 4444.");
        System.exit(1);
    }

    Socket clientSocket = null;
    try {
        clientSocket = serverSocket.accept();
    } catch (IOException e) {
        System.err.println("Accept failed.");
        System.exit(1);
    }

    PrintStream out = new PrintStream(
                      new BufferedOutputStream(
		      clientSocket.getOutputStream(), 1024), false);
    DataInputStream in = new DataInputStream(
                         new BufferedInputStream(
		         clientSocket.getInputStream()));
    String inputLine, outputLine;


    DataInputStream stdIn = new DataInputStream(System.in);


    while ((inputLine = stdIn.readLine()) != null) {
         outputLine = inputLine;
         out.println(outputLine);
         out.flush();
         if (outputLine.equals("Bye."))
            break;
    }
    out.close();
    in.close();
    clientSocket.close();
    serverSocket.close();
}

}

Falo amigo,

Raphael.

Criado 14 de dezembro de 2004
Ultima resposta 15 de dez. de 2004
Respostas 1
Participantes 2