MySQL과 Go 언어를 사용하여 간단한 메시지 시스템을 개발하는 방법
1. 소개
메시지 시스템은 인터넷 애플리케이션의 일반적인 기능 중 하나이며 웹사이트나 애플리케이션에서 사용자 간의 통신을 실현할 수 있습니다. 이 기사에서는 MySQL 및 Go 언어를 사용하여 간단한 메시지 시스템을 개발하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.
2. 준비
개발 전에 몇 가지 도구와 환경을 준비해야 합니다.
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 }
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 }
db.Exec()
메서드를 사용하여 SQL 문을 실행하고 자리 표시자 매개변수는 문자로 전달됩니다.
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()
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()
메서드를 사용하여 SQL 쿼리를 실행하고 행을 전달합니다. Scan()
메서드는 쿼리 결과를 구조로 매핑합니다.
마지막으로 위 함수의 사용법을 보여주는 샘플 함수를 만듭니다.
rrreee
위 내용은 MySQL과 Go 언어를 사용하여 간단한 메시지 시스템을 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!