初识hibernate

.hibrenate是一种ORM,对象关系映射框架。它可以在对象和关系型数据库之间做一个映射。数据库中的字段映射为对象中的属性。
hibernate对JDBC进行进一步的封装,它可以进行持久化层的操作,将数据保存在数据库中,使用hibernate框架,可以减少SQL语句,直接操作hibernate就行。注:三层架构:表示层,业务层,持久化层。
hibernate的核心:
两个配置文件1.在src下的配置文件(hibernate.cfg.xml)对应着Configuration接口。Configuration config = new Configuration().configure();2.映射文件:xxx.hbm.xml;
hibernate.cfg.xml中使用mapping标签指定映射文件,用于关系型数据库和对象之间进行匹配。
hibernateUtil:
private SessionFactory sessionFactory; private Session session; private Transaction transcation; //获取配置 Configuration config = new Configuration().configure(); //注册服务 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry() ; //获取session工厂 sessionFactory = config.buildSessionFactory(serviceRegistry); //得到session session = sessionFactory.openSession(); //开启事物 transcation = session.beginTransaction();
获得session有两种方式:
一种是sessionFactory.openSession();这种方式每一次都是获取一个新的session对象,数据操作完成后要主动提交事物,显示关闭session。不然会造成数据库连接池溢出。
一种是sessionFactory.getCurrentSession();这种方式类似单例模式,每次创建的都是同一个session,不需要显示关闭。注:需要在配置文件中加入thread

Hibernate的优/缺点:
优点:
1、更加对象化
以对象化的思维操作数据库,我们只需要操作对象就可以了,开发更加对象化。
2、移植性
因为Hibernate做了持久层的封装,你就不知道数据库,你写的所有的代码都具有可复用性。
3、Hibernate是一个没有侵入性的框架,没有侵入性的框架我们称为轻量级框架。
4、Hibernate代码测试方便。
5、提高效率,提高生产力。

缺点:
1、使用数据库特性的语句,将很难调优
2、对大批量数据更新存在问题
3、系统中存在大量的攻击查询功能

创建实体类,实例化一个对象,调用save方法,可以将该对象存储在数据库中。
查询方法可以调用session的get()和load()方法获得对象。两个方法有些区别,说法不一致,待研究。
更新方法调用update()方法即可。删除方法调用delete()。

  • 在数据库中存入图片,视频等文件的时候,可以使用BLOB字段进行存储。
    Blob image = Hibernate.getLobCreator(session).createBlob(input,input.available() )
    同样读取的时候,可以通过IO流将文件读取出来。

你可能感兴趣的:(初识hibernate)