Vinny
Maio 7, 2010, 3:15pm
#1
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>
Vinny
Maio 7, 2010, 5:51pm
#2
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…
Vinny
Maio 9, 2010, 2:29pm
#5
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);
}
}
_Zell_
Janeiro 23, 2013, 12:58pm
#6
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();
}