golang實現對mysql資料庫的操作

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

一、建立表格

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)}}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.