add sqimple crud methods
This commit is contained in:
+29
@@ -5,6 +5,7 @@ import (
|
||||
"database/sql"
|
||||
|
||||
"code.aneur.in/go/record"
|
||||
"code.aneur.in/go/sqimple"
|
||||
"code.aneur.in/go/version"
|
||||
)
|
||||
|
||||
@@ -15,10 +16,18 @@ type Scaffold struct {
|
||||
apps map[string]version.Migration
|
||||
}
|
||||
|
||||
func (s *Scaffold) Delete(from string) *sqimple.DeleteStatement {
|
||||
return sqimple.Delete(from).ExecFunc(s.sqimpleExec)
|
||||
}
|
||||
|
||||
func (s *Scaffold) Exec(query string, args ...any) (sql.Result, error) {
|
||||
return s.conn.ExecContext(s.ctx, query, args...)
|
||||
}
|
||||
|
||||
func (s *Scaffold) Insert(into string) *sqimple.InsertStatement {
|
||||
return sqimple.Insert(into).ExecFunc(s.sqimpleExec)
|
||||
}
|
||||
|
||||
func (s *Scaffold) Query(query string, args ...any) ([]record.Record, error) {
|
||||
rows, err := s.conn.QueryContext(s.ctx, query, args...)
|
||||
if err != nil {
|
||||
@@ -37,6 +46,26 @@ func (s *Scaffold) QueryOne(query string, args ...any) (record.Record, error) {
|
||||
return ScanOneRecord(rows)
|
||||
}
|
||||
|
||||
func (s *Scaffold) Select(from string) *sqimple.SelectQuery {
|
||||
return sqimple.Select(from).QueryFunc(s.sqimpleQuery).QueryRowFunc(s.sqimpleQueryRow)
|
||||
}
|
||||
|
||||
func (s *Scaffold) Update(table string) *sqimple.UpdateStatement {
|
||||
return sqimple.Update(table).ExecFunc(s.sqimpleExec)
|
||||
}
|
||||
|
||||
func (s *Scaffold) sqimpleExec(query sqimple.Query) (sql.Result, error) {
|
||||
return s.Exec(query.String(), query.Args()...)
|
||||
}
|
||||
|
||||
func (s *Scaffold) sqimpleQuery(query sqimple.Query) (*sql.Rows, error) {
|
||||
return s.conn.QueryContext(s.ctx, query.String(), query.Args()...)
|
||||
}
|
||||
|
||||
func (s *Scaffold) sqimpleQueryRow(query sqimple.Query) *sql.Row {
|
||||
return s.conn.QueryRowContext(s.ctx, query.String(), query.Args()...)
|
||||
}
|
||||
|
||||
func (s *Scaffold) WithApp(name string, migration version.Migration) *Scaffold {
|
||||
s.apps[name] = migration
|
||||
return s
|
||||
|
||||
Reference in New Issue
Block a user