func SelectData(search Book) ([]Book, error) {
// goqu 사용
var result []Book

dbms := goqu.New("sqlite3", db)
ds := dbms.From(tableName).Select(&Book{})
err := ds.ScanStructs(&result)
if err != nil {
log.Println("ds: ", err.Error())
return nil, err
}

// 날쿼리 & 날스캔
sql := ""

sql += `
SELECT
IDX, NAME, PRICE, AUTHOR, ISBN
FROM #TABLE_NAME
`

sql = strings.ReplaceAll(sql, "#TABLE_NAME", tableName)

rows, err := db.Query(sql)
if err != nil {
return nil, err
}

for rows.Next() {
var b Book

err = rows.Scan(&b.Idx, &b.Name, &b.Price, &b.Author, &b.ISBN)
if err != nil {
return nil, err
}

result = append(result, b)
}

return result, nil
}


쿼리보다는 rows 스캔이 짜증났었는데 조금이라도 편해지려면 쿼리빌더든 orm이든 쓰는 쪽으로 습관을 들이는게 좋겠다.


끝.


-----------------------------------------------------------------------------


https://www.ajostrow.me/articles/tiny-orm


날쿼리에 스캔만 이런식으로 가는 것도 좋아 보인다.


진짜 끝.