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

网站不想被收录机关门户网站建设意义

网站不想被收录,机关门户网站建设意义,简单的个人网站html,软文平台发布在 Go 语言中#xff0c;sqlx 包是一个用于数据库操作的库#xff0c;它建立在标准库的 database/sql 包之上#xff0c;并提供了一些额外的功能#xff0c;以简化和增强与数据库的交互。sqlx 的目标是通过提供更方便的 API 和一些附加功能来改善在 Go 中进行 SQL 数据库查…在 Go 语言中sqlx 包是一个用于数据库操作的库它建立在标准库的 database/sql 包之上并提供了一些额外的功能以简化和增强与数据库的交互。sqlx 的目标是通过提供更方便的 API 和一些附加功能来改善在 Go 中进行 SQL 数据库查询的体验。 以下是 sqlx 包的一些主要特性 结构体映射 sqlx 允许将数据库查询的结果映射到 Go 结构体中简化了数据的处理和访问。 命名参数 支持使用命名参数执行查询使得 SQL 语句更易读且更易维护。 Null 值支持 对于可能为 NULL 的字段sqlx 提供了 null 类型以方便地处理这些情况。 更丰富的查询方法 sqlx 提供了一些额外的查询方法如 Get、Select使得执行查询更加方便。 数据库连接池 支持数据库连接池提高了在并发环境中的性能。 支持多种数据库 sqlx 可以与多种数据库一起使用包括 PostgreSQL、MySQL、SQLite 等。 原生 SQL 支持 sqlx 支持使用原生的 SQL 语句同时也支持使用预处理语句。 扫描任意类型 sqlx 具有更灵活的 Scan 方法可以直接将查询结果映射到任意类型。 总体而言sqlx 提供了一些额外的工具和功能使得在 Go 语言中进行数据库查询更加方便、灵活同时也提高了代码的可读性和可维护性。如果你在 Go 中进行 SQL 数据库操作sqlx 是一个值得考虑的库。 接下来我们已MySQL为例,通过go代码实现数据库的CRUD 1. 安装数据库相关包 go get github.com/jmoiron/sqlxgo get github.com/go-sql-driver/mysql2.连接数据库 package mainimport (fmt_ github.com/go-sql-driver/mysqlgithub.com/jmoiron/sqlx )// 准备数据库的连接参数信息 var (userName string rootpassWord string 12345678ipAddress string 127.0.0.1port string 3306dbName string go_testcharset string utf8mb4 )// 链接mysql func connectSql() *sqlx.DB {//root:12345678tcp(127.0.0.1:3306)/go_test?charsetutf8mb4dbStr : fmt.Sprintf(%s:%stcp(%s:%s)/%s?charset%s, userName,passWord,ipAddress,port,dbName,charset)//使用匿名变量忽略errDB, _ : sqlx.Open(mysql, dbStr)//数据库连接池优化//DB.SetConnMaxLifetime() 设置连接的最大生存时间为5分钟//DB.SetConnMaxIdleTime() 设置连接的最大空闲时间为10分钟// 设置连接池大小//db.SetMaxOpenConns(10) // 设置最大打开连接数//db.SetMaxIdleConns(5) // 设置最大空闲连接数ping(DB)return DB }// 测试连接 调用DB对象的原始函数 ping() func ping(db *sqlx.DB) {err : db.Ping()if err ! nil {fmt.Println(ping失败, err)} else {fmt.Println(ping成功)} }func main() {mysqlDB : connectSql()defer mysqlDB.Close() }3.数据库连接成功后,使用sqlx相关语法实现对数据库的增删改查(CRUD) 先在本地创建一个测试用的数据库表 DROP TABLE IF EXISTS user; CREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT COMMENT 自增主键,userid int(11) NULL DEFAULT NULL COMMENT 用户id,username varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 用户名,password varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 用户密码,avatar varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 用户头像,create_time datetime(0) NULL DEFAULT NULL COMMENT 创建时间,update_time datetime(0) NULL DEFAULT NULL COMMENT 更新时间,PRIMARY KEY (id) USING BTREE ) ENGINE InnoDB AUTO_INCREMENT 7 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ROW_FORMAT Dynamic;使用Exec()实现数据的增删改 func main() {mysqlDB : connectSql()defer mysqlDB.Close()//新增insertSql : insert into user(userid,username,password,avatar,create_time,update_time) values (?,?,?,?,?,?)result, err : mysqlDB.Exec(insertSql, 1, xiaoming, 12345678, a.png, time.Now().Format(2006-01-02 15:04:05), time.Now().Format(2006-01-02 15:04:05))if err ! nil {fmt.Println(数据插入失败, err)return}//查询新增后的最新的idid, _ : result.LastInsertId()fmt.Println(id)//修改updateSql : update user set username hahaha where id 1result2, err2 : mysqlDB.Exec(updateSql)if err2 ! nil {fmt.Println(数据更新失败, err2)return}num, _ : result2.RowsAffected()fmt.Println(影响的数据行数, num)//删除deleteSql : delete from user where id 1result3, _ : mysqlDB.Exec(deleteSql)num2, _ : result3.RowsAffected()fmt.Println(影响的数据行数, num2) }使用Query、Get、Select实现数据的查询 mysqlDB : connectSql()defer mysqlDB.Close()//基础类型存储querySql : select * from userrows, _ : mysqlDB.Query(querySql)for rows.Next() {var id, userId intvar username, password, avatar, create_time, update_time stringrows.Scan(id, userId, username, password, avatar, create_time, update_time)fmt.Println(id, userId, username, password, avatar, create_time, update_time)}rows.Close()fmt.Println(rows)//利用结构体、切片存储数据//需要与数据库内的所有字段一一映射不一致会导致查询后的解析失败type user struct {Id int db:idUserId int db:useridUserName string db:usernamePassword string db:passwordAvatar string db:avatarCreateTime string db:create_timeUpdateTime string db:update_time}//查询单条userData : new(user)mysqlDB.Get(userData, select * from user where id 2)fmt.Println(userData)//查询所有var userSlice []user//需要传入切片地址err : mysqlDB.Select(userSlice, select * from user)if err ! nil {fmt.Println(err)}fmt.Println(userSlice)
http://www.dnsts.com.cn/news/31919.html

相关文章:

  • 传奇网站免费空间东仓建设网站
  • 做sorry动图的网站十堰建设网站首页
  • 云南省城市建设培训中心网站php网站文件下载怎么做
  • 更改备案网站名称专业做全景图的网站平台
  • 汉川网站开发做企业网站备案都需要什么资料
  • 现在建一个网站一年费用只要几百元人和做网站
  • 云南省住房和城乡建设局网站文山网站建设报价
  • 汽车制造网站建设温州市建设工程质监站网站
  • 怎么撤销网站备案外贸英文网站开发
  • 做网站找顺的深圳网站建设 信科便宜
  • 手机网站开发企业长治建立公司网站的步骤
  • 户外网站模板主题网站设计与制作
  • 专门做高仿的网站邵阳建设网站哪家好
  • 怀化公司网站建设洛阳网站seo
  • 网站建设智能优化乐清柳市阿里巴巴做网站的
  • 网站规划名词解释清远医疗网站建设
  • 如何进行网站设计dede手机网站模板制作
  • 黑色网站设计老薛主机安装wordpress
  • 外管局网站上做预收登记网页qq登录保护在哪里
  • 百度网站的优缺点做网站设计的价格
  • 网站做rss wordpress客户关系管理概念
  • 企业官方网站如何做蓝v认证创建网站平台
  • 环保网站 下载网络营销是什么的具体应用
  • 网站内部链接是怎么做的制作企业网站欢迎界面素材
  • 网站备案流程慢建com网站
  • 手机页面网站模板怎么卖建网站淄博
  • 成都网站建设公司优势网易官网建立个人网站
  • ps做网站ui做网站只有域名
  • 三合一网站系统事业网站网站建设方案
  • 石家庄网站建设公司排名制作视频网站开发