当前位置: 首页 > 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.w-s-a.com/news/422481/

相关文章:

  • wordpress怎么生成网站地图微网站平台怎样做网站
  • 同安区建设局网站招投标公众号简介有趣的文案
  • 江苏州 网站制作网上宣传方法有哪些
  • 做网站时怎样申请域名郑州制作网站公司
  • 深圳 网站开发公司电话网站关键词快排名
  • 网站建设的工作总结seo同行网站
  • 网站需要兼容哪些浏览器sql数据库做的网站怎么发布
  • 营销型网站的建站步骤是什么意思广州门户网站建设公司
  • 汕尾好网站建设推广计算机软件包含网站开发
  • 建设工程施工许可证在哪个网站办wordpress更换主题白屏
  • 微交易网站建设wordpress摘要调用
  • 做网站维护需要懂什么网站后台后缀名
  • 网站建设的认可桂平市住房和城乡建设局网站
  • 网站设计师岗位职责域名关键词查询
  • 百度怎样建设网站盐城公司网站建设
  • 站长工具国产2023网站制作 商务
  • 网络新闻专题做的最好的网站杭州网站设计建设公司
  • 电商网站界面设计流程ps培训班一般学费多少钱
  • 西安网站运营上海闵行区网站制作公司
  • 宁波网站推广代运营长链接转化成短链接工具
  • 小企业如何建网站怎么自己制作app
  • 苏州品牌网站制作公司宁波建设工程有限公司
  • 合肥网站建设zgkr互联网创业好项目
  • 哪里学网站建设与管理云落wordpress
  • 网站建设意见做网站涉及到哪些
  • 网站导航栏原型图怎么做怎么样创建一个网站
  • 遨游建站金融网站建站
  • cms企业网站模板上海网站开发平台
  • 贵阳网站建设搜q479185700网站团队建设
  • 电商网站建设 教学总结蚌埠市住房建设部网站