먼저 Golang과 MySQL을 올바르게 설치했는지 확인하고 Go용 MySQL 드라이버도 설치해야 합니다. 이 작업은 다음 명령을 사용하여 쉽게 수행할 수 있습니다.
go get -u github.com/go-sql-driver/mysql
Go 프로그램을 만들기 전에 데이터베이스 작업에 Golang을 사용하는 방법을 보여주기 위해 MySQL 데이터베이스와 테이블도 만들어야 합니다.
"test_db"라는 데이터베이스를 생성했고 여기에 "users"라는 테이블이 포함되어 있다고 가정해 보겠습니다. 테이블의 구조는 다음과 같습니다:
CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `age` smallint(6) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
다음으로 Golang 프로그램 작성을 시작할 수 있습니다. 다음은 Golang 드라이버를 사용하여 MySQL 데이터베이스에 연결하고 몇 가지 기본 쿼리 작업을 수행하는 방법을 보여주는 간단한 프로그램 예제입니다.
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { // 连接 MySQL 数据库 db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/test_db?charset=utf8mb4") if err != nil { panic(err.Error()) } defer db.Close() // 执行查询操作 rows, err := db.Query("SELECT * FROM users") if err != nil { panic(err.Error()) } defer rows.Close() // 遍历查询结果 for rows.Next() { var id int var name string var email string var age int err := rows.Scan(&id, &name, &email, &age) if err != nil { panic(err.Error()) } fmt.Println(id, name, email, age) } // 检查是否存在错误 err = rows.Err() if err != nil { panic(err.Error()) } }
위 프로그램을 실행하면 MySQL 데이터베이스에 성공적으로 연결하고 " SELECT" 문 "users" 테이블의 모든 레코드를 확인하고 결과를 출력합니다.
쿼리 외에도 Golang 드라이버를 사용하여 삽입, 업데이트 및 삭제와 같은 다른 일반적인 MySQL 작업을 수행할 수도 있습니다. 다음은 간단한 프로그램 예입니다.
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { // 连接 MySQL 数据库 db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/test_db?charset=utf8mb4") if err != nil { panic(err.Error()) } defer db.Close() // 插入一条记录 stmt, err := db.Prepare("INSERT INTO users(name, email, age) VALUES(?, ?, ?)") if err != nil { panic(err.Error()) } defer stmt.Close() result, err := stmt.Exec("Tom", "tom@email.com", 30) if err != nil { panic(err.Error()) } lastInsertId, _ := result.LastInsertId() fmt.Println("新增记录的 ID:", lastInsertId) // 更新一条记录 stmt, err = db.Prepare("UPDATE users SET name=?, age=? WHERE id=?") if err != nil { panic(err.Error()) } defer stmt.Close() result, err = stmt.Exec("Jerry", 25, 1) if err != nil { panic(err.Error()) } affectRow, _ := result.RowsAffected() fmt.Println("受影响的行数:", affectRow) // 删除一条记录 stmt, err = db.Prepare("DELETE FROM users WHERE id=?") if err != nil { panic(err.Error()) } defer stmt.Close() result, err = stmt.Exec(1) if err != nil { panic(err.Error()) } affectRow, _ = result.RowsAffected() fmt.Println("受影响的行数:", affectRow) }
위의 프로그램 예를 사용하면 삽입, 업데이트, 삭제와 같은 일반적인 MySQL 작업을 성공적으로 수행할 수 있습니다.
위 내용은 golang에서 mysql 작업을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!