发表于: 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语句,这样方便了许多,但是减少了根据需求定制的好处。
进度:
复盘评审
评论