Conexão dinamica com HIBERNATE [RESOLVIDO]

Tem como eu definir um caminho dinamico do meu banco de dados no hibernate?
Algum comando que retorne o caminho das classe, um comando que funcione dentro do XML, pq assim eu posso estar definindo
um caminho dinamico, não importando onde minha aplicação tá ela vai roda sem problemas!

a URL abaixo esta definida em um local fixo eu queria que pudesse mudar de acordo de onde tiver meu jar.

<property name="hibernate.connection.url">jdbc:firebirdsql:localhost/3050:D:/Meus Documentos/NetBeansProjects/MIC CENTER/Archives/DB/DBMC.FDB</property>

Será que não tem geito?
Por favor ajuda ae galera
preciso saber se existe algum comando pra mim faze a conexão com o banco de qualquer lugar que ele esteja, sem definir um lugar padrão!

Cara, primeiro seria interessante vc adicionar um alias para seu bd. vai na pasta aonde está instalada o firebird e configure o arquivo alias.conf, lá tem a sintaxe da configuração… isso ja matava um problema, pois depois seria apenas necessario passar o nome do bd e não o caminho da pasta… ficaria assim:

jdbc:firebirdsql:localhost/3050:DBMC

Um sugestão apenas.

abraço!

[quote=Vinny]Será que não tem geito?
Por favor ajuda ae galera
preciso saber se existe algum comando pra mim faze a conexão com o banco de qualquer lugar que ele esteja, sem definir um lugar padrão![/quote]

No hibernate tem como sim…voce tem que fazer programaticamente…ou seja usando api…eu so num lembro os trechos de codigo…da uma pesquisada na net ai…
é algo no pacote Annotation do hibernate…em que voce passa os parametros que desejar sem usar nada fixo no hibernate.cfg.xml…

Bom obrigado pela dica
Consegui fazer programaticamente mesmo
minha solução foi a seguinte:

public class HibernateUtil {
    private static String caminho = System.getProperty("user.dir").replace("\\", "/")+"/Archives/DB/DBMC.FDB";
    private static String url;
    private static final SessionFactory sessionFactory;

    static {
        try {
            // Create the SessionFactory from standard (hibernate.cfg.xml) 
            // config file.
            
            if (!Character.isDigit(caminho.charAt(0)) && caminho.charAt(1)==':'){
                url = "jdbc:firebirdsql:localhost/3050:"+caminho;
                frmPrincipal.gravaArq();
            }else{
                String txt = caminho;
                String line = null;
                txt = txt.replace("//", "");
                txt = txt.substring(0,txt.indexOf("/"));
                try {
                    FileInputStream stream = null;
                    stream = new FileInputStream(System.getProperty("user.dir").replace("\\", "/")+"/Archives/DB/config.txt");
                    InputStreamReader streamReader = new InputStreamReader(stream);
                    BufferedReader reader = new BufferedReader(streamReader);
                    line = reader.readLine();
                } catch (IOException ex) {
                    Logger.getLogger(HibernateUtil.class.getName()).log(Level.SEVERE, null, ex);
                }
                url = "jdbc:firebirdsql:"+txt+"/3050:"+line.replace("/", "\\");
            }
            
            System.out.println(url);
            Configuration cfg = new Configuration()
            .setProperty("hibernate.dialect",
                         "org.hibernate.dialect.FirebirdDialect")
            .setProperty("hibernate.connection.driver_class",
                         "org.firebirdsql.jdbc.FBDriver")
            .setProperty("hibernate.connection.url",
                         url)
            .setProperty("hibernate.connection.username", "SYSDBA")
            .setProperty("hibernate.connection.password", "*****")
            .setProperty("hibernate.connection.autocommit", "true")
            .setProperty("hibernate.show_sql", "true")
            .addResource("hibernate/entity/Agenda.hbm.xml")
            .addResource("hibernate/entity/Bancos.hbm.xml")
            .addResource("hibernate/entity/Categorias.hbm.xml")
            .addResource("hibernate/entity/Chamadas.hbm.xml")
            .addResource("hibernate/entity/Cidades.hbm.xml")
            .addResource("hibernate/entity/Comentarios.hbm.xml")
            .addResource("hibernate/entity/Compras.hbm.xml")
            .addResource("hibernate/entity/ComprasProdutos.hbm.xml")
            .addResource("hibernate/entity/ConfigFuncionario.hbm.xml")
            .addResource("hibernate/entity/ContasPagar.hbm.xml")
            .addResource("hibernate/entity/ContasReceber.hbm.xml")
            .addResource("hibernate/entity/Equipamentos.hbm.xml")
            .addResource("hibernate/entity/Estados.hbm.xml")
            .addResource("hibernate/entity/Funcionarios.hbm.xml")
            .addResource("hibernate/entity/Orcamentos.hbm.xml")
            .addResource("hibernate/entity/OrcamentosProdutos.hbm.xml")
            .addResource("hibernate/entity/OrcamentosServicos.hbm.xml")
            .addResource("hibernate/entity/OrdensServico.hbm.xml")
            .addResource("hibernate/entity/OrdensServicoProdutos.hbm.xml")
            .addResource("hibernate/entity/OrdensServicoServicos.hbm.xml")
            .addResource("hibernate/entity/OrdensServicoSituacao.hbm.xml")
            .addResource("hibernate/entity/Pedidos.hbm.xml")
            .addResource("hibernate/entity/PedidosProdutos.hbm.xml")
            .addResource("hibernate/entity/Pessoas.hbm.xml")
            .addResource("hibernate/entity/Pfisicas.hbm.xml")
            .addResource("hibernate/entity/Pjuridicas.hbm.xml")
            .addResource("hibernate/entity/Produtos.hbm.xml")
            .addResource("hibernate/entity/Servicos.hbm.xml")
            .addResource("hibernate/entity/Situacao.hbm.xml")
            .addResource("hibernate/entity/Vendas.hbm.xml")
            .addResource("hibernate/entity/VendasProdutos.hbm.xml")
            .addResource("hibernate/entity/VendasServicos.hbm.xml");
            
            sessionFactory = cfg.buildSessionFactory();
//            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Log the exception. 
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

Galera, to passando aqui só para atualizar o tópico e passar a dica de um dos nossos usuário aqui do GUJ.
Através da dica do Rafael Guerreiro eu mapeei minhas classes de entidade:

	/**
	 * Inicializa mapa de dados do Hibernate.
	 * 
	 * @author Zell Ruskea
	 * */
	public static void bootMappingDataBase() {
		
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
		cfg.setProperty("hibernate.connection.url", "jdbc:mysql://localhost:3306/pollo");
		cfg.setProperty("hibernate.connection.username", "root");
		cfg.setProperty("hibernate.connection.password", "root");
		cfg.setProperty("connection.pool_size", "1");
		cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect");  
		cfg.setProperty("show_sql", "false");
		cfg.setProperty("hibernate.archive.autodetection", "class, hbm"); 
		
		cfg.addAnnotatedClass(FinancialLaunch.class);
        cfg.addAnnotatedClass(Address.class);
        cfg.addAnnotatedClass(Schedule.class);
        cfg.addAnnotatedClass(ScheduleCategory.class);
        cfg.addAnnotatedClass(ScheduleException.class);
        cfg.addAnnotatedClass(Discipline.class);
        cfg.addAnnotatedClass(Furniture.class);
        cfg.addAnnotatedClass(Graduation.class);
        cfg.addAnnotatedClass(Material.class);
        cfg.addAnnotatedClass(Course.class);
        cfg.addAnnotatedClass(CourseDiscipline.class);
        cfg.addAnnotatedClass(Professor.class);
        cfg.addAnnotatedClass(Room.class);         
        cfg.addAnnotatedClass(Student.class);
        cfg.addAnnotatedClass(StudentFrequence.class);
        cfg.addAnnotatedClass(StudentRating.class);
        cfg.addAnnotatedClass(StudentNote.class);
        cfg.addAnnotatedClass(StudentCourse.class);
        cfg.addAnnotatedClass(StudentClass.class);
        cfg.addAnnotatedClass(StudentFinanceResponsible.class);
        cfg.addAnnotatedClass(StudentEvent.class);
        cfg.addAnnotatedClass(Event.class);
        cfg.addAnnotatedClass(KeyCode.class);
        cfg.addAnnotatedClass(SysUser.class);
        cfg.addAnnotatedClass(SysRigth.class);
        cfg.addAnnotatedClass(BoxFlow.class);
        cfg.addAnnotatedClass(BoxFlowRegistry.class);
        cfg.addAnnotatedClass(FinanceControl.class);
        cfg.addAnnotatedClass(Account.class);
        cfg.addAnnotatedClass(Color.class);
        cfg.addAnnotatedClass(StudentSituation.class);
        cfg.addAnnotatedClass(FrequenceSituation.class);
        cfg.addAnnotatedClass(Propertie.class);
        cfg.addAnnotatedClass(Inconsistencie.class);
        cfg.addAnnotatedClass(Report.class);
        cfg.addAnnotatedClass(Teaching.class);
        cfg.addAnnotatedClass(Annex.class);
        cfg.addAnnotatedClass(TeachingInstance.class);
        cfg.addAnnotatedClass(AnnexInstance.class);
        cfg.addAnnotatedClass(Statistic.class);
        cfg.addAnnotatedClass(ProfessorPayment.class);
        cfg.addAnnotatedClass(Payment.class);
        cfg.addAnnotatedClass(PaymentAppends.class);
  		cfg.addAnnotatedClass(PaymentType.class);
  		cfg.addAnnotatedClass(PaymentRule.class);
  		cfg.addAnnotatedClass(PaymentAppendsModel.class);  
		
//		sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
		sessionFactory = cfg.buildSessionFactory();
		session = sessionFactory.openSession();
	}