Alguém poderia me mandar algum código fonte que use Sockets e faça acesso a banco de dados?
Esto tentando aprender…
Obrigado!
Alguém poderia me mandar algum código fonte que use Sockets e faça acesso a banco de dados?
Esto tentando aprender…
Obrigado!
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.