连接MySQL
要先建立orm数据库。
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql" //引入mysql驱动
"github.com/jinzhu/gorm"
)
type Person struct {
Id int //序号
Name string //姓名
Age int //年龄
Sex string //性别
}
func main() {
db, err := gorm.Open("mysql", "root:root@(127.0.0.1:3306)/orm?charset=utf8")
if err != nil {
fmt.Println("数据库连接失败", err.Error())
}
defer db.Close() //使用后关闭
}
增
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql" //引入mysql驱动
"github.com/jinzhu/gorm"
)
type Person struct {
Id int //序号
Name string //姓名
Age int //年龄
Sex string //性别
}
func main() {
db, err := gorm.Open("mysql", "root:root@(127.0.0.1:3306)/orm?charset=utf8")
if err != nil {
fmt.Println("数据库连接失败", err.Error())
}
defer db.Close() //使用后关闭
db.AutoMigrate(&Person{}) //自动迁移,保持表是最新的
user1 := Person{1, "小明", 8, "男"} //实例化Person结构体,user1是一个对象
user2 := Person{2, "小红", 88, "女"}
user3 := Person{3, "小华", 888, "人妖"}
db.Create(&user1) //插入数据
db.Create(&user2)
db.Create(&user3)
}
查
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql" //引入mysql驱动
"github.com/jinzhu/gorm"
)
type Person struct {
Id int //序号
Name string //姓名
Age int //年龄
Sex string //性别
}
func main() {
db, err := gorm.Open("mysql", "root:root@(127.0.0.1:3306)/orm?charset=utf8")
if err != nil {
fmt.Println("数据库连接失败", err.Error())
}
defer db.Close() //使用后关闭
db.AutoMigrate(&Person{}) //自动迁移,保持表是最新的
// user1 := Person{1, "小明", 8, "男"} //实例化Person结构体,user1是一个对象
// user2 := Person{2, "小红", 88, "女"}
// user3 := Person{3, "小华", 888, "人妖"}
//增
// db.Create(&user1)
// db.Create(&user2)
// db.Create(&user3)
//查
var u1 Person
db.Find(&u1, "name=?", "小红") //name=小红的记录
fmt.Println(u1)
}
改
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql" //引入mysql驱动
"github.com/jinzhu/gorm"
)
type Person struct {
Id int //序号
Name string //姓名
Age int //年龄
Sex string //性别
}
func main() {
db, err := gorm.Open("mysql", "root:root@(127.0.0.1:3306)/orm?charset=utf8")
if err != nil {
fmt.Println("数据库连接失败", err.Error())
}
defer db.Close() //使用后关闭
db.AutoMigrate(&Person{}) //自动迁移,保持表是最新的
// user1 := Person{1, "小明", 8, "男"} //实例化Person结构体,user1是一个对象
// user2 := Person{2, "小红", 88, "女"}
// user3 := Person{3, "小华", 888, "人妖"}
//增
// db.Create(&user1)
// db.Create(&user2)
// db.Create(&user3)
// db.Table("test").Create(&Person{}) //不插入数据,自定义表名为test
//查
// var u1 Person
// db.Find(&u1, "name=?", "小红") //name=小红的记录
// fmt.Println(u1)
//改
db.Table("people").Where("id=?", 1).Update("name", "小明") //从people表查询id=1的记录,把name改成小明
}
删
package main
import (
"fmt"
_ "github.com/go-sql-driver/mysql" //引入mysql驱动
"github.com/jinzhu/gorm"
)
type Person struct {
Id int //序号
Name string //姓名
Age int //年龄
Sex string //性别
}
func main() {
db, err := gorm.Open("mysql", "root:root@(127.0.0.1:3306)/orm?charset=utf8")
if err != nil {
fmt.Println("数据库连接失败", err.Error())
}
defer db.Close() //使用后关闭
db.AutoMigrate(&Person{}) //自动迁移,保持表是最新的
// user1 := Person{1, "小明", 8, "男"} //实例化Person结构体,user1是一个对象
// user2 := Person{2, "小红", 88, "女"}
// user3 := Person{3, "小华", 888, "人妖"}
//增
// db.Create(&user1)
// db.Create(&user2)
// db.Create(&user3)
// db.Table("test").Create(&Person{}) //不插入数据,自定义表名为test
//查
// var u1 Person
// db.Find(&u1, "name=?", "小红") //name=小红的记录
// fmt.Println(u1)
//改
// db.Table("people").Where("id=?", 1).Update("name", "小明") //从people表查询id=1的记录,把name改成小明
//删
db.Table("people").Where("id=?", 1).Delete(Person{}) //从people表中,删除id=1的记录
}