当前位置: 首页 > news >正文

新建的网站可以百度推广中山建设

新建的网站可以百度推广,中山建设,网站同时做竞价和优化可以,成华区微信网站建golang中类似java操作mysql的jdbc一样#xff0c;github.com/go-sql-driver/mysql也为go提供了基础接口#xff0c;在开发中往往需要写更多的代码来满足自己的定制需求#xff0c;java在驱动基础上有了扩展#xff0c;orm框架诞生#xff0c;mybatis、jpa等都是好用的扩展…golang中类似java操作mysql的jdbc一样github.com/go-sql-driver/mysql也为go提供了基础接口在开发中往往需要写更多的代码来满足自己的定制需求java在驱动基础上有了扩展orm框架诞生mybatis、jpa等都是好用的扩展框架go也不例外除了知道基础框架的实现和使用外其他的orm框架也要轻松上手知道他们怎么在基础之上实现的是否自己实现一套框架go中的mysql框架比较多这意味着基础框架github.com/go-sql-driver/mysql做的相当优秀上层可以i灵活且自由的实现我们这次主要是复习基础驱动的使用如下 package mainimport (database/sqlfmtlogtime_ github.com/go-sql-driver/mysql )// 用户表结构体 type User struct {id int64 db:idname string db:namepassword string db:passwordage int db:age }var MysqlDb *sql.DB var MysqlDbErr errorconst (USER_NAME rootPASS_WORD fbw123HOST localhostPORT 3307DATABASE nodeCHARSET utf8 )func linksql() {dbDSN : fmt.Sprintf(%s:%stcp(%s:%s)/%s?charset%s, USER_NAME, PASS_WORD, HOST, PORT, DATABASE, CHARSET)// 打开连接失败MysqlDb, MysqlDbErr sql.Open(mysql, dbDSN)//defer MysqlDb.Close();if MysqlDbErr ! nil {log.Println(dbDSN: dbDSN)panic(数据源配置不正确: MysqlDbErr.Error())}// 最大连接数MysqlDb.SetMaxOpenConns(100)// 闲置连接数MysqlDb.SetMaxIdleConns(20)// 最大连接周期MysqlDb.SetConnMaxLifetime(100 * time.Second)if MysqlDbErr MysqlDb.Ping(); nil ! MysqlDbErr {panic(数据库链接失败: MysqlDbErr.Error())} else {fmt.Println(数据库连接成功)} }// 查询数据指定字段名---完成 func StructQueryField(id int64) {user : new(User)row : MysqlDb.QueryRow(select id, name, age,password from user where id?, id)if err : row.Scan(user.id, user.name, user.age, user.password); err ! nil {fmt.Printf(scan failed, err:%v, err)fmt.Println(查询失败)return}fmt.Println(user.id, user.name, user.age, user.password) }// 查询数据取所有字段-----完成 func StructQueryAllField() {// 通过切片存储users : make([]User, 0)//分页查询一次查询2个记录rows, _ : MysqlDb.Query(SELECT * FROM user limit ?, 2)// 遍历var user Userfor rows.Next() {rows.Scan(user.id, user.name, user.age, user.password)users append(users, user)}fmt.Println(users)}// 插入数据-----完成 func StructInsert(id int, name string, age int8, password string) {ret, _ : MysqlDb.Exec(insert INTO user(id,name,age,password) values(?,?,?,?), id, name, age, password)//插入数据的主键idlastInsertID, _ : ret.LastInsertId()fmt.Println(LastInsertID:, lastInsertID)//影响行数rowsaffected, _ : ret.RowsAffected()fmt.Println(RowsAffected:, rowsaffected)}// 更新数据 -------完成 func StructUpdate(id int64, name string, password string, age int8) {ret, _ : MysqlDb.Exec(UPDATE user set name?,password?,age? where id?, name, password, age, id)upd_nums, _ : ret.RowsAffected()fmt.Println(RowsAffected:, upd_nums) }// 删除数据------完成 func StructDeluserByid(id uint64) {ret, _ : MysqlDb.Exec(delete from user where id?, id)del_nums, _ : ret.RowsAffected()fmt.Println(RowsAffected:, del_nums) }// 事务处理,结合预处理----完成 func StructTx() {//事务处理前面的插入代码没有什么问题在后面的条件不满足下事务回滚tx, _ : MysqlDb.Begin()// 新增userAddPre, _ : MysqlDb.Prepare(insert into user(name,password,age) values(?, ?,?))addRet, _ : userAddPre.Exec(zhaoliu, mima, 12)ins_nums, _ : addRet.RowsAffected()// 更新userUpdatePre1, _ : tx.Exec(update user set name zhansan where name?, 张三)upd_nums1, _ : userUpdatePre1.RowsAffected()userUpdatePre2, _ : tx.Exec(update user set name lisi where name?, 李四)upd_nums2, _ : userUpdatePre2.RowsAffected()fmt.Println(ins_nums)fmt.Println(upd_nums1)fmt.Println(upd_nums2)if ins_nums 0 upd_nums1 0 upd_nums2 0 {tx.Commit()} else {tx.Rollback()}}// 查询数据指定字段名,不采用结构体 ------完成 func RawQueryField() {rows, _ : MysqlDb.Query(select id,name from user)if rows nil {return}id : 0name : fmt.Println(rows)for rows.Next() {rows.Scan(id, name)fmt.Println(id, name)} }// 查询数据,取所有字段,不采用结构体------完成 func RawQueryAllField() {//查询数据取所有字段rows2, _ : MysqlDb.Query(select * from user)//返回所有列cols, _ : rows2.Columns()//这里表示一行所有列的值用[]byte表示vals : make([][]byte, len(cols))//这里表示一行填充数据scans : make([]interface{}, len(cols))//这里scans引用vals把数据填充到[]byte里for k, _ : range vals {scans[k] vals[k]}i : 0result : make(map[int]map[string]string)for rows2.Next() {//填充数据rows2.Scan(scans...)//每行数据row : make(map[string]string)//把vals中的数据复制到row中for k, v : range vals {key : cols[k]//这里把[]byte数据转成stringrow[key] string(v)}//放入结果集result[i] rowi}fmt.Println(result)for k, v : range result {fmt.Println(k, v)//每条属性打一遍for k, p : range v {fmt.Println(k, p)}} }func main() {linksql()// StructQueryField(2020110131)// StructInsert(100,lv,23 wenli)// StructQueryAllField()// StructUpdate(100,少年,wjr,20)// StructDeluserByid(100)// StructTx()//查询所有的数据显示指定字段// RawQueryField()RawQueryAllField() }
http://www.hkea.cn/news/14501610/

相关文章:

  • 云南网站开发软件制作网站团队人员
  • 想搞一个自己的网站怎么做网站备案级别
  • 制作网站开发用的图片seo81
  • 遵义制作公司网站的公司helium wordpress
  • 在哪做网站好为歌手做的个人网站
  • 做食品那些网站网站开发需求列表
  • 重庆市住房和城乡建设厅网站大型网站服务器多少钱
  • 广州网站建设咨询电话WordPress360收录
  • 怀化网站排名优化wordpress简码怎么用
  • 做网站的的报价企业做网站有什么用
  • 流量网站怎么做设计图案
  • 重庆有哪些做网站公司怎么查有做网站的公司有哪些
  • 做网站的要faq怎么给青岛国家高新区建设局网站
  • 松江新城建设发展有限公司网站wordpress上传录音
  • 安阳网站建设策划wordpress防护屏蔽国外ip
  • 全国学校网站建设即墨区城乡建设局网站官网
  • 获取网站访客信息网站怎么做微博认证
  • 网站想换个风格怎么做网站群 米拓
  • 优秀html5网站织梦如何做中英文网站
  • 网站备案现状网址
  • 建设网站企业排行外贸网站建设公司案例
  • 安庆市网站建设制作网站推广的阶段目标
  • 网站建设与网页设计从入门到精通 素材下载上海seo网站设计
  • 怎样建立自己网站视频四川城乡建设网网站
  • 常州的网站建设哪个网站可以做魔方图片
  • 教育培训 营销型网站系统太原建站模板
  • 南充公司网站建设网上哪里可以免费打广告
  • 黄页推广网站下载app营销策略模板
  • 杭州大型网站建设计算机网络实验 做网站的
  • 微信公众号商城网站开发网站建设和考核工作通知