sexta-feira, 9 de abril de 2010

Gerar Relatório .PDF em uma Servlet

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;



public class GerarPDF extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}

//Você pode chamar esse método no DoGet ou DoPost!
public void GerarPDF(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();

try{

RelConexao rc = new RelConexao();
rc.conexaorel();
String pathJasper = getServletContext().getRealPath("/relatorios") + "/";

String path = getServletContext().getRealPath("/");

Map parametros = new HashMap();

parametros.put("", pathJasper + "Relatorio.jasper");
try {
// Aqui ele cria o relatório
JasperPrint impressao = JasperFillManager.fillReport(
pathJasper + "Relatorio.jasper", parametros, rc.con);
// Grava o relatório em disco em pdf
JasperManager.printReportToPdfFile(impressao, path + "Relatorio.pdf");
// Redireciona para o pdf gerado
response.sendRedirect("Relatorio.pdf");
} catch (Exception e) {
response.getWriter().println("Erro ao gerar o relatório :"+ e);
}

}catch(Exception e){
System.out.println("Erro: "+ e);
}

}

}



Classe de Conexão com o banco de dados!


import java.sql.*;


public class RelConexao {

public void conexaorel() {
try {
if (con == null || con.isClosed()) {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/Nome_do_Banco","login_bd","senha_bd");
}
} catch (Exception e) {

System.out.println("Erro ao conectar com o Banco de dados! " +e);
}
}


}


Obs: É precisso usar algumas bibliotecas para poder gerar em PDF!

While em C++

#include "cstdlib"
#include "iostream"


int main(int argc, char *argv[])
{
int x = 0;
//vai imprimir de 0 até 10.
while(x <= 10){
printf("Contador: %d\n" , x);
x++;
}
system("PAUSE");
return EXIT_SUCCESS;
}


Obs: para todos exemplos de C/C++ será usado a IDE DevC++ onde você pode baixar indo em Downloads

terça-feira, 6 de abril de 2010

Fazendo uma conexão com Banco de Dados PostgreSQL

import java.sql.*;

public class ConexaoBancodeDadosPSQL(){

public static void main(String args[]) {
//variavés login e senha
String login = "123";
String senha = "123";

try {
//pega o Drive de conexão do PostgreSQL
Class.forName("org.postgresql.Driver");

//conecta com o banco de dados PostgreSQL
Connection con = DriverManager.getConnection("jdbc:postgresql://localhost/Ex", "postgres", "postgres");

//String sql onde você irá passar a linha de código do SQL podendo ser Iserte,Select etc...
String sql = "SELECT u.nome,u.login,u.senha FROM usuarios u WHERE login=? AND senha=?";

//esse método pega a conexão do banco e executa o SQL
PreparedStatement ps = con.prepareStatement(sql);

//passa os parametros que no SQL estão repesentados com uma "?" perceba que esta na ordem
//ex: WHERE login=? isso indica que "login"´será o primeiro parametro!
ps.setString(1, login);

ps.setString(2, senha);

//ResultSet pega o resultado do SQL executado pelo PreparedStatement
ResultSet rs = ps.executeQuery();

//rs.next() verifica se existe algum registro de acordo com os dados imformados pelo usúario
if (rs.next()) {

//existindo o registro imformado ele vai trazer do banco de dados o valor do campo "nome"
String nome = rs.getString("nome");

//vai imprimir o nome do usúario
System.out.println("Nome " + nome);

} else {

//se os dados não existirem no Bamco de Dados ele exibibe a mensagem de erro!
System.out.println("Dados incorretos!");
}


} catch (Exception e) {

//caso não consiga fazer a conexão, ele irá imprimir a messagem de erro com o nome do erro!
System.out.println("Erro na conexão " + e);

}

}
}
//essa foi a estrutura do Banco de Dados PostgreSQL que usei para fazer o Exemplo!
/*
CREATE TABLE "public"."usuarios" (
"id" SERIAL,
"nome" VARCHAR(50) NOT NULL,
"login" VARCHAR(50) NOT NULL,
"senha" VARCHAR(50) NOT NULL,
CONSTRAINT "usuarios_login_key" UNIQUE("login"),
CONSTRAINT "usuarios_pkey" PRIMARY KEY("id")
) WITH OIDS;
*/

//Obs: O Banco de dados utilizado no exmplo foi o PostgreSQL 8.3!
//Lembre-se: Se você quiser usar outro banco de dados é so você mudar o caminho do Drive de acordo com o Drive de conexão do Novo Banco de dados "Class.forName("org.postgresql.Driver");"
//e o caminho,porta,usuario e senha do Banco de Bados " Connection con = DriverManager.getConnection("jdbc:postgresql://localhost/Ex", "postgres", "postgres");"

Substituir Vogais !

Bom pessoal existe várias formas de fazer substitições de vogais em palavras "Strings"
as duas formas apresentadas vão esta bastante diferentes ! A primeira utiliza o "for" que é o
comando de loop "laço" e a segunda não!

Primeira CLASSE!

public class SubstituirVogais_parte1(){

public static final char vogais[] = new char[]{'a', 'e', 'i', 'o', 'u'};

public static void main(String args[]) {

String palavra = "Banana";
char palavraNova[] = palavra.toCharArray();

for (int i = 0; i < vogais.length; i++) {
for (int j = 0; j < palavraNova.length; j++) {
if (palavraNova[j] == vogais[i]) {
palavraNova[j] = 'x';
}
}
}
System.out.println(new String(palavraNova));

}


}

Segunda CLASSE!

public class SubstituirVogais_parte2(){

public static void main(String args[]){

String mensagem = "Banana";
System.out.println(mensagem.replaceAll("[AEIOUaeiou]", "x"));

}

}

Espero ter gostado!

Fonte: GUJ!

Obs: o primeiro método foi feito com minha ajuda!

vlw

Escrever um número por extenso

import javax.swing.JOptionPane;

public class NumeroPorExtenso {
public static void main(String[] args) {
String numero = JOptionPane.showInputDialog("Informe o Numero ");
String extenso = "";

int x = 0;
String numeros[] = new String[] { "zero", "um", "dois", "tres",
"quatro", "cinco", "seis", "sete", "oito", "nove", "dez",
"onze", "doze", "treze", "quatorze", "quinze", "desesseis",
"dezessete", "dezoito", "dezenove", "vinte", "vinte e um",
"vinte e dois", "vinte e tres", "vinte e quatro",
"vinte e cinco", "vinte e seis", "vinte e sete",
"vinte e oito", "vinte e nove", "trinta", "trinta e um",
"trinta e dois", "trinta e tres", "trinta e quatro",
"trinta e cinco", "trinta e seis", "trinta e sete",
"trinta e oito", "trinta e nove", "quarenta", "quarenta e um",
"quarenta e dois", "quarenta e tres", "quarenta e quatro",
"quarenta e cinco", "quarenta e seis", "quarenta e sete",
"quarenta e oito", "quarenta e nove" };

if ((Integer.parseInt(numero)) >= 0 && (Integer.parseInt(numero)) < 50) {

extenso = numeros[Integer.parseInt(numero)];

JOptionPane.showMessageDialog(null, extenso);
} else if (Integer.parseInt(numero) < 0) {
JOptionPane.showMessageDialog(null, "Valor menor que zero");
} else {
JOptionPane.showMessageDialog(null,
"Valor maior que quarenta e nove");
}

}

}

Obs: esse metódo só aceita números de 0 a 49!

Verificar se número é Par ou Impar

import javax.swing.JOptionPane;

public class VerificarParImpar {


public static void main(String[] args) {
// TODO Auto-generated method stub
try {

int numero = Integer.parseInt(JOptionPane.showInputDialog("Informe um valor Inteiro"));

if (numero < 0) {

JOptionPane.showMessageDialog(null, "Por Favor.Informe valores positivos!");

} else {

if ((numero % 2) == 0) {

JOptionPane.showMessageDialog(null, "O número informado e Par.");

} else {

JOptionPane.showMessageDialog(null, "O número informado e Impar.");

}


}

} catch (Exception e) {

JOptionPane.showMessageDialog(null, "Atenção.O valor informado não e válido!!");

}


}

}