Sobes.tech
Middle

Ի՞նչ են պատրաստված հարցումները (prepared statements):

sobes.tech AI

Պատասխան AI-ից

Պատրաստված հարցումները (prepared statements) մեխանիզմ են տվյալների բազաներով աշխատելու համար, որի ժամանակ SQL հարցումը մեկ անգամ կոմպիլացվում և օպտիմալացվում է, իսկ հետո կարող է բազմիցս կատարվել տարբեր պարամետրերով:

Առավելություններ՝

  • Ավելի բարձր կատարողականություն նույն հարցման կրկնվող կանչերի դեպքում:
  • Անվտանգություն — պաշտպանություն SQL ինեկցիաներից, քանի որ պարամետրերը փոխանցվում են առանձին հարցման տեքստից:
  • Հարմարավետություն — պարամետրերը ավտոմատ կերպով տեղադրվում են, առանց արժեքների ձեռքով արտածելու:

Go-ում պատրաստված հարցումը ստեղծվում է *sql.DB կամ *sql.Tx օբյեկտի Prepare մեթոդով:

stmt, err := db.Prepare("SELECT name FROM users WHERE id = ?")
if err != nil {
    log.Fatal(err)
}
defer stmt.Close()

var name string
err = stmt.QueryRow(1).Scan(&name)
if err != nil {
    log.Fatal(err)
}
fmt.Println(name)

Այս կերպ, հարցումը մեկ անգամ կոմպիլացվում է, և հետո կարող է բազմիցս կանչվել տարբեր պարամետրերով։