Cách SELECT dữ liệu từ database MySQL bằng Golang

Hướng dẫn cách sử dụng Golang để truy vấn dữ liệu từ MySQL database bằng Prepared Statements với nhiều tham số.

Trong bài viết này, bạn sẽ học cách sử dụng Golang để kết nối với MySQL và thực hiện truy vấn SELECT bằng Prepared Statements với nhiều tham số, giúp tăng hiệu suất và bảo mật.

package main

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/go-sql-driver/mysql"
)

func main() {
	// Kết nối tới database MySQL
	dsn := "root:password@tcp(127.0.0.1:3306)/test_db"
	db, err := sql.Open("mysql", dsn)
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	// Kiểm tra kết nối
	err = db.Ping()
	if err != nil {
		log.Fatal(err)
	}

	// Sử dụng Prepared Statement với multi params
	stmt, err := db.Prepare("SELECT id, name, age FROM students WHERE age > ? AND age < ?")
	if err != nil {
		log.Fatal(err)
	}
	defer stmt.Close()

	// Thực hiện truy vấn với các tham số
	rows, err := stmt.Query(18, 25)
	if err != nil {
		log.Fatal(err)
	}
	defer rows.Close()

	// Duyệt qua kết quả truy vấn
	for rows.Next() {
		var id int
		var name string
		var age int

		err := rows.Scan(&id, &name, &age)
		if err != nil {
			log.Fatal(err)
		}
		fmt.Printf("ID: %d, Name: %s, Age: %d\n", id, name, age)
	}

	// Kiểm tra lỗi sau khi duyệt qua các hàng dữ liệu
	if err = rows.Err(); err != nil {
		log.Fatal(err)
	}
}

Giải thích chi tiết từng dòng code:

  1. import phần khai báo các package cần thiết cho chương trình.
  2. sql.Open("mysql", dsn): Mở kết nối đến MySQL database với thông tin được truyền vào như dsn.
  3. db.Prepare(...): Tạo một Prepared Statement với câu lệnh SELECT và các tham số.
  4. stmt.Query(18, 25): Thực hiện truy vấn với các tham số đã được truyền vào.
  5. rows.Next(): Duyệt qua từng hàng của kết quả truy vấn.
  6. rows.Scan(...): Lấy dữ liệu từ hàng hiện tại và gán vào các biến.
  7. fmt.Printf: In dữ liệu ra màn hình.

Yêu cầu hệ thống:

  • Golang 1.16+
  • Thư viện MySQL Driver: github.com/go-sql-driver/mysql

Cách cài đặt các thư viện để chạy được đoạn mã Golang trên:

Sử dụng lệnh sau để cài đặt thư viện:

go get -u github.com/go-sql-driver/mysql

Lời khuyên:

  • Sử dụng Prepared Statements giúp tránh SQL Injection và cải thiện hiệu suất.
  • Kiểm tra kết nối đến database trước khi thực hiện các thao tác.


Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Cách chia chuỗi trong Golang bằng hàm Split

Bài viết hướng dẫn cách sử dụng hàm `Split` trong Go (Golang) để chia nhỏ một chuỗi dựa trên dấu phân cách. Đây là một thao tác phổ biến khi xử lý chuỗi trong lập trình Go.
Cách tự động đăng nhập vào website sử dụng Selenium với Chrome trong Golang

Hướng dẫn cách sử dụng Selenium trong Golang để tự động đăng nhập vào một website bằng trình duyệt Chrome. Bài viết sẽ cung cấp mã code cụ thể và giải thích chi tiết từng bước.
Gửi đoạn mã JavaScript vào website bằng Golang sử dụng Selenium

Hướng dẫn cách sử dụng Selenium trong Golang để gửi đoạn mã JavaScript vào một website trên trình duyệt Chrome. Bài viết sẽ cung cấp mã nguồn cụ thể và giải thích chi tiết.
Cách INSERT dữ liệu vào database MySQL bằng Golang

Hướng dẫn cách sử dụng Prepared Statements trong Golang để thực hiện thao tác INSERT dữ liệu vào database MySQL với nhiều tham số.
Tạo ứng dụng chat đơn giản sử dụng Socket.IO trong Golang

Hướng dẫn chi tiết từng bước để xây dựng ứng dụng chat đơn giản sử dụng Socket.IO trong Golang, giúp bạn hiểu cách thức hoạt động của giao tiếp thời gian thực trong các ứng dụng web.
Cách chuyển đổi chuỗi Markdown sang HTML bằng Golang

Hướng dẫn chi tiết cách chuyển đổi một chuỗi Markdown sang HTML trong Golang bằng cách sử dụng thư viện `blackfriday`.
Cách mở ứng dụng Notepad bằng Golang

Hướng dẫn cách sử dụng gói `os/exec` trong Golang để mở ứng dụng Notepad trên hệ điều hành Windows. Đây là một ví dụ thực tiễn về cách gọi và chạy một chương trình bên ngoài từ Golang.
Hướng dẫn tạo form upload nhiều hình ảnh bằng Golang

Hướng dẫn chi tiết cách tạo form để upload nhiều hình ảnh cùng lúc trong Golang bằng cách sử dụng thư viện `net/http`.
Tạo mã Captcha bằng Golang

Hướng dẫn chi tiết cách tạo mã Captcha bằng Golang để bảo vệ ứng dụng web khỏi các cuộc tấn công tự động và bot.
Cách ghi nội dung vào file Excel bằng Golang

Hướng dẫn chi tiết cách ghi dữ liệu vào file Excel bằng ngôn ngữ lập trình Golang sử dụng thư viện excelize.

Đã thêm vào giỏ hàng