Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JaveEE架构中取代CMP,完成数据持久化的重任(本节内容来自百度百科)
com.mysql.jdbc.Driver
jdbc:mysql:///crmsystem?serverTimeZone=UTC
root
970601
org.hibernate.dialect.MySQL5Dialect
true
true
update
学习Configuration对象=>Configuration功能: 配置加载类.用于加载主配置和orm元数据加载
// 1 创建,调用空参构造
Configuration conf = new Configuration();
// 2 读取指定主配置文件 => 空参加载方法,加载src下的hibernate.cfg.xml文件
conf.configure();
// 3 读取指定orm元数据(扩展),如果主配置中已经引入映射配置.不需要手动加
conf.addResource(resourceName);
conf.addClass(persistentClass);
// 4 根据配置信息,创建 SessionFactory对象
SessionFactory sessionFactory = conf.buildSessionFactory();
学习SessionFactory对象
SessionFactory功能: 用于创建操作数据库核心对象session对象的工厂,简单说功能就是创建session对象
注意:1.sessionfactory负责保存和使用所有配置信息.消耗内存资源非常大.
2.sessionFactory属于线程安全的对象设计
结论: 保证在web项目中,只创建一个sessionFactory.
// 5 获得session,打开一个新的session对象
Session session = sessionFactory.openSession();
// 获得与线程绑定的session对象
Session session2 = sessionFactory.getCurrentSession();
学习Session对象
session对象功能: 表达hibernate框架与数据库之间的连接(会话).session类似于,JDBC年代的connection对象. 还可以完成对数据库中数据的增删改查操作.session是hibernate操作数据库的核心对象
//开启事务并获得操作事务的tx对象(建议使用)
Transaction transaction = session.beginTransaction();
User user = new User();
user.setPassword("123");
session.save(user);
User user = session.get(User.class, 7);
session.delete(user);
User user = session.get(User.class,1);
user.setPassword("123");
session.update(user);
User user = session.get(User.class, 2);
System.out.println(user);
//提交事务
transaction.commit();
//回滚事务
transaction.rollback();
session.close();//释放资源
sessionFactory.close();//释放资源