> 데이터 베이스 > MySQL 튜토리얼 > Go 언어에서 MySQL을 사용하여 안정적인 데이터 전송 달성

Go 언어에서 MySQL을 사용하여 안정적인 데이터 전송 달성

王林
풀어 주다: 2023-06-17 11:25:37
원래의
1553명이 탐색했습니다.

빅데이터와 클라우드 컴퓨팅 기술의 급속한 발전으로 데이터의 양이 증가하고, 데이터 처리 및 전송의 중요성이 더욱 커지고 있습니다. 데이터 전송 중 문제가 발생하면 전체 시스템에 문제가 발생할 수 있으므로 데이터 전송 시 신뢰성은 매우 중요합니다. 따라서, 어떻게 신뢰성 있는 데이터 전송을 달성하는가가 매우 중요한 문제가 되었습니다. Go 언어에서는 MySQL 데이터베이스를 사용하여 안정적인 데이터 전송을 잘 구현할 수 있습니다.

MySQL은 Oracle Corporation에서 개발한 널리 사용되는 관계형 데이터베이스 관리 시스템입니다. MySQL은 높은 가용성과 안정성을 갖추고 있으며 동시 데이터 읽기 및 쓰기 작업을 지원할 수 있습니다. 따라서 데이터 전송에 MySQL을 사용하는 것은 매우 안정적이고 빠릅니다.

Go 언어에서 MySQL을 사용하여 데이터 전송을 구현하는 단계는 다음과 같습니다.

  1. MySQL 데이터베이스에 연결

Go 언어에서는 Go-MySQL-Driver 패키지를 사용하여 MySQL 데이터베이스에 쉽게 연결할 수 있습니다. go get 명령을 통해 패키지를 설치할 수 있습니다. 설치 명령은 다음과 같습니다.

go get -u github.com/go-sql-driver/mysql
로그인 후 복사

코드에서 패키지를 가져온 후 다음 코드를 사용하여 MySQL 데이터베이스에 연결할 수 있습니다.

db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
    log.Fatal(err)
}
defer db.Close()
로그인 후 복사

여기서 루트는 데이터베이스입니다. 사용자 이름과 비밀번호는 데이터베이스 비밀번호, 127.0.0.1은 데이터베이스 주소, 3306은 MySQL 포트 번호, dbname은 데이터베이스 이름입니다.

  1. 데이터베이스 테이블 생성

MySQL 데이터베이스에서는 먼저 데이터를 저장할 테이블을 생성해야 합니다. 테이블 구조는 실제 비즈니스 요구에 따라 설정할 수 있습니다. 예:

CREATE TABLE IF NOT EXISTS `data` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `data` text NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
로그인 후 복사

테이블에는 3개의 필드가 있습니다. id는 자체 증가 ID, time은 타임스탬프, data는 저장된 데이터입니다.

  1. 데이터 쓰기 및 읽기

Go 언어에서는 sql.DB 개체의 Exec() 메서드를 사용하여 MySQL 데이터베이스에 데이터를 씁니다.

stmt, err := db.Prepare("INSERT INTO data(time, data) VALUES(?, ?)")
if err != nil {
    log.Fatal(err)
}
defer stmt.Close()
res, err := stmt.Exec(time.Now(), "data")
if err != nil {
    log.Fatal(err)
}
id, err := res.LastInsertId()
if err != nil {
    log.Fatal(err)
}
로그인 후 복사

위 코드에서는 먼저 prepare() 메서드를 사용하여 SQL 문을 구성한 다음 Exec() 메서드를 사용하여 SQL 문을 실행하고 데이터를 데이터베이스에 씁니다. 성공적으로 실행되면 삽입된 데이터의 ID를 얻을 수 있습니다.

데이터를 읽을 때 sql.DB 개체의 Query() 메서드를 사용하여 쿼리 작업을 수행할 수 있습니다.

rows, err := db.Query("SELECT * FROM data")
if err != nil {
    log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
    var id int
    var time time.Time
    var data string
    if err := rows.Scan(&id, &time, &data); err != nil {
        log.Fatal(err)
    }
    fmt.Println(id, time, data)
}
if err := rows.Err(); err != nil {
    log.Fatal(err)
}
로그인 후 복사

위 코드에서는 먼저 Query() 메서드를 사용하여 쿼리 작업을 수행하고 결과 집합을 얻습니다. 그런 다음 Next() 메서드를 사용하여 결과 집합의 각 데이터 행을 반복하고 Scan() 메서드를 사용하여 각 데이터 행을 변수에 저장합니다.

  1. 데이터 수정 및 삭제

Go 언어에서는 sql.DB 객체의 Exec() 메서드를 사용하여 데이터를 수정 및 삭제합니다.

데이터를 수정하는 코드는 다음과 같습니다.

stmt, err := db.Prepare("UPDATE data SET data=? WHERE id=?")
if err != nil {
    log.Fatal(err)
}
defer stmt.Close()
res, err := stmt.Exec("new data", id)
if err != nil {
    log.Fatal(err)
}
rowsAffected, err := res.RowsAffected()
if err != nil {
    log.Fatal(err)
}
로그인 후 복사

데이터를 삭제하는 코드는 다음과 같습니다.

stmt, err := db.Prepare("DELETE FROM data WHERE id=?")
if err != nil {
    log.Fatal(err)
}
defer stmt.Close()
res, err := stmt.Exec(id)
if err != nil {
    log.Fatal(err)
}
rowsAffected, err := res.RowsAffected()
if err != nil {
    log.Fatal(err)
}
로그인 후 복사

위 코드에서는 먼저 Exec() 메소드를 사용하여 수정 또는 삭제 작업을 수행한 후, 영향을 받은 행 수를 얻으려면 RowsAffected() 메서드를 사용하십시오.

요약

Go 언어에서 MySQL을 사용하여 안정적인 데이터 전송을 달성하려면 먼저 MySQL 데이터베이스에 연결한 다음 테이블 구조를 생성하고 마지막으로 Exec() 메서드를 사용하여 추가, 삭제, 수정 및 쿼리를 수행해야 합니다. 데이터. MySQL 데이터베이스를 사용하면 데이터 전송 중 데이터의 신뢰성을 보장하고 시스템의 안정성과 신뢰성을 향상시킬 수 있습니다.

위 내용은 Go 언어에서 MySQL을 사용하여 안정적인 데이터 전송 달성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿