@@ -6,15 +6,11 @@ import (
6
6
"database/sql"
7
7
"log"
8
8
"strings"
9
-
10
- _ "github.com/go-sql-driver/mysql"
11
- "github.com/jmoiron/sqlx"
12
9
)
13
10
14
11
var (
15
12
ctx context.Context
16
13
db * sql.DB
17
- dbx * sqlx.DB
18
14
age = 27
19
15
userID = 43
20
16
)
@@ -259,84 +255,3 @@ func stmtReturn() (*sql.Stmt, error) {
259
255
func stmtReturnShort () (* sql.Stmt , error ) {
260
256
return db .PrepareContext (ctx , "SELECT username FROM users WHERE id = ?" )
261
257
}
262
-
263
- func sqlxCorrectDefer () {
264
- rows , err := dbx .Queryx ("SELECT name FROM users WHERE age=?" , age )
265
- if err != nil {
266
- log .Fatal (err )
267
- }
268
-
269
- defer rows .Close ()
270
-
271
- names := make ([]string , 0 )
272
- for rows .Next () {
273
- var name string
274
- if err := rows .Scan (& name ); err != nil {
275
- log .Fatal (err )
276
- }
277
- names = append (names , name )
278
- }
279
-
280
- // Check for errors from iterating over rows.
281
- if err := rows .Err (); err != nil {
282
- log .Fatal (err )
283
- }
284
- log .Printf ("%s are %d years old" , strings .Join (names , ", " ), age )
285
- }
286
-
287
- func sqlxNonDeferClose () {
288
- rows , err := dbx .Queryx ("SELECT name FROM users WHERE age=?" , age )
289
- if err != nil {
290
- log .Fatal (err )
291
- }
292
-
293
- names := make ([]string , 0 )
294
- for rows .Next () {
295
- var name string
296
- if err := rows .Scan (& name ); err != nil {
297
- log .Fatal (err )
298
- }
299
- names = append (names , name )
300
- }
301
-
302
- // Check for errors from iterating over rows.
303
- if err := rows .Err (); err != nil {
304
- log .Fatal (err )
305
- }
306
- log .Printf ("%s are %d years old" , strings .Join (names , ", " ), age )
307
-
308
- rows .Close () // ERROR "Close should use defer"
309
- }
310
-
311
- func sqlxMissingClose () {
312
- rows , err := dbx .Queryx ("SELECT name FROM users WHERE age=?" , age ) // ERROR "Rows/Stmt was not closed"
313
- if err != nil {
314
- log .Fatal (err )
315
- }
316
-
317
- // defer rows.Close()
318
-
319
- names := make ([]string , 0 )
320
- for rows .Next () {
321
- var name string
322
- if err := rows .Scan (& name ); err != nil {
323
- log .Fatal (err )
324
- }
325
- names = append (names , name )
326
- }
327
-
328
- // Check for errors from iterating over rows.
329
- if err := rows .Err (); err != nil {
330
- log .Fatal (err )
331
- }
332
- log .Printf ("%s are %d years old" , strings .Join (names , ", " ), age )
333
- }
334
-
335
- func sqlxReturnRows () (* sqlx.Rows , error ) {
336
- rows , err := dbx .Queryx ("SELECT name FROM users WHERE age=?" , age )
337
- if err != nil {
338
- return nil , err
339
- }
340
-
341
- return rows , nil
342
- }
0 commit comments