Miniclase en java para hacer consultas a una BDD SQL de Oracle

he aquí una clase en java que acabo de hacer para conectarse a una base de datos SQL de Oracle. Facilita la vida y ahorra complicaciones. Esperemos que le sirva a alguien. También me servirá a mi mismo para no perderla por que sospecho que me volverá a hacer falta. Requiere añadir el .jar del driver específico de la versión de sql de Oracle que sirva la base de datos.

package bd;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
 
public class Database {
 
	private String host;
	private String user;
	private String password;
	private String port;
	private String dir;
	private Statement stmt;
	private Connection con;
	public Database() {
 
	}
	public Database(String h, String u, String p, String po, String s) {
		port=po;
		host=h;
		password=p;
		dir=s;
		user=u;
	}
 
	public boolean conectar() {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			con=DriverManager.getConnection("jdbc:oracle:thin:@"+host+":"+port+":"+dir,user,password);
			stmt=con.createStatement();
			return true;
		}
		catch(Exception e){
			return false;
			}
	}
	public String ejecutarConsulta(String consulta) { // Cambia este método para hacer con la consulta lo que gustes
		try {
 
			ResultSet rs=stmt.executeQuery(consulta);
			String devolver="";
			while(rs.next()) {
				for(int i=1; i<=rs.getFetchSize(); i++) {
					devolver+=rs.getString(i)+" ";
				}
				devolver+="\n";
			}
			return devolver;
		}
		catch (Exception SQLException) {
			System.out.println("Saltó la escepción\n"+SQLException);
		}
		return "error";
	}
	public boolean desconectar() {
		try {
			con.close();
			return true;
		}
		catch (Exception SQLException) {
			return false;
		}
	}
}

La clase la podemos probar con algo como esto:

package bd;
 
public class Test {
 
	public Test() {
		// TODO Auto-generated constructor stub
	}
 
	public static void main(String[] args) {
		Database d=new Database("localhost", "hr", "hr", "1521", "xe");
		String c="String";
		System.out.println("Conectando con la base de datos:");
		if(d.conectar())
			c=d.ejecutarConsulta("select * from employees");
		else
			System.out.println("No se pudo conectar. Revisa los datos introducidos.");
		if(d.desconectar())
			System.out.println("Desconectado tras jecutar la consulta.");
		else
			System.out.println("Por alguna razón no se ha podido desconectar.");
		System.out.println(c);
	}
 
}

Lo dicho, espero que alguien le saque utilidad. Puede mejorarse, seguro.

2 comments

11
Mayo

Imagen de vfmBOFH

Atentos los escritores:

Si publicáis *cualquier cosa* que no sea una entrada de blog, acordaos de marcar que se promueva a la portada.

La opción está en "Opciones de publicación".

Acabaré unificando todo en una categoría y hastaluegolucas.

Atentamente, La voz ésa del interior de tu cabeza que oyes cuando lees algo.

6
Jun

Hola!

Si vas a concatenar un String tantas veces, mira la clase String builder. Será mucho más óptimo.

Saludos!