{{.ArticleContent}}
{{range .slice}}
{{$.ArticleContent}}
{{end}}
定义变量
模板的参数可以是go中的基本数据类型,如字串,数字,布尔值,数组切片或者一个结构体。在模板中设置变量可以使用 $variable := value。我们在range迭代的过程使用了设置变量的方式。
{{$article := "hello"}}
{{$name := .Name}}
mysql 使用
这里只简单讲了数据的增删改查,所以测试代码前,需要先把数据库准备好。
先创建一个数据库,指定了编码,这样应该可以支持中文:
CREATE DATABASE 库名 CHARSET "utf8";
然后建2张表:
CREATE TABLE person (
user_id int primary key auto_increment,
username varchar(260),
gender varchar(260),
email varchar(260)
);
CREATE TABLE place (
country varchar(200),
city varchar(200),
telcode int
);
导入数据库驱动
sql 包提供了通用的SQL(或类SQL)数据库接口。
sql 包必须与数据库驱动结合使用。
驱动包需要安装:
go get -u github.com/go-sql-driver/mysql
使用前,先要导入mysql的包:
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
上面导入了2个包。第一个是sql包,就是我们调用操作数据库用的。
第二个是驱动包,这里前面加了占位符,所以这个包只是引入,但是不使用它。并且如果要操作别的数据库的话,只需要修改驱动包就行了。
连接数据库
构建连接, 格式是:”用户名:密码@tcp(IP:端口)/数据库?charset=utf8” :
package main
import (
"fmt"
"time"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
var DB *sql.DB
func init() {
database, err := sql.Open("mysql", "admin:admin123@tcp(192.168.3.103:3306)/Golang_week10")
if err != nil {
fmt.Println("连接数据库失败:", err)
return
}
DB = database
}
func main() {
fmt.Println(DB)
DB.SetMaxIdleConns(16) //设置闲置连接数
DB.SetMaxOpenConns(100) //设置最大连接数
DB.SetConnMaxLifetime(100*time.Second) //最大连接周期,超过时间的连接就close
fmt.Println(DB)
}
插入数据
下面是插入数据,并且再获取id的示例:
// 数据库连接的init函数就省略了
func insert() {
r, err := DB.Exec("insert into person(username,gender,email) values(?,?,?)", "Barry", "Male", "Barry@go.net")
if err != nil {
fmt.Println("插入数据ERROR:", err)
return
}
fmt.Println(r)
id, err := r.LastInsertId()
if err != nil {
fmt.Println("获取id ERROR:", err)
return
}
fmt.Println(id)
}
func main() {
insert()
}









