In Go mysql driver is causing a lot of code bloat -
i have myself mysql database , able connect fine, perform queries, insert, select, update etc etc.
what bugging me though find myself writing same code on , on again , whenever try refactor in order create code can reuse find myself hitting errors or find myself hitting solutions seem go against how mysql driver meant used.
i have function example quick , dirty try solve problem:
func returnmaterialbyname(material string) []byte { var name string db, err := sql.open("mysql",data_source_name ) defer db.close(); stmt, err := db.prepare(getmaterials) if err != nil { log.fatal(err) } defer stmt.close() rows, err := stmt.query(material) if err != nil { log.fatal(err) } defer rows.close() materials := make([]material, 0) rows.next() { err := rows.scan(&name) if err != nil { log.fatal(err) } m := material{name} materials = append(materials, m) } if err = rows.err(); err != nil { log.fatal(err) } materialarray, err := json.marshal(materials) if err !=nil { log.fatal(err); } return materialarray } what finding 2 lines in func change select statements
err := rows.scan(&name); and additional code add struct marshaled json.
one solution found seemed of solution create map of key value pairs instead of struct seemed little involved , can't imagine expected write of same code on , on again.
so question, how 1 turn rather large function smaller reused?
Comments
Post a Comment