如下的事例只是為了說明意圖,工作中業務不會如此簡單。
一、資料庫的字段
student_idstudent_name
student_age
二、實體類
//主鍵 uuid
@id @column(name = "student_id", length = 100, nullable = false
) @size(max = 100, message = "")
@generatedvalue(generator = "system-uuid")
@genericgenerator(name = "system-uuid", strategy = "uuid")
private
string studentid;
//學生姓名
@column(name = "student_name", length = 19)
@size(max = 19, message = "")
private
string studentname;
//年齡
@column(name = "student_age" , length = 3)
@size(max = 3, message = "")
private int studentage;
三、因為某種特殊的原因,我必須使用hibernate結合原生sql進行資料的查詢操作。
四、封裝結果的vo類
privatestring studentid;
private
string studentname;
private string studentage;
五、利用hibernate進行原生sql查詢時,必須保證查詢出來的屬性名稱與封裝結果的vo類中成員的屬性名稱一致。
六、原生sql的書寫
請注意此處 \" 的用法select a.student_id as \"studentid\" a.student_name as \"studentname\" from student a where a.student_age = '18'
七、前台的頁面需要按age欄位排序,且這個字段必須由前端傳遞
後台看到的sql如下
select*from
(select a.student_id as "studentid", a.student_name as "studentname"from student a where a.student_age = '18'order by
studentage asc,
)
上面的sql是會報錯的,ora-00904: "studentage": 識別符號無效
這時,你需要告訴你們的前端傳遞 studentage時,應該加一對二""
postman軟體的body應該這樣寫
"orderby":["+\"studentage\""]}
django 鏈結多個資料庫 並使用原生sql
settings檔案如下 databases db1 查詢django的文件 from django.db import connection def my custom sql self with connection.cursor as cursor cursor.execute update ...
django 鏈結多個資料庫 並使用原生sql
通常在專案中我們需要連線多個資料庫,用來執行原生的sql 配置檔案settings.py databases db1 查詢django的文件 from django.db import connection def my custom sql self with connection.cursor ...
mysql profiling的使用與sql分析
mysql在5.0.3版本之後新增了profiling來進行效能分析 首先進入資料庫 show profiles mysql預設是關閉的,也就是off 需要設定成1開啟,也就是on,注意設定以後退出視窗之後會還原,要永久生效貌似需要重啟mysql才行 檢視是否開啟 開啟 set profiling ...