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.
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!
jorgelibanori
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!
boneazul
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!
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…
Vinny
Bom obrigado pela dica
Consegui fazer programaticamente mesmo
minha solução foi a seguinte:
publicclassHibernateUtil{privatestaticStringcaminho=System.getProperty("user.dir").replace("\\","/")+"/Archives/DB/DBMC.FDB";privatestaticStringurl;privatestaticfinalSessionFactorysessionFactory;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{Stringtxt=caminho;Stringline=null;txt=txt.replace("//","");txt=txt.substring(0,txt.indexOf("/"));try{FileInputStreamstream=null;stream=newFileInputStream(System.getProperty("user.dir").replace("\\","/")+"/Archives/DB/config.txt");InputStreamReaderstreamReader=newInputStreamReader(stream);BufferedReaderreader=newBufferedReader(streamReader);line=reader.readLine();}catch(IOExceptionex){Logger.getLogger(HibernateUtil.class.getName()).log(Level.SEVERE,null,ex);}url="jdbc:firebirdsql:"+txt+"/3050:"+line.replace("/","\\");}System.out.println(url);Configurationcfg=newConfiguration().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(Throwableex){// Log the exception. System.err.println("Initial SessionFactory creation failed."+ex);thrownewExceptionInInitializerError(ex);}}
_Zell_
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 * */publicstaticvoidbootMappingDataBase(){AnnotationConfigurationcfg=newAnnotationConfiguration();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();}