xorm初步入門學習

2021-09-29 02:02:14 字數 3817 閱讀 8075

首先需要匯入包:

之後為了跑案例,建立了資料庫**

create

table

`user`(

`id`

int(11)

notnull

auto_increment

,`username`

varchar(32

)not

null

comment

'使用者名稱'

,`birthday`

date

default

null

comment

'生日'

,`***`

char(1

)default

null

comment

'性別'

,`address`

varchar

(256

)default

null

comment

'位址'

,primary

key(

`id`

))

之後首先明確一點xorm的逆向工程類似於mybatis,都需要依賴於特定模板,而在xorm原始碼中提供了預設模板,這裡我go get的時候發現不存在,所以從git中clone後拷貝到了原始碼當中,具體什麼原因還是需要後面**

建立了之後,就可以執行對應逆向命令

xorm reverse mysql root:密碼@/xorm?charset=utf8 模板位置
就可以生成對應的models資料夾

//增

user :=

new(user)

user.username=

"tyming"

affected,err := engine.

insert

(user)

fmt.

println

(affected)

//刪

user :=

new(user)

user.username=

"tyming"

affected_delete,err := engine.

delete

(user)

fmt.

println

(affected_delete)

//改

user :=

new(user)

user.username=

"tyming"

affected_update,err := engine.id(

1).update

(user)

fmt.

println

(affected_update)

//查

user :=

new(user)

//result,err := engine.id(1).get(user)

result,err := engine.

where

("id=?",1

).get(user)

fmt.

println

(result)

err := engine.

sync2

(new

(user)

) 以struct同步資料庫

affected, err := engine.

exec

("update user set age = ? where name = ?"

, age, name) 執行乙個sql語句

affected, err := engine.

insert

(&user1,

&user2) 插入一條或者多條記錄

has, err := engine.

get(

&user) 查詢單條記錄

has, err := testengine.

exist

(new

(recordexist)

) 檢測記錄是否存在

err := engine.

table

("user").

select

("user.*, detail.*"

)join

("inner"

,"detail"

,"detail.user_id = user.id").

where

("user.name = ?"

, name)

.limit(10

,0).

find

(&users)

查詢多條記錄

affected, err := engine.id(

1).update

(&user)

update 更新資料,除非使用cols,allcols函式指明,預設只更新非空和非0的字段

affected, err := engine.

where

(...).

delete

(&user)

刪除記錄,需要注意,刪除必須至少有乙個條件,否則會報錯。要清空資料庫可以用emptytable

counts, err := engine.

count

(&user)

獲取記錄條數

agesfloat64, err := engine.

sum(

&user,

"age")求和

err := engine.

where

(builder.

notin

("a",1

,2).

and(builder.in(

"b",

"c",

"d",

"e")))

.find

(&users)

編輯條件

session := engine.

newsession()

defer session.

close()

// add begin() before any action

if err := session.

begin()

; err !=

nil事務開始

user1 := userinfoif_

, err := session.

insert

(&user1)

; err !=

niluser2 := userinfoif_

, err := session.

where

("id = ?",2

).update

(&user2)

; err !=

nilif

_, err := session.

exec

("delete from userinfo where username = ?"

, user2.username)

; err !=

nil// add commit() after all actions

return session.

commit()

事務結束

彙編學習1 初步入門

寫慣了高階語言,很容易忘了計算機執行指令的本質。如果不深入了解計算機的執行過程,無法想象乙個最簡單的c檔案被執行起來中間涉及到多少繁瑣的工作。為了更深入的了解相關的知識 linker,loader 先把最基礎的彙編複習一下 以前彙編學的很不好 彙編可以很直接的操作機器,不需要其他庫檔案,通過這種裸指...

Linux初步入門

對於linux的初步入門以前都要對計算機概論有一些了解。1.計算機 接收使用者輸入指令與資料,經過 處理器的資料與邏輯單元運算處理後,以產生或儲存成有用的資訊。2.計算機五大硬體 輸入單元 輸出單元 cpu內部的控制單元 算術邏輯單元與記憶體五大部分。3.cpu種類 精簡指令集 risc 與複雜指令...

python初步入門

help obj 檢視幫助 import 檔名 匯入乙個檔案 from 檔名 import 方法名 匯入檔案中的乙個方法 dir var 檢視變數屬性和方法 none 空物件 邏輯運算 and or not elif elseif 沒有switch語句 沒有三目運算子 for迴圈 for 變數 in...