Estou tentando executar uma aplicação simples, que por enquanto só tem três classes e acontece o seguinte erro:
run:
03/09/2011 16:19:53 org.hibernate.cfg.annotations.Version
INFO: Hibernate Annotations 3.3.1.GA
03/09/2011 16:19:53 org.hibernate.cfg.Environment
INFO: Hibernate 3.2.5
03/09/2011 16:19:53 org.hibernate.cfg.Environment
INFO: hibernate.properties not found
03/09/2011 16:19:53 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
03/09/2011 16:19:53 org.hibernate.cfg.Environment
INFO: using JDK 1.4 java.sql.Timestamp handling
03/09/2011 16:19:53 org.hibernate.ejb.Version
INFO: Hibernate EntityManager 3.3.2.GA
03/09/2011 16:19:54 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: entidades.Cidade
03/09/2011 16:19:54 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity entidades.Cidade on table Cidade
03/09/2011 16:19:54 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: entidades.Usuario
03/09/2011 16:19:54 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity entidades.Usuario on table Usuario
[PersistenceUnit: FrigoManagerPU] Unable to configure EntityManagerFactory
Exception in thread “main” java.lang.NullPointerException
at execucao.Main.main(Main.java:24)
É a primeira vez que tento fazer com o SQLServer 2008.
Persistence
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="FrigoManagerPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>entidades.Cadastros</class>
<class>entidades.Cidade</class>
<class>entidades.Usuario</class>
<properties>
<property name="hibernate.connection.username" value="DBATAK"/>
<property name="hibernate.connection.driver_class" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="hibernate.connection.password" value="1"/>
<property name="hibernate.connection.url" value="jdbc:sqlserver://;databaseName=SATKBTA"/>
</properties>
</persistence-unit>
</persistence>
Na classe Dao
propConexao = new HashMap();
propConexao.put("hibernate.connection.driver_class","com.microsoft.sqlserver.jdbc.SQLServerDriver");
propConexao.put("hibernate.connection.url","jdbc:sqlserver://;databaseName=SATKBTA");
propConexao.put("hibernate.connection.username", "dbatak");
propConexao.put("hibernate.connection.password", "1");
Obrigado!
para o sql2005, 2008 vc precisa informar o caminho da instancia.
veja.
“jdbc:jtds:sqlserver://192.168.1.1:1433/bancodados;user=sa;password=xxxx;instance=instanciadosql2008”
use essa url…veja q estou usando JTDS como driver.
t+
Adicionei o Jar do JTDS, mas continua dando o mesmo erro, o link editado ficou assim:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="FrigoManagerPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>entidades.Cadastros</class>
<class>entidades.Cidade</class>
<class>entidades.Usuario</class>
<properties>
<property name="hibernate.connection.username" value="DBATAK"/>
<property name="hibernate.connection.driver_class" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="hibernate.connection.password" value="1"/>
<property name="hibernate.connection.url" value="jdbc:jtds:sqlserver://192.168.1.1:1433/SATKBTA;user=dbatak;password=1;instance=BrunoAquino-NB"/>
</properties>
</persistence-unit>
</persistence>
Segue a classe Dao completa:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package conexao;
/**
*
* @author Administrador
*/
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import util.Util;
public class Dao {
private static EntityManagerFactory emf = null;
private static EntityManager em = null;
private static HashMap propConexao = null;
private static EntityManager getEm(){
if(em == null){
try{
propConexao = new HashMap();
propConexao.put("hibernate.connection.driver_class","com.microsoft.sqlserver.jdbc.SQLServerDriver");
// propConexao.put("hibernate.connection.url","jdbc:sqlserver://;databaseName=SATKBTA");
propConexao.put("hibernate.connection.url","jdbc:jtds:sqlserver://192.168.1.1:1433/SATKBTA;user=dbatak;password=1;instance=BrunoAquino-NB");
propConexao.put("hibernate.connection.username", "dbatak");
propConexao.put("hibernate.connection.password", "1");
emf = Persistence.createEntityManagerFactory("FrigoManagerPU");
// Instancia um objeto EntityManager
em = emf.createEntityManager();
}catch (Exception e){
System.out.println(e.getMessage());
}
}
return em;
}
// abrindo uma conexão
public static void conectar(){
getEm();
}
//método ultilizado para iniciar uma transação
public static void startTransaction(){
getEm().getTransaction().begin();
}
//método utilizado para confirmar uma transação aberta
//gravando assim definitivamente os registros no banco de dados
public static void commitTransaction(){
getEm().getTransaction().commit();
}
//método utilizado para desfazer os comandos realizados desde quando
// a transação foi aberta
public static void rollbackTransaction(){
getEm().getTransaction().rollback();
}
//método persiste (grava) um objeto no banco de dados
//é necessario a utilização de transação
public static void persist(Object obj){
try{
startTransaction();
getEm().persist(obj);
commitTransaction();
}catch (Exception e){
System.out.println(e.getMessage());
rollbackTransaction();
}
}
//métodos busca no banco de dados um objeto com a chave primária conforme
//passada por parêmetro
public static Object find(Class classe, Object pk){
try{
return getEm().find(classe, pk);
}catch (Exception e){
System.out.println(e.getMessage());
}
return null;
}
//método remove um objeto no banco de dados
public static void remove(Object obj){
try{
startTransaction();
getEm().remove(obj);
commitTransaction();
}catch (Exception e){
Util.mensagem("Atenção! Registro pode ser excluido!");
System.out.println(e.getMessage());
rollbackTransaction();
}
}
//método que executa um select passando como parâmetro
public static List select (String sql){
Query query = getEm().createQuery(sql);
return query.getResultList();
}
public static EntityManager getEntityManager(){
return getEm();
}
public static HashMap getPropriedadeConexao() {
return propConexao;
}
}
Usei o usuário dbatak, pois é esse o que eu uso para logar no SqlServer2008