Masterminds/squirrel: Difference between revisions
Jump to navigation
Jump to search
Line 44: | Line 44: | ||
<code>getDbHandle()</code> can be implemented as shown in: {{Internal|PostgreSQL_Support_in_Go#With_database/sql_API_and_a_pgx_Driver|Connect to a PostgreSQL Database with <tt>database/sql</tt> API and a pgx Driver}} | <code>getDbHandle()</code> can be implemented as shown in: {{Internal|PostgreSQL_Support_in_Go#With_database/sql_API_and_a_pgx_Driver|Connect to a PostgreSQL Database with <tt>database/sql</tt> API and a pgx Driver}} | ||
== | ==Parameterized Statements== | ||
The format of the parameterized statements depends on the database. For example, in PostgreSQL, the placeholders are introduced by <code>$</code> and have numerical values, etc. | |||
===Placeholders and PostgreSQL=== | ===Placeholders and PostgreSQL=== |
Revision as of 18:15, 31 May 2024
External
- https://github.com/Masterminds/squirrel
- https://medium.com/nerd-for-tech/postgres-libraries-to-try-with-go-8f80191edbff
Internal
Overview
Squirrel is a fluent SQL generator for Go. It helps build SQL queries from composable parts representing the SQL SELECT query clauses: SELECT
, FROM
, JOIN
, WHERE
, etc. and also other DML statements.
Installation
go get github.com/Masterminds/squirrel
Programming Model
Queries
import sq "github.com/Masterminds/squirrel"
// Get a database/sql database handle
dbHandle = getDbHandle()
// Build the query with a fluent API
query = sq.Select("*").From("person")
// execute the query with the database handle; the syntax is identical to that used with dbHandle.Query()
rows, err := query.RunWith(dbHandle).Query()
if err != nil { ... }
defer func() {
if err = rows.Close(); err != nil { ... }
}()
for rows.Next() {
var (
id int
name string
city sql.NullString
)
if err = rows.Scan(&id, &name, &city); err != nil { ... }
fmt.Printf("id: %d, name: %s, city: %s\n", id, name, city.String)
}
getDbHandle()
can be implemented as shown in:
Parameterized Statements
The format of the parameterized statements depends on the database. For example, in PostgreSQL, the placeholders are introduced by $
and have numerical values, etc.