Créez une fonction pour obtenir le contenu de la base de données dans Go

Je vais écrire sur une fonction qui prend tout le contenu souhaité de la base de données. J'ai déjà quelque chose dans la base de données

Faire de l'interface {} variables les arguments des fonctions de type fixe Fonctionnement simple de "Mysql" avec "Golang" x "Gorm" [Go + gin + gorm] Essayez d'ajouter une fonction de connexion à l'application Web De la connexion Mysql dans Aller à l'allocation des données à la structure API de configuration Oreore réalisée avec Gin et GORM


install


import (
    _ "github.com/go-sql-driver/mysql"//Cela doit être ajouté par moi-même
	"github.com/jinzhu/gorm"
)
//Quand non
//go get github.com/jinzhu/gorm
//go get github.com/go-sql-driver/mysql

Tout d'abord, connectez-vous à la base de données

main.go


func openGormDB() *gorm.DB { // localhost
	DBMS := "mysql"
	USER := "user"//nom d'utilisateur mysql
	PASS := "password"//mot de passe
	PROTOCOL := "tcp(localhost:3306)"
	DBNAME := "sample"//Nom de la base de données

	CONNECT := USER + ":" + PASS + "@" + PROTOCOL + "/" + DBNAME + "?charset=utf8&parseTime=True&loc=Local"
	db, err := gorm.Open(DBMS, CONNECT)
	if err != nil {
		panic(err)
	}
	return db
}

Voici le contenu de la base de données

main.go


type ShiromiyaChannelInfos struct {
	//ID              uint64
	ChannelID       string
	ChannelName     string
	ViewCount       uint `gorm:"type:int"`
	SubscriberCount uint `gorm:"type:int"`
	VideoCount      uint `gorm:"type:int"`
	CreatedAt       time.Time
}

Fonction qui prend le contenu de la base de données Écrivez pour chaque table

Fonction qui prend le contenu de la base de données


//Je dois écrire une fonction comme celle-ci plusieurs fois
func GetDBShiro() []ShiromiyaChannelInfos/*<=①*/ {
	db := openGormDB()
	var shiroInfo []ShiromiyaChannelInfos/*<=①*/
	db.Find(&shiroInfo)/*<=①*/
	db.Close()
	return shiroInfo/*<=①*/

func GetDBHashi() []HashibaChannelInfos/*<=①*/ {
	db := openGormDB()
	var hashiInfo []HashibaChannelInfos/*<=①*/
	db.Find(&hashiInfo)/*<=①*/
	defer db.Close()
	return hashiInfo/*<=①*/
}

Une fonction qui se connecte à une base de données et récupère tout le contenu de la table cible Seul l'endroit où c'était différent de ① ci-dessus Le reste est presque le même

Je dois écrire plusieurs fois quelque chose comme ce qui précède (fonction qui prend le contenu de la base de données), alors je l'ai résumé

main.go


//Ceci est le produit fini
func AllGetDBChannelInfo(chInfo string) (interface{}, error) {
	db := openGormDB()
	defer db.Close()

	switch chInfo {
	case "ShiromiyaChannelInfos":
		var channelInfo []entity.ShiromiyaChannelInfos
		db.Find(&channelInfo)
		return channelInfo, nil
	case "HashibaChannelInfos":
		var channelInfo []entity.HashibaChannelInfos
		db.Find(&channelInfo)
		return channelInfo, nil
	case "ChannelInfos":
		var videoInfo []entity.VideoInfos
		db.Find(&videoInfo)
		return videoInfo, nil
	default:
		return nil, errors.New("Ce db_sans nom")
	}
}

problème: AllGetDB doit remplacer AllGetDB ultérieurement lors de l'ajout d'une fonction

GetDB a de nombreuses fonctions avec de nombreux doublons. Mais vous n'avez pas besoin d'écraser la fonction, ajoutez-la simplement

Recommended Posts

Créez une fonction pour obtenir le contenu de la base de données dans Go
[Go] Créez une commande CLI pour changer l'extension de l'image
Comment obtenir les coordonnées de sommet d'une entité dans ArcPy
Créez une commande pour obtenir le journal de travail
[Linux] Une commande pour obtenir une liste des commandes exécutées dans le passé
Comment créer un wrapper qui préserve la signature de la fonction à envelopper
Créer une fonction pour visualiser / évaluer le résultat du clustering
Créer une fonction en Python
Comment obtenir le nombre de chiffres en Python
Essayez d'obtenir le contenu de Word avec Golang
Créez un filtre pour obtenir un jeton d'accès avec l'API Graph (Flask)
Comment obtenir une liste de fichiers dans le même répertoire avec python
Diverses méthodes pour créer numériquement la fonction inverse d'une certaine fonction Partie 1 Régression polynomiale
Essayez d'obtenir la liste des fonctions du paquet Python> os
Obtenez le nombre d'éléments spécifiques dans la liste python
J'ai fait une fonction pour vérifier le modèle de DCGAN
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment obtenir une liste d'exceptions intégrées pour python
Créons une fonction pour maintenir Button dans Tkinter
Comment connecter le contenu de la liste dans une chaîne de caractères
Obtenir la valeur d'une clé spécifique jusqu'à l'index spécifié de la liste de dictionnaires en Python
[OCI] Script Python pour obtenir l'adresse IP d'une instance de calcul dans Cloud Shell
Une histoire à laquelle j'étais accro en spécifiant nil comme argument de fonction dans Go
Je veux obtenir le nom de la fonction / méthode en cours d'exécution
J'ai essayé d'obtenir une base de données sur les courses de chevaux en utilisant Pandas
Comment déterminer l'existence d'un élément sélénium en Python
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
Comment obtenir toutes les valeurs possibles dans une expression régulière
Comment vérifier la taille de la mémoire d'une variable en Python
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
[TensorFlow 2] Comment vérifier le contenu de Tensor en mode graphique
Une fonction qui mesure le temps de traitement d'une méthode en python
[Python3] Définition d'un décorateur qui mesure le temps d'exécution d'une fonction
Comment créer une grande quantité de données de test dans MySQL? ??
[Python] Une fonction simple pour trouver les coordonnées du centre d'un cercle
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
Comment obtenir stacktrace en python
Obtenez le nom de fichier du répertoire (glob)
Python VBA pour obtenir une capture de la page WEB entière avec Selenium
Cliquez sur les liens Selenium afin d'obtenir les éléments des pages individuelles
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Comment comparer si le contenu des objets dans scipy.sparse.csr_matrix est le même
Je souhaite trier une liste dans l'ordre des autres listes
Ajout d'une fonction pour enregistrer les décalages souhaités dans la table des décalages Django
Obtenez une instance datetime à tout moment de la journée en Python
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
[Python] [Word] [python-docx] Essayez de créer un modèle de phrase de mot en Python en utilisant python-docx
J'ai essayé d'afficher la valeur d'altitude du DTM dans un graphique
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
J'ai créé une fonction pour voir le mouvement d'un tableau à deux dimensions (Python)
L'histoire de la recherche d'un magasin BOT (AI LINE BOT) pour Go To EAT dans la préfecture de Chiba (1)
Comment copier et coller le contenu d'une feuille au format JSON avec une feuille de calcul Google (en utilisant Google Colab)