查詢修改
刪除寫業務**我們免不了會一直圍繞著crud轉,這是基礎,也是根本,把crud做好了也是一件不簡單的事情,讓我們扎扎實實地去做好這件事。
批量插入:
insert into test_table
(`name`,`age`)
values
( #,#)
注意:如果dao層傳入的集合引數使用了@param(value=「***list」),則語法要調整:
insert into test_table
(`name`,`age`)
values
( #,#)
批量插入更新
假設name是唯一主鍵,插入時可能會存在衝突
insert into test_table
(`name`,`age`)
values
( #,#)
on duplicate key update age=values(age)
模糊查詢
如果傳入的模糊欄位是字串,建議先進行trim()
如果資料庫有相關欄位且建立了索引,可以在資料庫層使用like進行模糊查詢,注意mybatis like用法-like concat(』%』,#,』%』)
如果有些字段資料庫中沒有,則可以通過**來實現,使用排除法,如果需求場景是這樣:前端傳入的乙個模糊字段匹配多個後端字段,偽**如下:
listresult = new arraylist();
if(fuzzyitem != null)
// 匹配欄位item2
if(item2.contains(fuzzyitem))
// 沒有命中,則繼續下一輪遍歷
continue;
}
分頁查詢
使用github分頁器,pagehelper.startpage(pagenum, pagesize);
public static listreadbypage(listsrclist, int pagenum, int pagesize)
int fromindex = pagenum > 0 ? (pagenum - 1) * pagesize : 0;
int toindex = pagenum * pagesize;
int size = srclist.size();
if (size <= fromindex) else if (size > fromindex && size < toindex) else
}
public static listreadbypage(listparams, int limit, function, list> readfunction)
if (params.size() <= limit) else
int total = params.size();
listleftparams = new arraylist<>();
// for迴圈去填充引數,當limit較小,總的size較大時,會比較耗效能
for (int i = limit; i < total; i++)
listtmpresult = readbypage(leftparams, limit, readfunction);
if (totalresult != null && tmpresult != null)
return totalresult;
}}
多欄位排序
使用資料order by實現多欄位排序:oder by filed1 desc, filed2 desc
使用流排序:stream().sorted(comparator.comparing(function1).thencomparing(function2).thencomparing(function3))
使用集合工具排序:
collections.sort(srclist,comparator.comparing().thencomparing().thencomparing())
批量修改
使用mybatis-foreach語法組裝sql,注意這種方式需要在mysql連線配置中加:&allowmultiqueries=true屬性
update test_table
clazz_id = #,
teacher_id = #,
where id = #
「allowmultiqueries=true」的作用:多欄位修改1.可以在sql語句後攜帶分號,實現多語句執行。
2.可以執行批處理,同時發出多個sql語句
修改單條記錄多欄位注意不能使用and連線符合,and符號在這裡是邏輯與操作
業務相關的資料盡量使用邏輯刪除
刪除操作盡量要做許可權驗證,表設計中要設計operator_id、create_date、update_date,記錄操作者、建立時間、更新時間
常用 crud 的思考和設計
簡化單錶的crud基本 假設現在有 字段型別 idint name varchar 建立 controller 類 建立 service 類 建立 一些驗證方法 組合起來 restcontroller demo public class projectdemocontroller else crud...
程式設計CRUD
1 增加 id 判斷是否為空 判斷是否為正整數數 0,浮點數,字串,超過負上限和正上限等等 string 判斷是否為空 去空格trim 不能等於 null,false,0,0 0 1,1 等等 判斷長度判斷可如最小限3,最大限為11,即3 x 11 判斷是否含有特殊符號,字元 判斷名稱是否重複 2 ...
簡單操作crud
資料的操作 dml 建立資料 插入資料 insert into tbl name 字段列表 values 值列表 insert into exam student name,stu no values zhangsan php001 如果需要在插入時,為所有的字段設定值,那麼可以省略字段列表。要求是...