zoukankan      html  css  js  c++  java
  • 第四讲 :hibernate中的session

    hibernate中的session中可以进行增删改差,通过工具类可以得到相关的工具类。

    方法概要:

     Transaction

    beginTransaction()开始一个工作单元,得到关联的事务对象。

     void

    cancelQuery()取消当前执行的查询。

     void

    clear()彻底清除session。

     Connection

    close()通过断开JDBC连结结束 Session和清除。

     Connection

    connection() 得到JDBC连结

     boolean

    contains(Object object) 检查实例是否与当前Session关联。

     Criteria

    createCriteria(Class persistentClass) 为给定的实体类创建一个新的查询实例。

     Query

    createFilter(Object collection, String queryString) 根据字符串为给定的集合创建一个新的查询实例。

     Query

    createQuery(String queryString) 根据字符串创建一个新的查询实例。

     Query

    createSQLQuery(String sql, String[] returnAliases, Class[] returnClasses)根据SQL字符串创建一个新的查询实例。

     Query

    createSQLQuery(String sql, String returnAlias, Class returnClass) 根据SQL字符串创建一个新的查询实例。

     void

    delete(Object object) 从数据库删除持久实例。

     int

    delete(String query)删除根据查询语句返回的所有对象。

     int

    delete(String query, Object[] values, Type[] types) 删除根据查询语句返回的所有对象。

     int

    delete(String query, Object value, Type type) 删除根据查询语句返回的所有对象。

     Connection

    disconnect() 断开SessionJDBC连结。

     void

    evict(Object object) 从session缓存中删除当前实例。

     Collection

    filter(Object collection, String filter) 对持久集合应用过滤。

     Collection

    filter(Object collection, String filter, Object[] values, Type[] types)对持久集合应用过滤。

     Collection

    filter(Object collection, String filter, Object value, Type type)对持久集合应用过滤。

     List

    find(String query)执行查询。

     List

    find(String query, Object[] values, Type[] types)根据绑定参数执行查询。

     List

    find(String query, Object value, Type type) 根据绑定参数执行查询。

     void

    flush() 强制Session保存。

     Object

    get(Class clazz, Serializable id) 根据给定标识返回实体类持久实例。

     Object

    get(Class clazz, Serializable id, LockMode lockMode) 根据给定标识返回实体类持久实例。

     LockMode

    getCurrentLockMode(Object object)得到给定对象得当前锁定模式。

     FlushMode

    getFlushMode()得到当前保存模式。

     Serializable

    getIdentifier(Object object) 得到Session缓存中实体实例的标识。

     Query

    getNamedQuery(String queryName) 根据mapping文件中定义的查询字符串得到查询实例。

     SessionFactory

    getSessionFactory() 得到创建当前实例的SessionFactory

     boolean

    isConnected() 检查Session是否当前连接。

     boolean

    isDirty() 检查是否包含修改的数据没有同步数据库。

     boolean

    isOpen() 检查Session是否仍然打开。

     Iterator

    iterate(String query)执行一个查询,返回结果到iterator。

     Iterator

    iterate(String query, Object[] values, Type[] types) 执行一个查询,返回结果到iterator。

     Iterator

    iterate(String query, Object value, Type type) 执行一个查询,返回结果到iterator。

     Object

    load(Class theClass, Serializable id) 根据给定标识返回实体类持久实例。

     Object

    load(Class theClass, Serializable id, LockMode lockMode) 根据给定标识返回实体类持久实例。

     void

    load(Object object, Serializable id) 根据给定标识返回实体类持久实例。

     void

    lock(Object object, LockMode lockMode)得到指定锁级别

     void

    reconnect()得到新的JDBC连结。

     void

    reconnect(Connection connection)重新连结到给定的JDBC连结。

     void

    refresh(Object object)从数据库重新读取给定实例状态。

     void

    refresh(Object object, LockMode lockMode) 根据给定的锁模式从数据库重新读取给定实例状态。

     void

    replicate(Object object, ReplicationMode replicationMode)持久化所有对象。

     Serializable

    save(Object object)持久化临时实例。

     void

    save(Object object, Serializable id) 根据给定表识持久化临时实例。

     void

    saveOrUpdate(Object object)根据给定标识属性选择保存或更新数据库。

     Object

    saveOrUpdateCopy(Object object) 根据相同的标识拷贝给定对象的状态到持久对象。

     Object

    saveOrUpdateCopy(Object object, Serializable id) 根据给定的标识拷贝给定对象的状态到持久对象。

     void

    setFlushMode(FlushMode flushMode)设置保存模式。

     void

    update(Object object)根据给定临时实例标识更新持久实例。

     void

    update(Object object, Serializable id) 根据给定临时实例标识更新持久实例。

     

     

    使用举例:

    System.out.println("获取Session...");      

    Session session = HibernateSessionFactory.currentSession();

    System.out.println("开始Transaction...");

    Transaction tx = session.beginTransaction();       

    Test my_hibernate = null;

    System.out.println("Iterator查询...");

    Iterator iterator = session.iterate("from Test order by xm");

    while(iterator.hasNext())

    {

        my_hibernate = (Test)iterator.next();

        System.out.println(my_hibernate.getXm() + " "+ my_hibernate.getXb());

    }      

    System.out.println("List查询...");

    List list = session.find("from Test order by xm");     

    for(int i = 0;i < list.size();i++)

    {

        my_hibernate = (Test)list.get(i);

        System.out.println(my_hibernate.getXm() + " "+ my_hibernate.getXb());

    }      

    System.out.println("Query查询...");

    Query query = session.createQuery("from Test order by xm");

    list = query.list();

    for(int i = 0;i < list.size();i++)

    {

        my_hibernate = (Test)list.get(i);

        System.out.println(my_hibernate.getXm() + " "+ my_hibernate.getXb());

    }

    iterator = query.iterate();

    while(iterator.hasNext())

    {

        my_hibernate = (Test)iterator.next();

        System.out.println(my_hibernate.getXm() + " "+ my_hibernate.getXb());

    }      

    System.out.println("Criteria查询...");

    Criteria criteria = session.createCriteria(Test.class);    

    criteria.add(Expression.eq("xb","f"));

    list = criteria.list();    

    for(int i = 0;i < list.size();i++)

    {

        my_hibernate = (Test)list.get(i);

        System.out.println(my_hibernate.getXm() + " "+ my_hibernate.getXb());

    }

    System.out.println("更新数据...");

    my_hibernate = (Test)session.load(Test.class,"121");

    my_hibernate.setXb("f");

    System.out.println("提交Transaction...");

    tx.commit();       

    System.out.println("关闭Session...");

    HibernateSessionFactory.closeSession();

  • 相关阅读:
    C语言内存分析
    算法之快速排序
    单链表逆转
    C程序设计语言之一
    vim插件配置(一)
    makefile示例
    cocos2d基础入门
    Makefile
    Makefile
    GCC编译四阶段
  • 原文地址:https://www.cnblogs.com/tian830937/p/4435962.html
Copyright © 2011-2022 走看看