试过目前几乎所有看到的代码。仍然报错,都指向SessionFactory创建的这行。。
官方那个给的
package test;
import java.io.IOException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.Test;
import bean.Message;
public class MessageTest {
private SessionFactory sessionfactory;
private org.hibernate.Session session;
private Transaction transaction;
@Test
public void test() throws IOException {
// 创建一个SessionFactory对象
SessionFactory sessionFactory = null;
final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure().build();
try {
sessionFactory = new MetadataSources(registry).buildMetadata()
.buildSessionFactory();
} catch (Exception e) {
// 出现异常需要销毁StandardServiceRegistry注册表
StandardServiceRegistryBuilder.destroy(registry);
System.out.println("创建会化工厂失败");
}
//2.创建一个Session对象
org.hibernate.Session session = sessionFactory.openSession();
session.beginTransaction();
// Configuration configuration = new Configuration().configure();
// sessionfactory = new Configuration().configure().buildSessionFactory();
// session = sessionfactory.getCurrentSession();
// transaction = session.beginTransaction();
// Configuration configuration = new Configuration();
// SessionFactory sf = configuration.buildSessionFactory();
// org.hibernate.Session session = sf.openSession();
// Transaction tx = session.beginTransaction();
// tx.begin();
// ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
// SessionFactory sessionFactory = new MetadataSources(serviceRegistry)
// .buildMetadata().buildSessionFactory();
// org.hibernate.Session session = sessionFactory.openSession();
// Transaction transaction = session.beginTransaction();
// // 创建配置对象
// Configuration configuration = new Configuration().configure();
// // 创建服务注册对象
// StandardServiceRegistryBuilder serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
// //创建会话工厂对象
// SessionFactory sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
//
// //创建会话对象
// session = sessionfactory.openSession();
// //开启事务
// transaction = session.beginTransaction();
Message message = new Message();
message.setId("1");
message.setCommand("我是命令");
message.setContent("呢荣");
message.setDescription("我是描述");
session.save(message);
session.getTransaction().commit();
session.close();
}
}
2.版本2
package test;
import java.io.IOException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.Test;
import bean.Message;
public class MessageTest {
private SessionFactory sessionfactory;
private org.hibernate.Session session;
private Transaction transaction;
@Test
public void test() throws IOException {
// // 创建一个SessionFactory对象
// SessionFactory sessionFactory = null;
// final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
// .configure().build();
// try {
// sessionFactory = new MetadataSources(registry).buildMetadata()
// .buildSessionFactory();
// } catch (Exception e) {
// // 出现异常需要销毁StandardServiceRegistry注册表
// StandardServiceRegistryBuilder.destroy(registry);
// System.out.println("创建会化工厂失败");
// }
// //2.创建一个Session对象
//
// org.hibernate.Session session = sessionFactory.openSession();
// session.beginTransaction();
// Configuration configuration = new Configuration().configure();
// sessionfactory = new Configuration().configure().buildSessionFactory();
// session = sessionfactory.getCurrentSession();
// transaction = session.beginTransaction();
Configuration configuration = new Configuration();
SessionFactory sf = configuration.buildSessionFactory();
org.hibernate.Session session = sf.openSession();
Transaction tx = session.beginTransaction();
tx.begin();
// ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
// SessionFactory sessionFactory = new MetadataSources(serviceRegistry)
// .buildMetadata().buildSessionFactory();
// org.hibernate.Session session = sessionFactory.openSession();
// Transaction transaction = session.beginTransaction();
// // 创建配置对象
// Configuration configuration = new Configuration().configure();
// // 创建服务注册对象
// StandardServiceRegistryBuilder serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
// //创建会话工厂对象
// SessionFactory sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
//
// //创建会话对象
// session = sessionfactory.openSession();
// //开启事务
// transaction = session.beginTransaction();
Message message = new Message();
message.setId("1");
message.setCommand("我是命令");
message.setContent("呢荣");
message.setDescription("我是描述");
session.save(message);
session.getTransaction().commit();
session.close();
}
}
3.版本3
package test;
import java.io.IOException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.Test;
import bean.Message;
public class MessageTest {
private SessionFactory sessionfactory;
private org.hibernate.Session session;
private Transaction transaction;
@Test
public void test() throws IOException {
// // 创建一个SessionFactory对象
// SessionFactory sessionFactory = null;
// final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
// .configure().build();
// try {
// sessionFactory = new MetadataSources(registry).buildMetadata()
// .buildSessionFactory();
// } catch (Exception e) {
// // 出现异常需要销毁StandardServiceRegistry注册表
// StandardServiceRegistryBuilder.destroy(registry);
// System.out.println("创建会化工厂失败");
// }
// //2.创建一个Session对象
//
// org.hibernate.Session session = sessionFactory.openSession();
// session.beginTransaction();
// Configuration configuration = new Configuration().configure();
// sessionfactory = new Configuration().configure().buildSessionFactory();
// session = sessionfactory.getCurrentSession();
// transaction = session.beginTransaction();
// Configuration configuration = new Configuration();
// SessionFactory sf = configuration.buildSessionFactory();
// org.hibernate.Session session = sf.openSession();
// Transaction tx = session.beginTransaction();
// tx.begin();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
SessionFactory sessionFactory = new MetadataSources(serviceRegistry)
.buildMetadata().buildSessionFactory();
org.hibernate.Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
// // 创建配置对象
// Configuration configuration = new Configuration().configure();
// // 创建服务注册对象
// StandardServiceRegistryBuilder serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
// //创建会话工厂对象
// SessionFactory sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
//
// //创建会话对象
// session = sessionfactory.openSession();
// //开启事务
// transaction = session.beginTransaction();
Message message = new Message();
message.setId("1");
message.setCommand("我是命令");
message.setContent("呢荣");
message.setDescription("我是描述");
session.save(message);
session.getTransaction().commit();
session.close();
}
}
public class TestStudents {
public static SessionFactory getSessionFactory() {
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
StandardServiceRegistry registry = builder.configure().build();
SessionFactory sessionFactory = new MetadataSources(registry)
.buildMetadata().buildSessionFactory();
System.out.println(sessionFactory);
return sessionFactory;
}
@Test
public void testSaveStudents() {
// Configuration config = new Configuration().configure();
SessionFactory sessionFactory = null;
final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure() // configures settings from hibernate.cfg.xml
.build();
try {
sessionFactory = new MetadataSources(registry).buildMetadata()
.buildSessionFactory();
} catch (Exception e) {
StandardServiceRegistryBuilder.destroy(registry);
}
}
public static void main(String[] args) {
SessionFactory factory = getSessionFactory();
Session session = factory.openSession();
session.getTransaction().begin();
Students students = new Students("s00000001", "lisa", "女", new Date(),
"东莞");
session.save(students);
session.getTransaction().commit();
session.close();
// test();
}
}强烈好评好评好评
package util;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import bean.User;
public class HibernateUtil {
public static SessionFactory getSessionFactory() {
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
StandardServiceRegistry registry = builder.configure().build();
SessionFactory sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
System.out.println(sessionFactory);
return sessionFactory;
}
public static void test(){
SessionFactory sessionFactory = null;
final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure() // configures settings from hibernate.cfg.xml
.build();
try {
sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();
}
catch (Exception e) {
StandardServiceRegistryBuilder.destroy( registry );
}
}
public static void main(String[] args) {
SessionFactory factory = getSessionFactory();
Session session = factory.openSession();
session.getTransaction().begin();
User user = new User();
user.setId(10);
user.setName("tanlei");
user.setPassword("123456");
user.setType("admin");
session.save(user);
session.getTransaction().commit();
session.close();
//test();
}
}
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.junit.After;
import org.junit.Test;
import HibernateTest.Address;
import HibernateTest.Student;
public class TestSession {
private SessionFactory sessionfactory;
private Session session;
private Transaction transaction;//事务
@Test
public void testOpenSession(){
Configuration config = new Configuration().configure();
sessionfactory= config.buildSessionFactory();
Session session1 = sessionfactory.openSession();
Session session2 = sessionfactory.openSession();
System.out.println(session1==session2);//false
}
@Test
public void testGetCurrentSession(){
Configuration config = new Configuration().configure();
SessionFactory sessionfactory = new Configuration().configure().buildSessionFactory(new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build());
Session session1 = sessionfactory.getCurrentSession();
Session session2 = sessionfactory.getCurrentSession();
System.out.println(session1==session2);//true
}
}