67,512
社区成员
发帖
与我相关
我的任务
分享
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=mysql</property>
<property name="connection.username">sa</property>
<property name="connection.password">12345</property>
<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<mapping resource="User.hbm.xml"/>
<mapping class="hibernate_test.User"/>
</session-factory>
</hibernate-configuration>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Feb 24, 2017 9:07:02 PM by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<class name="hibernate_test.User" table="USER">
<id name="id" type="int">
<column name="ID" />
<generator class="assigned" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
<property name="password" type="java.lang.String">
<column name="PASSWORD" />
</property>
</class>
</hibernate-mapping>
package hibernate_test;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.service.ServiceRegistry;
public class HibernateUtil {
private static final ThreadLocal<Session> threadlocal=new ThreadLocal<Session>();
private static SessionFactory sessionFactory=null;
private static ServiceRegistry serviceRegistry =null;
static{
try {
// Create the SessionFactory from hibernate.cfg.xml
Configuration configuration = new Configuration();
configuration.configure("hibernate.cfg.xml");
System.out.println("Hibernate Configuration loaded");
// configuration.addClass(hibernate_test.User.class);
// Read mappings as a application resourceName
// addResource is for add hbml.xml files in case of declarative approach
configuration.addResource("User.hbm.xml"); //
//apply configuration property settings to StandardServiceRegistryBuilder
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
System.out.println("Hibernate serviceRegistry created");
sessionFactory = configuration
.buildSessionFactory(serviceRegistry);
}
catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
/**
* attain session
* @return Session
* @throws HibernateException
*/
public static Session getSession() throws HibernateException{
Session session=(Session) threadlocal.get();
if(session==null||!session.isOpen()){
if(session==null){
rebuildSessionFactory();
}
session=(sessionFactory!=null)?sessionFactory.openSession():null;
threadlocal.set(session);
}
System.out.println("***crating session");
return session;
}
/**
* rebuild SessionFactory
*/
public static void rebuildSessionFactory(){
try{
Configuration configuration=new Configuration().configure();
sessionFactory=configuration .buildSessionFactory(serviceRegistry);
}catch(Exception e){
System.err.println("build sessionFactory fail");
e.printStackTrace( );
}
}
/**
* attain object of SessionFactory
* @return object of SessionFactory
*/
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
/**
* close Session
* @throws HibernateException
*/
public static void closeSession() throws HibernateException{
Session session=(Session) threadlocal.get();
threadlocal.set(null);
if(session!=null)
session.close();
}
}
package hibernate_test;
import org.hibernate.Session;
public class MainTest {
public static void main(String[] args) {
User user=new User();
user.setId(123);user.setName("Rosand");user.setPassword("admin");
Session session=null;
try{
session=HibernateUtil.getSession();
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
System.out.println("success");
}catch(Exception e){
session.getTransaction().rollback();
System.out.println("fail");
e.printStackTrace( );
}finally{
HibernateUtil.closeSession();
}
}
}