方法一:session.delete()
這個方法是最常用的,一共有4個過載的方法
void delete(object obj);
int delete(string query)
int delete(string query, object value, itype type);
int delete(string query, object values, itype types);
這幾個過載方法中,第乙個方法是基於現有物件的刪除操作,其餘是使用query語句查詢獲得物件,再逐個刪除的,如果使用批量刪除時,效果不太理想
int delete(string query, object values, itype types); 的用法如下:
datetime start = new datetime(2000,1,1);
datetime end = new datetime(2001,1,1);
session.delete("from operlog operlog where operlog.logtime between ? and ?"
, new object
, new itype );
session.flush();
方法二:session. createsqlquery()
isqlquery createsqlquery(string querystring);
iquery createsqlquery(string sql, string returnalias, system.type returnclass);
iquery createsqlquery(string sql, string returnaliases, system.type returnclasses);
這個方法是直接執行sql語句的不需要session.flush,效率是最高的
isqlquery qry = session.createsqlquery("delete from operlog where logtime between :a and :b");
qry.setparameter("a", start);
qry.setparameter("b", end);
qry.executeupdate();
但使用該方法後,之前
session
緩衝區中已經載入的物件還在,需要額外處理
redis批量刪除資料
redis本身未提供批量刪除的功能,但我們可以使用下面的技巧批量刪除全部或指定格式的資料。刪除以test開頭的所有key值 redis cli h p 埠 a 密碼 keys test xargs redis cli h p 埠 a 密碼 del 如果是刪除localhost的redis資料,且未設...
PHP批量寫入資料 批量刪除資料
批量插入可以參考 sql insert into data id,ip,data values for i 0 i 100 i sql join sqls connect mysql query sql 批量刪除多條記錄,對於比較多的資訊,如果沒有批量刪除功能是非常麻煩的。可以加全選核取方塊 連線資...
NHibernate 中刪除資料的幾種方法
1.使用session.delete t t 方法 使用這個方法,需要先從資料庫中獲取實體t或者直接new t 給id賦值,然後才能呼叫 session.delete t a var session nhibernatesession.current 自己寫的乙個獲取session的方法 var t...