一直都不理解使用go语言的时候,为什么还要自己去装beego,以为使用go便可以解决所有的问题,结果在朋友的点拨下,才意识到:

go与beego的关系就好比是nodejs与thinkjs的关系,因此也就不怎么存在疑问为什么还要继续安装beego来完成项目运行了,beego其实就是一个快速开发Go应用的http框架,go 语言方面技术大牛,可以用来快速开发API、Web、后端服务等各种应用,是一个RESTFul的框架。再次附上beego的官网(http://beego.me/docs/intro/)

接着开始我们的数据库“增删改查”操作吧!

1.golang本身没有提供连接MySQL的驱动,但是定义了标准接口供第三方开发驱动。这里连接mysql可以使用第三方库,第三方库推荐使用https://github.com/Go-SQL-Driver/MySQL这个驱动,更新维护都比较好;先要下载驱动,在cmd中执行

go get github.com/go-sql-driver/mysql

2.创建测试数据库(我们一直在用的Navicat,就用它做例子)

CREATE DATABASE golang;
CREATE TABLE IF NOT EXISTS `golang`.`user` (
`userid` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户编号',
`username` VARCHAR(45) NOT NULL COMMENT '用户名称',
`userage` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户年龄',
`usersex` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户性别',
PRIMARY KEY (`userid`))
ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci
COMMENT = '用户表'

3.连接数据库:数据库连接使用datebase/sql Open函数进行连接

db, err := sql.Open("mysql", "user:password@tcp(localhost:5555)/dbname?charset=utf8")
其中连接参数可以有如下几种形式:
user@unix(/path/to/socket)/dbname?charset=utf8
user:password@tcp(localhost:5555)/dbname?charset=utf8
user:password@/dbname
user:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname

一般,大家都使用第二种。

4.在liteIDE中写程序,完整代码如下:

package main

import (
_ "crud/routers"
"database/sql"
"fmt" _ "github.com/go-sql-driver/mysql"
) func main() {
query()
} //增加数据
func insert() {
db, err := sql.Open("mysql", "root:root@/golang?charset=utf8")
checkErr(err) stmt, err := db.Prepare(`INSERT user (userid,username,userage,usersex) values (?,?,?,?)`)
checkErr(err)
res, err := stmt.Exec(1, "Mary", 20, 1)
checkErr(err)
id, err := res.LastInsertId()
checkErr(err)
fmt.Println(id)
} //删除数据
func remove() {
db, err := sql.Open("mysql", "root:root@/golang?charset=utf8")
checkErr(err) stmt, err := db.Prepare(`DELETE FROM user WHERE userid=?`)
checkErr(err)
res, err := stmt.Exec(1)
checkErr(err)
num, err := res.RowsAffected()
checkErr(err)
fmt.Println(num)
} //更新数据
func update() {
db, err := sql.Open("mysql", "root:root@/golang?charset=utf8")
checkErr(err) stmt, err := db.Prepare(`UPDATE user SET userage=?,usersex=? WHERE userid=?`)
checkErr(err)
res, err := stmt.Exec(21, 2, 2)
checkErr(err)
num, err := res.RowsAffected()
checkErr(err)
fmt.Println(num)
} //查询数据
func query() {
db, err := sql.Open("mysql", "root:root@/golang?charset=utf8")
checkErr(err) rows, err := db.Query("SELECT * FROM user")
checkErr(err) // //普通demo
for rows.Next() {
var userid int
var username string
var userage int
var usersex int rows.Columns()
err = rows.Scan(&userid, &username, &userage, &usersex)
checkErr(err) fmt.Println(userid)
fmt.Println(username)
fmt.Println(userage)
fmt.Println(usersex)
}
}
func checkErr(err error) {
if err != nil {
panic(err)
} }

于是就在这个表里进行增删改查了……

我并没有使用beego中的orm框架,是因为刚开始在看的时候忽略了orm。。。。。。。有点小疏忽,,,明天再研究。

go——beego的数据库增删改查的更多相关文章

  1. Yii2.0高级框架数据库增删改查的一些操作(转)

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  2. 2. MongoDB基本操作 —— 用Mongo.exe操作数据库增删改查

    一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...

  3. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

  4. Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  5. WindowsPhone8 数据库增删改查

    今天第一次在博客园发表文章,如果有的地方写的不对,还请大家指出! 1.这就是一个简单wp8数据库增删改查 1.创建数据表Person [Table] public class Person : INo ...

  6. MVC——数据库增删改查(Razor)——Html语法

    一.显示界面 .Models(模板) private MyDBDataContext _context = new MyDBDataContext(); public List<Info> ...

  7. MVC——数据库增删改查(Razor)

    一.显示信息 .Models(模板) private MyDBDataContext _context = new MyDBDataContext(); //定义一个变量取出所有数据 public L ...

  8. MVC——数据库增删改查(aspx)

    MVC: V(View) :视图→就是页面的模板 C(Control): 控制器→客户主要面对的就是控制器, M(Model):模板→在模板里面主要就是写关于数据库的各种增删改查的方法 它们之间的关系 ...

  9. Android(java)学习笔记193:利用谷歌API对数据库增删改查(推荐使用)

    接下来我们通过项目案例来介绍:这个利用谷歌API对数据库增删改查 1.首先项目图: 2.这里的布局文件activity_main.xml: <LinearLayout xmlns:android ...

随机推荐

  1. CUBRID学习笔记17 事务的回滚

    语法:ROLLBACK [ WORK ] 下面的语句会报错 ALTER TABLE code DROP s_name; INSERT INTO code (s_name, f_name) VALUES ...

  2. Android——例子:屏幕切换

    效果图如下:                          Xml文件代码: <?xml version="1.0" encoding="utf-8" ...

  3. SqlServer 一些操作

    //查询一个表中的某字段为条件修改另一个表的内容 update [VehicleInsuranceAgentConfiguration] set Keyword2=PC.ServerConfig fr ...

  4. T-SQL Apply的用法

    SQL Server 2005 新增 cross apply 和 outer apply 联接语句,增加这两个东东有啥作用呢? 我们知道有个 SQL Server 2000 中有个 cross joi ...

  5. Java、fileless恶意软件威胁桌面安全

    工作原理:用户访问一个受侵的网站,不小心下载了最新类型的恶意软件.如果你的杀毒软件运行良好的话,就会阻止下载,至少能够检测到并隔离硬盘上的入侵文件.但是如果硬盘上没有文件监测呢?如果恶意软件只入侵内存 ...

  6. SAP接口编程 之 JCo3.0系列(01):JCoDestination

    SAP接口编程 之 JCo3.0系列(01):JCoDestination 字数2101 阅读103 评论0 喜欢0 JCo3.0是Java语言与ABAP语言双向通讯的中间件.与之前1.0/2.0相比 ...

  7. CentOS的包/库的找的地方

    1. http://pkgs.org/ 在这个网站里面 搜索相应的 包名,看能不能找到. 2. http://rpm.pbone.net/ 在这个网站里面 搜索相应的 包名,看能不能找到. 3.

  8. curl的简单使用

    <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { ...

  9. CnPlugin 1.5.400

    本软件CnPlugin是PL/SQL Developer工具插件,支持PL/SQL Developer 7.0以上版本.增加了PL/SQL Developer工具本身所没有的一些小功能,功能基本一些已 ...

  10. (一)S5PV210开发板常用易忘操作记录

    一.调试串口 2.SD卡槽 (三)启动方式选择 蜂鸣器下面的白色2针插座(图中红色线圈出来的那个)为选择USB/SD卡启动的开关.默认情况下为SD卡启动,如果需要USB启动则使用短路帽(若没有短路帽, ...