Applet + JSP + BD

0 respostas
D
Moçada, eu nunca mechi com JSP e por isso, peço ajuda de vcs... Só preciso desse exemplo pra começar a "engatinhar" em JSP. Aqui você pode encontrar detalhadamente o que estou querendo... Em resumo é o seguinte: Para usuários com conexão externa(fora da rede local), trabalhar com Applet trafegando dados do banco é muuito lento, então sugeriram que ao invés de o Applet fazer a conexão com o BD, eu poderia usar um JSP para conectar e fazer as requisições (tipo select), converter para String e assim enviar para o Applet. Tem um exemplo abaixo que aparentemente é pra conectar no BD. Eu queria saber como eu posso fazer com que o exemplo abaixo faça um select no BD e enviar esses resultados para uma tabela do applet (cod. no fim):
//JSP
<%
   Connection conn = null;
   try
   {
      Class.forName("oracle.jdbc.driver.OracleDriver");

      conn = DriverManager.getConnection(
                "jdbc:oracle:thin:@endereco:1521:banco",
                "usuario", "senha");

      Statement stmt = conn.createStatement();
      ResultSet rs = stmt.executeQuery("SELECT * FROM Example.Emp");

      //Print start of table and column headers
      out.println("<TABLE CELLSPACING=\"0\" CELLPADDING=\"3\" BORDER=\"1\">");
      out.println("<TR><TH>ID</TH><TH>NAME</TH></TR>");

      //Loop through results of query.
      while(rs.next())
      {
         out.println("<TR>");
         out.println("<TD>" + rs.getString("EmpID") + "</TD>");
         out.println("<TD>" + rs.getString("Name") + "</TD>");
         out.println("</TR>");
      }

      out.println("</TABLE>");
   }
   catch(SQLException e)
   {
      out.println("SQLException: " + e.getMessage() + "<BR>");
      while((e = e.getNextException()) != null)
         out.println(e.getMessage() + "<BR>");
   }
   catch(ClassNotFoundException e)
   {
      out.println("ClassNotFoundException: " + e.getMessage() + "<BR>");
   }
   finally
   {
      //Clean up resources, close the connection.
      if(conn != null)
      {
         try
         {
            conn.close();
         }
         catch (Exception ignored) {}
      }
   }
%>
Abaixo, alguns dados para entender melhor o Applet. No caso abaixo, o Meu Applet é quem tá fazendo o select e mostrando os resultados:
... private Vector<String> 			head = new Vector<String>();
	private Vector<Vector> 			body = new Vector<Vector>();
	private Vector<String> 			bv = null;
	private Statement 		stmt = null;
	private Connection 		con = null;  //  @jve:decl-index=0:
	private ResultSet 		rs = null;
	private ResultSetMetaData rsmd = null;
	private JTable 			jTable = null;
	boolean 				flag = true;
	ResultSetMetaData 		resultMataData;
	int 					intColumnCount;
....

public cfRel() {
		super();
		initialize();
	}

	private void initialize() {
		try {
			this.connect();
			this.Table();
			this.jTable.setAutoResizeMode(0);
....
	private void connect() throws SQLException {
		try {
		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
		con = DriverManager.getConnection("jdbc:oracle:thin:@//xx.xxx.xxx.xx:1521/BD",
"user","pass");
		stmt=con.createStatement();
		} catch(Exception e) {
			JOptionPane.showMessageDialog(null, "Não foi possível
conectar.", 
"Erro", JOptionPane.ERROR_MESSAGE);
			e.printStackTrace();
		}
	}
	
	TableModel model = new DefaultTableModel(body, head) {
		private static final long serialVersionUID = 1L;
		public boolean isCellEditable(int body, int head) {
			return false;
			}
		};
		
	final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);

	private void Table()throws Exception {
		try {
			rs = stmt.executeQuery("select cad_nr, cad_nome, cad_fant, cad_fone, 
cad_fax, celular, cad_end, cad_cpf, cad_rg, cad_cgc, 
cad_inscr, inscr_prod, inscr_min, cid, bai,
 email from r_cadast");
			rsmd = rs.getMetaData();
			int col  = rsmd.getColumnCount();
			while(rs.next()) {
				bv = new Vector<String>();
				int a;
				for(a=1;a<=col;a++) {
					if(flag) {
						head.add(rsmd.getColumnName(a));
					}
					bv.add(rs.getString(a)==null?"":(String)rs.getString(a));
				}
				body.add(bv);
				flag=false;
				}
		}
		catch(Exception exec) {
			JOptionPane.showMessageDialog(null, "Problemas na tabela.", 
"Erro", JOptionPane.ERROR_MESSAGE);
			exec.printStackTrace();
		}
		jTable = new JTable(body, head);
		jTable.setModel(model);
		jTable.setRowSorter(sorter);
		jTable.setCellEditor(null);
		jTable.setLocation(new Point(15, 118));
		jTable.setBackground(new Color(204, 204, 204));
		jTable.setAutoscrolls(true);
		jTable.setSize(new Dimension(200, 200));
	}
Criado 29 de maio de 2006
Respostas 0
Participantes 1