发表于: 2017-12-03 23:07:45

1 662


今日完成:

看了hibernate的定义和使用,把复盘评审的ppt修改了一下。

明日计划:

复盘评审。

对hibernate的了解:

Hibernate的持久对象有会话工厂,事务工厂,连接工厂,会话,事务等。

SessionFactory(会话工厂)ConnectionProvider的会话和客户端工厂。 它拥有数据的二级缓存(可选)。 org.hibernate.SessionFactory接口提供了工厂方法来获取Session的对象。


Session(会话)对象提供应用程序和存储在数据库中的数据之间的接口。 它是一个短生命周期的对象并包装JDBC连接。 它是事务,查询和标准的工厂。 它拥有一级缓存(强制性)数据。 org.hibernate.Session口提供插入,更新和删除对象的方法。 它还提供了事务,查询和标准的工厂方法。


Transaction(事务)对象指定工作的原子单位,它是一个可选项。 org.hibernate.Transaction接口提供事务管理的方法。

连接提供者(ConnectionProvider)是一个JDBC连接工厂。 它从DriverManager或DataSource抽象出来的应用程序。 它是一个可选项。

事务工厂(TransactionFactory)也是一个可选项。

映射文件:

<hibernate-mapping>     

<class name="com.jnshu.User" table="tb_user">         

    <id name="id">             

    <generator class="increment"/>         

    </id>         

<property name="name"></property>         

<property name="age"></property>         

<property name="address"></property>     

</class></hibernate-mapping>

其中可以直接指定表


存方法:

public static int save(User u){

int i=0;

StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();

SessionFactory sessionFactory=new MetadataSources(registry).buildMetadata().buildSessionFactory();

Session session=sessionFactory.openSession();

Transaction t=session.beginTransaction();

i=(Integer) session.save(u);

t.commit();

session.close();

System.out.println(u.getName());

return i;}

上面的session创建和mybatis差不多,但是不需要写sql语句,这样方便了许多,但是减少了根据需求定制的好处。

进度:

复盘评审




返回列表 返回列表
评论

    分享到