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 :
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 :
4. Implémentation du code
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.
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语句,并通过占位符的方式传入参数。
获取留言列表
我们还需要一个函数用于获取留言列表:
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()
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")) } }
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
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!