方法概要: |
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 () 断开Session与JDBC连结。 |
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();