标签:
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() 断开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();
第四讲 :hibernate中的session
标签:
原文地址:http://www.cnblogs.com/tian830937/p/4435962.html