Hibernate工作流程

来源:互联网 发布:网络营销效果优化研究 编辑:程序博客网 时间:2024/06/06 00:17


hibernate创建步骤

(五大核心接口:Configuration/SessionFactory/Session/Transaction/Query)

1.新建工程,导入需要的jar包。

2.利用MyEclipse自动生成功能在工程中创建hibernate.cfg.xml配置文件和

 HibernateSessionFactory.Java工具类。生成的主要内容如下:

hibernate.cfg.xml:

[html] view plain copy
  1. <hibernate-configuration>  
  2.   
  3.     <session-factory>  
  4.         <property name="connection.username">root</property>  
  5.         <property name="connection.url">  
  6.             jdbc:mysql://localhost:3306/databasename  
  7.         </property>  
  8.         <property name="dialect">  
  9.             org.hibernate.dialect.MySQLDialect  
  10.         </property>  
  11.         <property name="myeclipse.connection.profile">  
  12.             dangdang  
  13.         </property>  
  14.         <property name="connection.password">root</property>  
  15.         <property name="connection.driver_class">  
  16.             com.mysql.jdbc.Driver  
  17.         </property>  
  18.         <mapping resource="entity/User.hbm.xml" />  
  19.   
  20.     </session-factory>  
  21.   
  22. </hibernate-configuration>  
HibernateSessionFactory.java:

[html] view plain copy
  1. 略。。。  

3.创建UserDao接口和接口的实现类UserDaoImpl,实现类中测试:

UserDaoImpl.java:

[java] view plain copy
  1. public class UserDaoImpl implements UserDao {  
  2.   
  3.     public List<User> findAll() {  
  4.         Session session = HibernateSessionFactory.getSession();  
  5.         Transaction tx = session.beginTransaction();  
  6.         Query query = session.createQuery("from User");  
  7.                 query.setFirstResult(0);//分页  
  8.                 query.setMaxResults(2);  
  9.                 List<User> lists = query.list();  
  10.         tx.commit();  
  11.         HibernateSessionFactory.closeSession();  
  12.         return lists;  
  13.     }  
  14.     public static void main(String[] args) {  
  15.         UserDaoImpl user = new UserDaoImpl();  
  16.         System.out.println(user.findAll().size());  
  17.     }  
  18. }  


访问的时候其工作流程:

1.读取并解析配置文件;

2.Configuration负责读取并创建映射信息,创建sessionfactory;

3.SessionFactory负责创建session;

4.Transaction负责开启事物Transaction;

5.Query负责执行持久化操作;

6.Transaction负责提交实物;

7.关闭session;

8.关闭sessionfactory。

持久化对象的三种状态:




import org.hibernate.Session;import org.hibernate.Transaction;import com.pojo.Student;import com.pojo.Student;import com.util.HibernateSessionFactory;public class addStudent {    /**     * @param args     */    public static void main(String[] args) {        //读取总的配置文件        Configuration cfg=new Configuration.configure();        //创建sessionfactory工厂        SessionFactory factory=cfg.buildSessionFactory();        //打开session        Session session = factory.openSession();        //开启事务        Transaction tr = session.beginTransaction();        //持久化操作 :save/update/delete/find    这里是save        Student s1 = new Student();        s1.setSname("张三");        session.save(s1);        //提交事务        tr.commit();        //关闭sessionion        session.close();    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37


Hibernate的5个核心接口

Configuration:负责管理hibernate配置信息

SessionFactory:负责创建session实例

Session:是hibernate持久化操作的基础,提供了众多的持久化方法

Transaction:是hibernate进行事务操作的接口,是对实际事务实现的一个抽象,这些实现包括JDBC的事务,JTA中的UserTransaction,甚至可以是CORBA事务。

Query :查询接口,用于向数据库查询对象,包装了HQL查询语言,采用了新的面向对象的查询方式。


http://blog.csdn.net/agnesluo/article/details/51287556
http://blog.csdn.net/minelibra/article/details/7684966

0 0
原创粉丝点击