


Einführung in Golang Gorm für den Betrieb von MySQL und die grundlegende Verwendung von Gorm
Die folgende Tutorial-Kolumne von golang wird Ihnen die grundlegende Verwendung von Golang Gorm zur Bedienung von MySQL und Gorm vorstellen. Ich hoffe, dass es Freunden, die es benötigen, hilfreich sein wird!
Die Bedienung von MySQL mit dem offiziellen Golang ist etwas umständlich, daher habe ich Gorm verwendet. Hier ist eine kurze Einführung in die Verwendung von Gorm Information
import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" )
Da grom die ORM-Zuordnung verwendet, müssen Sie in go eine Struktur definieren, die dem Tabellennamen entspricht sucht nach dem Strukturnamen, der dem Tabellennamen in der Datenbank entspricht. Standardmäßig werden die Großbuchstaben in Ihrer Struktur in Kleinbuchstaben umgewandelt und „s“ hinzugefügt, sodass Sie db.SingularTable(true) hinzufügen können, um grom Escape dem Strukturnamen, ohne s hinzuzufügen. Ich habe die Tabelle im Voraus in der Datenbank erstellt und sie dann mit grom abgefragt. Sie können die Tabelle auch mit gorm erstellen. Es ist meiner Meinung nach besser, die Tabelle direkt in der Datenbank zu erstellen . Grom wird nur zum Abfragen und Aktualisieren von Daten verwendet.
go get -u github.com/jinzhu/gorm
Angenommen, die Tabelle in der Datenbank wurde erstellt, lautet die folgende Anweisung zur Tabellenerstellung in der Datenbank:
func DbConn(MyUser, Password, Host, Db string, Port int) *gorm.DB { connArgs := fmt.Sprintf("%s:%s@(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local", MyUser,Password, Host, Port, Db ) db, err := gorm.Open("mysql", connArgs) if err != nil { log.Fatal(err) } db.SingularTable(true) return db }
Definieren Sie das Modell, dh die Struktur. Bei der Angabe der Struktur können wir nur die spezifischen Felder definieren, die wir benötigen zum Abrufen aus der Datenbank:
gorm ersetzt die Großbuchstaben von stuct (außer dem ersten Buchstaben) durch „_“, wenn es den Tabellennamen maskiert, sodass das folgende „XzAutoServerConf“ in den Tabellennamen entsprechend „xz_auto_server“ maskiert wird conf“ in der Datenbank, entsprechend Die Suche nach Feldnamen basiert zunächst auf dem Namen im Tag. Wenn kein Tag definiert ist, basiert die Suche auf den durch die Struktur definierten Feldern. Bei der Suche werden die Großbuchstaben verwendet im Strukturfeld wird mit Escapezeichen versehen, zum Beispiel wird nach „GroupZone“ in der Tabelle gesuchtCREATE TABLE `xz_auto_server_conf` ( `id` int(11) NOT NULL AUTO_INCREMENT, `group_zone` varchar(32) NOT NULL COMMENT '大区例如:wanba,changan,aiweiyou,360', `server_id` int(11) DEFAULT '0' COMMENT '区服id', `server_name` varchar(255) NOT NULL COMMENT '区服名称', `open_time` varchar(64) DEFAULT NULL COMMENT '开服时间', `service` varchar(30) DEFAULT NULL COMMENT '环境,test测试服,formal混服,wb玩吧', `username` varchar(100) DEFAULT NULL COMMENT 'data管理员名称', `submit_date` datetime DEFAULT NULL COMMENT '记录提交时间', `status` tinyint(2) DEFAULT '0' COMMENT '状态,0未处理,1已处理,默认为0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
//定义struct type XzAutoServerConf struct { GroupZone string `gorm:"column:group_zone"` ServerId int OpenTime string ServerName string Status int }
Weitere Grom-Operationen finden Sie unter: https://jasperxu.github.io/ gorm-zh/
Werfen wir einen Blick auf die Verwendung von Golang GORM
gorm
gorm ist eine ORM-Bibliothek (Object-Relational Mapping), die den Datenbankzugriff in der Go-Sprache implementiert. Mit dieser Bibliothek können wir objektorientierte Methoden verwenden, um CRUD (Hinzufügen, Löschen, Ändern, Abfragen) für die Daten in der Datenbank bequemer durchzuführen. Grundlegende Verwendung
Abhängigkeiten herunterladen
//定义数据库连接 type ConnInfo struct { MyUser string Password string Host string Port int Db string } func main () { cn := ConnInfo{ "root", 123456", "127.0.0.1", 3306, "xd_data", } db := DbConn(cn.MyUser,cn.Password,cn.Host,cn.Db,cn.Port) defer db.Close() // 关闭数据库链接,defer会在函数结束时关闭数据库连接 var rows []api.XzAutoServerConf //select db.Where("status=?", 0).Select([]string{"group_zone", "server_id", "open_time", "server_name"}).Find(&rows) //update err := db.Model(&rows).Where("server_id=?", 80).Update("status", 1).Error if err !=nil { fmt.Println(err) } fmt.Println(rows) }Die erste ist die Kernbibliothek.
Das zweite ist das MySQL-Treiberpaket.
Mit Datenbank verbindengo get github.com/jinzhu/gorm go get github.com/go-sql-driver/mysql
Daten hinzufügen
packae main import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" "fmt" ) func main() { db, err := gorm.Open("mysql", "root:root@/test?charset=utf8&parseTime=True&loc=Local") if err != nil { fmt.Println(err) return }else { fmt.Println("connection succedssed") } defer db.Close()
Daten löschen
type User struct { ID int `gorm:"primary_key"` Name string `gorm:"not_null"` } func add() { user := &User{Name:"zhangsan"} db.Create(user) }
Daten aktualisieren
user := &User{ID:1} db.delete(user)
Daten abfragen
user := &User{ID:1} db.Model(user).update("Name","lisi")
Andere
Bestimmen Sie, ob eine Struktur vorhanden ist in der Datenbank Die dem Körper entsprechende Tabelle: // query all
var users []User
db.Find(&users)
fmt.Println(users)
// query one
user := new (User)
db.First(user,1)
fmt.Println(user)
Das obige ist der detaillierte Inhalt vonEinführung in Golang Gorm für den Betrieb von MySQL und die grundlegende Verwendung von Gorm. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!db.HasTable(User{})
Das Obige ist die grundlegende Verwendung von Gorm.

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Sie können das Trennzeichen mit dem Schlüsselwort des Separators in der Funktion Group_Concat () anpassen. 1. Verwenden Sie einen Trennzeichen, um einen benutzerdefinierten Trennzeichen wie Trennzeichen anzugeben. 'Der Trennzeichen kann in ein Semikolon und plus Raum geändert werden. 2. Häufige Beispiele sind die Verwendung des Rohrzeichens '|', Space '', Line Break-Zeichen '\ n' oder benutzerdefinierte Zeichenfolge '->' als Trennzeichen; 3.. Beachten Sie, dass das Trennzeichen ein Zeichenfolge oder ein Ausdruck von String sein muss und die Ergebnislänge durch die Variable gruppe_concat_max_len begrenzt wird, die durch setSessionGroup_concat_max_len = 10000 eingestellt werden kann; 4. Separator ist optional

Die Tabelle kann manuell mit Locktables gesperrt werden. Das Leseschloss ermöglicht es mehr, mehrere Sitzungen zu lesen, aber nicht geschrieben werden kann. Die Schreibschloss enthält exklusive Lesen- und Schreibberechtigungen für die aktuelle Sitzung und andere Sitzungen können nicht lesen und schreiben. 2. Das Schloss ist nur für die aktuelle Verbindung. Die Ausführung von StartTransaction und anderen Befehlen wird das Schloss implizit freigeben. Nach dem Sperren kann es nur auf den verschlossenen Tisch zugreifen. 3. Verwenden Sie es nur in bestimmten Szenarien wie MyISAM -Tabellenwartung und Datensicherung. InnoDB sollte der Verwendung von Transaktions- und Zeilenebenen wie Select ... Forupdate Priorität geben, um Leistungsprobleme zu vermeiden. V.

Verwenden Sie MySQL, um JSON-Daten zu verarbeiten, um semi-strukturierte Daten in relationalen Datenbanken direkt zu speichern, abzufragen und zu betreiben. Seit Version 5.7 werden JSON -Typen unterstützt. Spalten werden über JSON -Datentypen definiert und legale JSON -Werte werden eingefügt. MySQL überprüft automatisch die Syntax. Daten können mit json_extract () oder -> (zurückgegebene Zeichenfolgen zurückgegeben) und ->> (zurückgegebene Werte zurück) wie Profil ->> "$ .City" extrahiert werden, um Stadtnamen zu erhalten. Unterstützende Filterung von JSON -Werten durch Klauseln, und es wird empfohlen, generierte Spalten und Indizes zu verwenden, um die Leistung zu verbessern, wie z. B. AddCityVarchar (50) Gattungen

Um Daten aus der MySQL -Tabelle auszuwählen, sollten Sie die SELECT -Anweisung verwenden, 1. Verwenden Sie SelectColumn1, Spalte2FromTable_Name, um die angegebene Spalte zu erhalten, oder verwenden Sie SELECT*, um alle Spalten zu erhalten. 2. Verwenden Sie, wo Klausel zum Filtern von Zeilen wie SelectName, Altersfromusterwuchs> 25; 3.. Verwenden Sie OrderBy, um die Ergebnisse zu sortieren, wie z. B. OrderByagedesc, was absteigender ordentlicher Alter darstellt. V. 5. Verwenden und, oder Klammern, um zu kombinieren, um zu kombinieren

Ifnull () inmysqlreturnStheFirStexpressionifitisnotnull, andere WisereturnStheSecondexpression, MakingIdeAlforreplaccaceNullvalues withdefaults; Forexample, ifnull (Middle_Name, 'n/a') disponculations-/a'dhensclysclyscelclyculations- und A'dhenmiddle_name_name_name_name_name_name_name_name_name_name_name_name_name_name_name_name_name_name, ifnull (diskont/a'dhensname_name_name_name_name_nAnname, idnull, 0)

ThelikeoperatorinMysqlisusedToSearchForpatternSintentextDatAusingwildcards; 1. Verwenden Sie%tomatchAnysequenceFcharacctersandtomatchasingle Charakter; 2. Feurample, 'John%' findsnamessTartingwithjohn, '%Son'findsnamesendingwithson,'%ar%'findsnamescontainingar, \ _ \ _ \ _ \ _ \ _ \ _ \ _

UseclarecontinueordeclareexithhandlertospecifyErrorhandlingbeaVior, WhetecontinueAllowsexecutionToproceprosederfterTheerror, AndecontinuexexexexecutionThecurrentBlock; 2.HandleErSusingsqlstatevalues (E.g

Um die Größe der MySQL -Tabelle zu überprüfen, können Sie sie erhalten, indem Sie Information_Schema.tables abfragen. Die spezifische Methode besteht darin, eine Auswahlanweisung zu verwenden, um die Felder Data_Length und Index_length zu kombinieren und in MB -Einheiten umzuwandeln. Sie können die Daten und Indexgrößen für eine einzelne Tabelle, alle Tabellen oder separat anzeigen. Diese Methode ist für die meisten Fälle geeignet, die Werte sind jedoch ungefähr. Es kann Unterschiede für InnoDB -Tabellen geben. Am häufigsten und standardmäßig ist es, die Tabellentabelle in der Datenbank Information_Schema abzufragen, um die Ergebnisse zu erhalten.
