Maison  >  Article  >  base de données  >  Comment développer un système de messagerie simple en utilisant le langage MySQL et Go

Comment développer un système de messagerie simple en utilisant le langage MySQL et Go

王林
王林original
2023-09-20 11:58:561132parcourir

Comment développer un système de messagerie simple en utilisant le langage MySQL et Go

Comment utiliser le langage MySQL et Go pour développer un système de messagerie simple

1. Introduction
Le système de messagerie est l'une des fonctions courantes des applications Internet. Il peut réaliser la communication entre les utilisateurs sur des sites Web ou des applications. Cet article expliquera comment développer un système de messagerie simple à l'aide du langage MySQL et Go, et fournira des exemples de code spécifiques.

2. Préparation
Avant le développement, vous devez préparer certains outils et environnements :

  1. Installez l'environnement du langage Go et configurez GOPATH ;
  2. Installez la base de données MySQL et créez une base de données nommée "message_board" ;
  3. Installez go ; -sql-driver/mysql pour connecter et faire fonctionner la base de données MySQL.

3. Conception de la base de données
La structure des données du système de messagerie est relativement simple, impliquant une seule table :

  1. Créez une table nommée "message", comprenant les champs suivants : id (clé primaire, auto-incrémentation), name (message) Nom de l'auteur), content (contenu du message), create_at (heure du message).

4. Implémentation du code

  1. Connectez-vous à la base de données
    Tout d'abord, nous devons créer une fonction de connexion à la base de données pour nous connecter à la base de données MySQL :

    import (
     "database/sql"
     _ "github.com/go-sql-driver/mysql"
    )
    
    func GetDB() (*sql.DB, error) {
     db, err := sql.Open("mysql", "root:password@tcp(localhost:3306)/message_board")
     if err != nil {
         return nil, err
     }
     return db, nil
    }

    Faites attention à remplacer "root" et "mot de passe" par votre base de données. nom d'utilisateur et mot de passe.

  2. Créer un message
    Ensuite, nous créons une fonction pour insérer le message dans la base de données :

    func CreateMessage(name, content string) error {
     db, err := GetDB()
     if err != nil {
         return err
     }
     defer db.Close()
    
     _, err = db.Exec("INSERT INTO message (name, content, created_at) VALUES (?, ?, NOW())", name, content)
     if err != nil {
         return err
     }
     return nil
    }

    Cette fonction utilise la méthode db.Exec() pour exécuter l'instruction SQL et transmettre le placeholder Les paramètres sont transmis sous forme de caractères. db.Exec()方法执行SQL语句,并通过占位符的方式传入参数。

  3. 获取留言列表
    我们还需要一个函数用于获取留言列表:

    type Message struct {
     ID        int
     Name      string
     Content   string
     CreatedAt time.Time
    }
    
    func GetMessages() ([]Message, error) {
     db, err := GetDB()
     if err != nil {
         return nil, err
     }
     defer db.Close()
    
     rows, err := db.Query("SELECT * FROM message ORDER BY created_at DESC")
     if err != nil {
         return nil, err
     }
     defer rows.Close()
    
     var messages []Message
     for rows.Next() {
         var m Message
         err := rows.Scan(&m.ID, &m.Name, &m.Content, &m.CreatedAt)
         if err != nil {
             return nil, err
         }
         messages = append(messages, m)
     }
     return messages, nil
    }

    该函数使用了db.Query()方法执行SQL查询,并通过rows.Scan()

Obtenir la liste des messages

Nous avons également besoin d'une fonction pour obtenir la liste des messages :

func main() {
    err := CreateMessage("John", "Hello, world!")
    if err != nil {
        log.Fatal(err)
    }

    messages, err := GetMessages()
    if err != nil {
        log.Fatal(err)
    }

    for _, m := range messages {
        fmt.Printf("留言ID:%d,留言者:%s,留言内容:%s,留言时间:%s
", m.ID, m.Name, m.Content, m.CreatedAt.Format("2006-01-02 15:04:05"))
    }
}

Cette fonction utilise la méthode db.Query() pour exécuter des requêtes SQL et transmet lignes . La méthode Scan() mappe les résultats de la requête dans une structure.


5. Exemple d'utilisation

Enfin, nous créons un exemple de fonction pour montrer comment utiliser la fonction ci-dessus : 🎜rrreee🎜Exécutez l'exemple de fonction ci-dessus, vous pouvez voir le message inséré et la liste de messages obtenue. 🎜🎜6. Résumé🎜Cet article présente comment développer un système de messagerie simple à l'aide du langage MySQL et Go, et fournit des exemples de code spécifiques. Vous pouvez l'étendre et l'optimiser en fonction de vos propres besoins, par exemple en ajoutant des fonctions telles que la réponse aux messages et l'authentification des utilisateurs. J'espère que cet article vous sera utile pour apprendre et appliquer le développement des langages MySQL et Go ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn