Heim Backend-Entwicklung Golang Welche Datenbank ist mit der Go-Sprache ausgestattet?

Welche Datenbank ist mit der Go-Sprache ausgestattet?

Dec 15, 2022 pm 06:41 PM
golang 数据库 go语言

Welche Datenbank ist mit der Go-Sprache ausgestattet?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

golang unterstützt eine Vielzahl von Datenbanken

1. MySQL

MySQL ist ein relationales Datenbankverwaltungssystem, das Daten in verschiedenen Tabellen speichern kann und dadurch die Geschwindigkeit der Datenbank erhöht. und Flexibilität, zeichnet sich durch geringe Größe, hohe Geschwindigkeit und niedrige Gesamtbetriebskosten aus.

2. Oracle

Oracle ist ein relationales Datenbankverwaltungssystem, das eine führende Position im Datenbankbereich einnimmt und sich durch gute Portabilität, einfache Bedienung und leistungsstarke Funktionen auszeichnet , mittlere, kleine und Mikrocomputerumgebung ist eine Datenbank mit hoher Effizienz, guter Zuverlässigkeit und hohem Durchsatz.

3. SQLite

SQLite ist eine leichtgewichtige Datenbank, die dem relationalen Datenbankverwaltungssystem ACID folgt. Sie ist für den eingebetteten Einsatz konzipiert und kann mit C#, PHP, Java usw. verwendet werden in Kombination mit Programmiersprachen.

4. MongoDB ist eine Datenbank, die auf verteilter Dateispeicherung basiert. Ihr Zweck besteht darin, skalierbare und leistungsstarke Datenspeicherlösungen für WEB-Anwendungen bereitzustellen. Die von MongoDB unterstützte Datenstruktur ist sehr locker und unterstützt mehrere Abfragesprachen und Indizierung.

5. PostgreSQL

PostgreSQL ist ein leistungsstarkes objektrelationales Datenbankverwaltungssystem mit Open-Source-Code. Es verfügt über Funktionen wie komplexe Abfragen, Fremdschlüssel, Trigger, Ansichten, Transaktionsintegrität und PostgreSQL-Kontrolle Die Funktion führt das Anweisungsprogramm auf der Seite des Datenbankservers aus und der Benutzer kann die Indexmethode anpassen.

6. SQL Sever

SQL Sever ist ein relationales Datenbankverwaltungssystem. Es bietet die Vorteile einer einfachen Verwendung, einer guten Skalierbarkeit und eines hohen Integrationsgrads der zugehörigen Software können Sie hochverfügbare und leistungsstarke Datenanwendungen für Ihr Unternehmen erstellen und verwalten.

golang betreibt die MySQL-DatenbankIm Folgenden wird hauptsächlich die Verwendung von MySQL in der Go-Sprache unter den Aspekten Hinzufügen, Löschen, Ändern und Dinge vorgestellt. 1. Stellen Sie eine Verbindung zur Datenbank her.

Verwenden Sie SQL. Open()-Funktion zum Öffnen der Datenbankverbindung. Das Format der Datenbankverbindungszeichenfolge (dsn) lautet wie folgt:

admin:123456@tcp(10.2.1.5)/irisapp
Nach dem Login kopieren
func (f *mysql_db) mysql_open() {
    db, err := sql.Open("mysql", dbusername+":"+dbpassword+"@tcp("+dbhostsip+")/"+dbname)
    if err != nil {
        fmt.Println("链接失败")
    }
    fmt.Println("链接成功")
    f.db = db
}
Nach dem Login kopieren

4. Update

func (f *mysql_db) mysql_insert() { //insert  添加数据
    fmt.Println("开始插入")
    stmt, err := f.db.Prepare("INSERT INTO depart(departName,memo) VALUES(?,?)")
    //defer stmt.Close()
    if err != nil {
        fmt.Println("插入失败")
        return
    }
    stmt.Exec("dd", "adadcccda")
    fmt.Println("插入成功")
}
Nach dem Login kopieren

5. Löschen

func (f *mysql_db) mysql_select(sql_data string) {   //select 查询数据
    fmt.Println("sql:", sql_data)
    rows, err := f.db.Query(sql_data)
    if err != nil {
        fmt.Println("查询失败")
    }
    for rows.Next() {
        var departID int
        var departName string
        var memo string
        err = rows.Scan(&departID, &departName, &memo)
        if err != nil {
            panic(err)
        }
        fmt.Println("departName:", departName)
    }
}
Nach dem Login kopieren

6. Dinge

func (f *mysql_db) mysql_update() { //update  修改数据
    stmt, err := f.db.Prepare("update depart set departName=?,memo =? where departId=?")
    //defer stmt.Close()
    if err != nil {
        //错误处理
    }
    result,_ := stmt.Exec("aa","asdfadsadsfa",1)
    if result == nil {
        fmt.Println("修改失败")
    }
    affect_count,_ := result.RowsAffected()    //返回影响的条数,注意有两个返回值
    fmt.Println("%v",affect_count)
}
Nach dem Login kopieren

Aufruf

func (f *mysql_db) mysql_delete() { //delete  删除数据
    stmt, err := f.db.Prepare("delete from depart where departId=?")
    //defer stmt.Close()
    if err != nil {
        //错误处理
    }
    stmt.Exec(2)     //不返回任何结果
    fmt.Println("删除成功")
}
Nach dem Login kopieren
Die Ausgabe nach dem Start ist wie folgt:
func (f *mysql_db) mysql_tran(){
    //事务
    tx,err := f.db.Begin()        //声明一个事务的开始
    if err != nil {
        fmt.Println(err)
        return
    }
    insert_sql := "insert into depart (departName,memo) VALUES(?,?)"
    insert_stmt,insert_err := tx.Prepare(insert_sql)
    if insert_err != nil {
        fmt.Println(insert_err)
        return
    }
    insert_res,insert_err := insert_stmt.Exec("ff","ff")
    last_insert_id,_ := insert_res.LastInsertId()
    fmt.Println(last_insert_id)
    // defer tx.Rollback()            //回滚之前上面的last_login_id是有的,但在回滚后该操作没有被提交,被回滚了,所以上面打印的Last_login_id的这条数据是不存在与数据库表中的
    tx.Commit()                        //这里提交了上面的操作,所以上面的执行的sql 会在数据库中产生一条数据
}
Nach dem Login kopieren

Vollständiger Code

func main() {
    db := &mysql_db{}
    db.mysql_open()
    db.mysql_insert()
    db.mysql_update()
    db.mysql_delete()
    db.mysql_tran()
    db.mysql_select("select departID,departName,memo from depart")
    db.mysql_close() //关闭
}
Nach dem Login kopieren
Zusammenfassung

1. Unterstützt Vorbereitungsausdrücke, die zur Optimierung von SQL-Abfragen zur Verbesserung der Leistung verwendet werden können, wodurch das Risiko einer SQL-Injection verringert wird. db.Prepare() und tx.Prepare bieten beide Unterstützung für vorbereitete Ausdrücke.

2. LastInsertId() Rufen Sie die ID des ersten eingefügten Elements ab

3. Rufen Sie die Anzahl der betroffenen/eingefügten Elemente ab

4. Hier ist eine kurze Einführung in die grundlegende Verwendung von MySQL in der Go-Sprachentwicklung. Tatsächlich werden im eigentlichen Entwicklungsprozess immer noch hauptsächlich ORM-bezogene Frameworks von Drittanbietern verwendet, die zugrunde liegenden Prinzipien müssen jedoch noch erlernt werden.

Für weitere Go-Sprachkenntnisse beachten Sie bitte die Spalte „Go-Sprach-Tutorial“ auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonWelche Datenbank ist mit der Go-Sprache ausgestattet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Apr 02, 2025 pm 02:06 PM

In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Apr 02, 2025 pm 04:12 PM

Welche Bibliotheken in GO werden von großen Unternehmen oder bekannten Open-Source-Projekten entwickelt? Bei der Programmierung in Go begegnen Entwickler häufig auf einige häufige Bedürfnisse, ...

Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Apr 02, 2025 pm 12:57 PM

Zwei Möglichkeiten, Strukturen in der GO -Sprache zu definieren: Der Unterschied zwischen VAR- und Typ -Schlüsselwörtern. Bei der Definition von Strukturen sieht die Sprache oft zwei verschiedene Schreibweisen: Erstens ...

Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Apr 02, 2025 pm 04:54 PM

Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...

Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Apr 02, 2025 pm 02:03 PM

Der Unterschied zwischen Stringdruck in GO -Sprache: Der Unterschied in der Wirkung der Verwendung von Println und String () ist in Go ...

Wie kann sichergestellt werden, dass die Parallelität beim Schreiben von Multi-Process-Protokollen sicher und effizient ist? Wie kann sichergestellt werden, dass die Parallelität beim Schreiben von Multi-Process-Protokollen sicher und effizient ist? Apr 02, 2025 pm 03:51 PM

Effizient behandeln Probleme mit der Parallelitätssicherheit beim Schreiben von Multi-Process-Protokoll. Mehrere Prozesse schreiben gleichzeitig die gleiche Protokolldatei. Wie kann die Parallelität sicher und effizient sichergestellt werden? Das ist ein ...

Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Apr 02, 2025 pm 05:09 PM

Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Bei der Verwendung von Goland für GO -Sprachentwicklung begegnen viele Entwickler benutzerdefinierte Struktur -Tags ...

See all articles