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();