Hibernate
执行流程:
- 创建配置对象:
Configuration config = new Configuration().configure();
- 创建服务注册对象:
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().
applySettings(config.getProperties()).buildServiceRegistry();
- 创建会话工厂对象:
sessionFactory = config.buildSessionFactory(serviceRegistry);
- 会话对象:
session = sessionFactory.openSession();
- 开启事务:
transaction = session.beginTransaction();
transaction
hibernate默认是不自动提交的,需要开启事务,每次操作完之后提交.
session获取方法
- sessionFactory.openSession()
- sessionFactory.getCurrentSession()
- 区别:
- get…()自动关闭session,open()手动关闭;
- get…()获取到的是现有的session(类似单例模式),open()每次获取到的都是新的session
持久类对象的三种状态转化
- Hibernate的对象有三种状态:瞬时态,持久态,托管态
- 瞬时态:new之后,但是没有进行持久化处理
- 持久态:持久处理之后.
- 托管态:session关闭,清除等操作
单表映射
- 单一主键:assigned(手工赋值) native,由底层数据库自动生成标识符
- 基本类型:
- 对象类型:
读取本地图片:
File f = new File("路径");
InputStream input = new FileInputStream(f);
Blob image = Hibernate.getLobCreate(session).createBlob(input,inpiut.available());
获取数据库图片:
Bolb image = object.getImage();