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

一流的网站建设推广盐城网页设计方案

一流的网站建设推广,盐城网页设计方案,wordpress 腾讯云插件,es网站开发目录 准备工作准备数据创建项目连接数据库查询数据修改数据插入数据删除数据释放资源完整代码最终执行结果 准备工作 在开始之前#xff0c;你需要确保自己安装了Golang的编程环境#xff0c;安装MySQL数据库#xff0c;有一个可以用于编写代码的编辑器或IDE工具。我在这里… 目录 准备工作准备数据创建项目连接数据库查询数据修改数据插入数据删除数据释放资源完整代码最终执行结果 准备工作 在开始之前你需要确保自己安装了Golang的编程环境安装MySQL数据库有一个可以用于编写代码的编辑器或IDE工具。我在这里使用的编辑器是Fleet。 准备数据 将下面的SQL语句在MySQL中执行创建数据库并插入数据.。 drop table if exists album; create table album (id int auto_increment not null,title varchar(128) not null,artist varchar(255) not null,price decimal(5,2) not null,primary key (id) ); insert into album(title, artist, price) values(Blue Train, John Coltrane, 56.99),(Giant Steps, Greey Mulligan, 63.99),(Jeru, Gerry Mulligan, 17.99),(Sarah Vaughan, Sarah Vaughan, 34.98);创建项目 进入终端输入以下命令。当然你也可以手动创建 mkdir data-access cd ./data-access go mod init example/data-access在上面创建的目录下创建文件main.go将以下代码粘贴到文件中。 package mainimport (database/sqlerrorsfmtgithub.com/go-sql-driver/mysqllog )终端输入以下命令下载上面代码中引入的MySQL的驱动包 go mod tidy连接数据库 在main.go中输入以下代码连接数据库。 var db *sql.DBfunc main() {// 设置连接属性cfg : mysql.Config{User: root,Passwd: 123456,Net: tcp,Addr: 127.0.0.1:3306,DBName: recordings,}// 获取数据库句柄var err errordb, err sql.Open(mysql, cfg.FormatDSN())if err ! nil {log.Fatal(err)}// 测试是否连接成功pingErr : db.Ping()if pingErr ! nil {log.Fatal(pingErr)}log.Println(Connected!) }查询数据 对于数据库中的数据我们需要定义一个结构体去接收。在main.go中输入以下代码。 // Album 记录实体结构体 type Album struct {ID int64Title stringArtist stringPrice float32 }接着我们实现String函数让输出稍微美观一些。 func (album Album) String() string {return fmt.Sprintf({ id: %d, title: %q, artist: %q, price: %.2f }, album.ID, album.Title, album.Artist, album.Price) }接下来让我们编写一个函数这个函数的功能是通过人名去查询数据库中的记录。 // 通过人名查询记录 func albumsByArtist(name string) ([]Album, error) {var albums []Albumrows, err : db.Query(select * from album where artist ?, name)if err ! nil {return nil, fmt.Errorf(albumsByArtist %q: %v, name, err)}// 资源释放defer关键字修饰的语句在其下方语句未执行完成前不会执行defer rows.Close()// 循环获取相关值for rows.Next() {var alb Albumif err : rows.Scan(alb.ID, alb.Title, alb.Artist, alb.Price); err ! nil {return nil, fmt.Errorf(albumsByArtist %q: %v, name, err)}albums append(albums, alb)}if err : rows.Err(); err ! nil {return nil, fmt.Errorf(albumsByArtist %q: %v, name, err)}return albums, nil }接着定义一个函数通过id去查询记录。 // 通过ID查询记录 func albumsById(id int64) (Album, error) {var alb Albumrow : db.QueryRow(select * from album where id ?, id)if err : row.Scan(alb.ID, alb.Title, alb.Artist, alb.Price); err ! nil {if errors.Is(err, sql.ErrNoRows) {return alb, fmt.Errorf(albumsById %d: no such album, id)}return alb, fmt.Errorf(albumsById %d: %v, id, err)}return alb, nil }然后我们在main函数中调用。 // 查询数据 albums, err : albumsByArtist(John Coltrane) if err ! nil {log.Fatal(err) } log.Printf(Albums found: %v\n, albums)alb, err : albumsById(2) if err ! nil {log.Fatal(err) } log.Printf(Album found: %v\n, alb)修改数据 我们来定义一个函数用来修改数据用id做为删选条件。 // 修改数据 func updateAlbumById(alb Album) (int64, error) {result, err : db.Exec(update album set title ?, artist ?, price ? where id ?, alb.Title, alb.Artist, alb.Price, alb.ID)if err ! nil {return 0, fmt.Errorf(updateAlbumById: %v, err)}rows, err : result.RowsAffected()if err ! nil {return 0, fmt.Errorf(updateAlbumById: %v, err)}return rows, nil }在main函数中调用它。 // 修改数据 updateRows, err : updateAlbumById(Album{ID: 1,Title: White teddy bear,Artist: John Thompsons,Price: 20.99, }) if err ! nil {log.Fatal(err) } log.Printf(Number of rows updated: %v\n, updateRows)插入数据 定义一个函数用来插入数据并且返回插入数据在数据库中的id。 // 插入记录 func addAlbum(alb Album) (int64, error) {result, err : db.Exec(insert into album (title, artist, price) values (?, ?, ?), alb.Title, alb.Artist, alb.Price)if err ! nil {return 0, fmt.Errorf(addAlbum: %v, err)}id, err : result.LastInsertId()if err ! nil {return 0, fmt.Errorf(addAlbum: %v, err)}return id, nil }在main函数中调用 // 插入数据 albId, err : addAlbum(Album{Title: The Modern Sound of Betty Carter,Artist: Betty Carter,Price: 49.99, }) if err ! nil {log.Fatal(err) } log.Printf(id of added alnum: %v\n, albId)删除数据 定义一个函数用来删除数据。 // 删除记录返回删除的行数 func deleteAlbum(id int64) (int64, error) {result, err : db.Exec(delete from album where id ?, id)if err ! nil {return 0, fmt.Errorf(deleteAlbum: %v, err)}rows, err : result.RowsAffected()if err ! nil {return 0, fmt.Errorf(deleteAlbum: %v, err)}return rows, nil }在main函数中调用 // 删除数据 deleteRows, err : deleteAlbum(albId) if err ! nil {log.Fatal(err) } log.Printf(Number of rows deleted: %v\n, deleteRows)释放资源 对于数据库的操作完成后需要释放数据库连接在main函数中输入以下代码释放资源。 // 释放资源 err db.Close() if err ! nil {log.Fatal(err) }完整代码 完整代码如下。 package mainimport (database/sqlerrorsfmtgithub.com/go-sql-driver/mysqllog )var db *sql.DB// Album 记录实体结构体 type Album struct {ID int64Title stringArtist stringPrice float32 }func (album Album) String() string {return fmt.Sprintf({ id: %d, title: %q, artist: %q, price: %.2f }, album.ID, album.Title, album.Artist, album.Price) }func main() {// 设置连接属性cfg : mysql.Config{User: root,Passwd: 123456,Net: tcp,Addr: 127.0.0.1:3306,DBName: recordings,}// 获取数据库句柄var err errordb, err sql.Open(mysql, cfg.FormatDSN())if err ! nil {log.Fatal(err)}// 测试是否连接成功pingErr : db.Ping()if pingErr ! nil {log.Fatal(pingErr)}log.Println(Connected!)// 查询数据albums, err : albumsByArtist(John Coltrane)if err ! nil {log.Fatal(err)}log.Printf(Albums found: %v\n, albums)alb, err : albumsById(2)if err ! nil {log.Fatal(err)}log.Printf(Album found: %v\n, alb)// 修改数据updateRows, err : updateAlbumById(Album{ID: 1,Title: White teddy bear,Artist: John Thompsons,Price: 20.99,})if err ! nil {log.Fatal(err)}log.Printf(Number of rows updated: %v\n, updateRows)// 插入数据albId, err : addAlbum(Album{Title: The Modern Sound of Betty Carter,Artist: Betty Carter,Price: 49.99,})if err ! nil {log.Fatal(err)}log.Printf(id of added alnum: %v\n, albId)// 删除数据deleteRows, err : deleteAlbum(albId)if err ! nil {log.Fatal(err)}log.Printf(Number of rows deleted: %v\n, deleteRows)// 释放资源err db.Close()if err ! nil {log.Fatal(err)} }// 通过人名查询记录 func albumsByArtist(name string) ([]Album, error) {var albums []Albumrows, err : db.Query(select * from album where artist ?, name)if err ! nil {return nil, fmt.Errorf(albumsByArtist %q: %v, name, err)}// 资源释放defer关键字修饰的语句在其下方语句未执行完成前不会执行defer rows.Close()// 循环获取相关值for rows.Next() {var alb Albumif err : rows.Scan(alb.ID, alb.Title, alb.Artist, alb.Price); err ! nil {return nil, fmt.Errorf(albumsByArtist %q: %v, name, err)}albums append(albums, alb)}if err : rows.Err(); err ! nil {return nil, fmt.Errorf(albumsByArtist %q: %v, name, err)}return albums, nil }// 通过ID查询记录 func albumsById(id int64) (Album, error) {var alb Albumrow : db.QueryRow(select * from album where id ?, id)if err : row.Scan(alb.ID, alb.Title, alb.Artist, alb.Price); err ! nil {if errors.Is(err, sql.ErrNoRows) {return alb, fmt.Errorf(albumsById %d: no such album, id)}return alb, fmt.Errorf(albumsById %d: %v, id, err)}return alb, nil }// 修改数据 func updateAlbumById(alb Album) (int64, error) {result, err : db.Exec(update album set title ?, artist ?, price ? where id ?, alb.Title, alb.Artist, alb.Price, alb.ID)if err ! nil {return 0, fmt.Errorf(updateAlbumById: %v, err)}rows, err : result.RowsAffected()if err ! nil {return 0, fmt.Errorf(updateAlbumById: %v, err)}return rows, nil }// 插入记录 func addAlbum(alb Album) (int64, error) {result, err : db.Exec(insert into album (title, artist, price) values (?, ?, ?), alb.Title, alb.Artist, alb.Price)if err ! nil {return 0, fmt.Errorf(addAlbum: %v, err)}id, err : result.LastInsertId()if err ! nil {return 0, fmt.Errorf(addAlbum: %v, err)}return id, nil }// 删除记录返回删除的行数 func deleteAlbum(id int64) (int64, error) {result, err : db.Exec(delete from album where id ?, id)if err ! nil {return 0, fmt.Errorf(deleteAlbum: %v, err)}rows, err : result.RowsAffected()if err ! nil {return 0, fmt.Errorf(deleteAlbum: %v, err)}return rows, nil }最终执行结果
http://www.hkea.cn/news/14448112/

相关文章:

  • 建设自己公司的网站如何做网站软件
  • 秦皇岛网站制作小程序开发在线排版设计
  • 辽宁沈阳做网站WordPress模板推荐国外
  • 公司网站cmswindows不能用wordpress
  • 视频解析网站如何做搜索爱装网
  • 如何搭建o2o网站产品分类 网站模板
  • 手机微信网站开发wordpress题目
  • 网站二次开发公司wordpress #
  • 网上花店网站建设规划书新余 网站建设
  • 丽水建设部门网站Wordpress文章和tag标签
  • wordpress主题破解网站网站设计模板中的页
  • 扬中零壹网站建设盐城城乡建设局网站
  • 购物网站制作实例中小企业网站建设多少钱
  • 泉州制作网站开发设计海报的软件
  • 郑州做网站汉狮河北手机网站制作哪家好
  • 重庆美邦 网站建设合肥网站设计机构
  • 淘宝上开做网站的店铺什么叫搭建平台
  • 深圳网站建设antnw以就业为导向的高职计算机专业网站设计
  • win7在局域网做网站支付宝wordpress api接口
  • wordpress 安全防范优化 网站访问速度
  • 手机微信一体网站建设wordpress增加文章404
  • 做cpc不做网站可以吗网站后台浏览器
  • 网站开发量计算山东莱州市建设局网站
  • 建网站大约得用多少钱简单的网站首页
  • 智能模板建站网站建设技术手段
  • 域名注册及网站建设百合居装饰公司
  • 开通自媒体账号的步骤网站快速排名优化报价
  • 网站投注建设cdn wordpress
  • 怎么检测网站是否安全国家企业年审营业执照官网
  • 会昌县城乡规划建设局网站网站优化定做