這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
一、建立表格
marksql := "create table mark (id int(20) primary key auto_increment,markname char(50)," +"mlongitude float,mlatitude float,mdescribe char(255),mtype int,creattime char(50),mvalue float );"smt, err := db.Db.Prepare(marksql)checkErr(err)smt.Exec()
二、建立外鍵
//定義好友fk1外鍵idx_userid := "alter table user add index idx_userid(uid);"smt, err = db.Db.Prepare(idx_userid)checkErr(err)smt.Exec()idx_userid = "alter table friend add index idx_friuid(uid);"smt, err = db.Db.Prepare(idx_userid)checkErr(err)smt.Exec()
//定義好友fk2外鍵frifk2sql := "alter table friend add constraint fk2_fri_user foreign key(uid) references user(uid);"smt, err = db.Db.Prepare(frifk2sql)checkErr(err)smt.Exec()
三、插入資料
//插入到資料庫表中func (db *DbOperation) Insert2Table(str string) bool {stmt, err := db.Db.Prepare(str)checkErr(err)res, err := stmt.Exec()defer stmt.Close()checkErr(err)i, err := res.RowsAffected()if i > 0 && err == nil {return true} else {return false}}
var sql = "insert into user(uid,ucode,unickname,password,ufavicon,utel,utype,udescribe,ucreattime) values (" + strconv.Itoa(user.Id) + ",'" + user.Code + "','" + user.NickName + "','" + user.Password + "','" + user.Img + "','" + user.Mobile + "'," + strconv.FormatFloat(user.Category, 'e', 10, 64) + ",'" + user.Description + "','" + user.CreateTime + "');"if !db.G_db.Insert2Table(sql) {fmt.Println("user表插入不成功!")} else {fmt.Println("entering weite2db OK ! ! !")}
四、更新資料庫
var sql = "update user set ufavicon='" + user.Img +"',udescribe='" + user.Description +"',utype=" + strconv.FormatFloat(user.Category, 'e', 10, 64) + " where uid=" + strconv.Itoa(user.Id) + ";"if !db.G_db.Insert2Table(sql) {fmt.Println("user表更新不成功!")return errors.New("update error!!!")}
五、尋找資料庫
func (db *DbOperation) Find(str string) *sql.Rows {fmt.Println(str)rows, err := db.Db.Query(str)fmt.Println("--------------------err", err)if err != nil {panic("error in: selecting in table")}//rows.Close()return rows}
func (pUsersSet *UserSet) LoadData(pDb *db.DbOperation) {var user Userfmt.Println("begining:load userset........")selectstr := "select uid,ucode,unickname,password,ufavicon,utel,utype,udescribe,ucreattime from user"rows := pDb.Find(selectstr)for rows.Next() {err := rows.Scan(&user.Id, &user.Code, &user.NickName, &user.Password, &user.Img, &user.Mobile, &user.Category, &user.Description, &user.CreateTime)if err != nil {panic("error in:scanning the table user")}fmt.Println("-------------------Load data to cache--------------------")fmt.Println(user)pUsersSet.WriteUserFromDb2Cache(user)}}