Hibernate创建步骤
(五大核心接口:Configuration/SessionFactory/Session/Transaction/Query)
1.新建工程,导入需要的jar包。
2.利用MyEclipse自动生成功能在工程中创建hibernate.cfg.xml配置文件和
HibernateSessionFactory.java工具类。生成的主要内容如下:
hibernate.cfg.xml:
- <hibernate-configuration>
- <session-factory>
- <property name="connection.username">root</property>
- <property name="connection.url">
- jdbc:mysql://localhost:3306/databasename
- </property>
- <property name="dialect">
- org.hibernate.dialect.MySQLDialect
- </property>
- <property name="myeclipse.connection.profile">
- dangdang
- </property>
- <property name="connection.password">root</property>
- <property name="connection.driver_class">
- com.mysql.jdbc.Driver
- </property>
- <mapping resource="entity/User.hbm.xml" />
- </session-factory>
- </hibernate-configuration>
<hibernate-configuration>
<session-factory>
<property name="connection.username">root</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/databasename
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="myeclipse.connection.profile">
dangdang
</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<mapping resource="entity/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
HibernateSessionFactory.java:
- 略。。。
略。。。
3.创建UserDao接口和接口的实现类UserDaoImpl,实现类中测试:
UserDaoImpl.java:
- public class UserDaoImpl implements UserDao {
- public List<User> findAll() {
- Session session = HibernateSessionFactory.getSession();
- Transaction tx = session.beginTransaction();
- Query query = session.createQuery("from User");
- query.setFirstResult(0);//分页
- query.setMaxResults(2);
- List<User> lists = query.list();
- tx.commit();
- HibernateSessionFactory.closeSession();
- return lists;
- }
- public static void main(String[] args) {
- UserDaoImpl user = new UserDaoImpl();
- System.out.println(user.findAll().size());
- }
- }
public class UserDaoImpl implements UserDao {
public List<User> findAll() {
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
Query query = session.createQuery("from User");
query.setFirstResult(0);//分页
query.setMaxResults(2);
List<User> lists = query.list();
tx.commit();
HibernateSessionFactory.closeSession();
return lists;
}
public static void main(String[] args) {
UserDaoImpl user = new UserDaoImpl();
System.out.println(user.findAll().size());
}
}
访问的时候其工作流程:
1.读取并解析配置文件;
2.Configuration负责读取并创建映射信息,创建sessionfactory;
3.SessionFactory负责创建session;
4.Transaction负责开启事物Transaction;
5.Query负责执行持久化操作;
6.Transaction负责提交实物;
7.关闭session;
8.关闭sessionfactory。
持久化对象的三种状态: