package main
import (
"database/sql"
"fmt"
_ "github.com/mysql"
)
type User
struct {
ID
int
Username
string
Password
string
Email
string
}
func (user
*User
) AddUser() error {
Db
, err
:= sql
.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
if err
!= nil {
panic(err
)
}
defer Db
.Close()
sqlStr
:= "insert into users(username , password , email) values(?,?,?)"
stmt
, err
:= Db
.Prepare(sqlStr
)
if err
!= nil {
fmt
.Println("预编译出现异常:", err
)
return err
}
_, erro
:= stmt
.Exec(user
.Username
, user
.Password
, user
.Email
)
if erro
!= nil {
fmt
.Println("执行出现异常:", erro
)
return erro
}
return nil
}
func (user
*User
) AddUser2() error {
Db
, err
:= sql
.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
if err
!= nil {
panic(err
)
}
defer Db
.Close()
sqlStr
:= "insert into users(username , password , email) values(?,?,?)"
_, erro
:= Db
.Exec(sqlStr
, user
.Username
, user
.Password
, user
.Email
)
if erro
!= nil {
fmt
.Println("执行出现异常:", erro
)
return erro
}
return nil
}
func (user
*User
) DelUser() error {
Db
, err
:= sql
.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
if err
!= nil {
panic(err
)
}
defer Db
.Close()
sqlStr
:= "delete from users where username = ?"
_, erro
:= Db
.Exec(sqlStr
, user
.Username
)
if erro
!= nil {
fmt
.Println("执行出现异常:", erro
)
return erro
}
return nil
}
func (user
*User
) ModUser(name
string) error {
Db
, err
:= sql
.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
if err
!= nil {
panic(err
)
}
defer Db
.Close()
sqlStr
:= "update users set username = ? where username = ?"
_, erro
:= Db
.Exec(sqlStr
, name
, user
.Username
)
if erro
!= nil {
fmt
.Println("执行出现异常:", erro
)
return erro
}
return nil
}
func (user
*User
) GetUserByID() (*User
, error) {
Db
, err
:= sql
.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
if err
!= nil {
panic(err
)
}
defer Db
.Close()
sqlStr
:= "select id,username,password,email from users where id = ?"
row
:= Db
.QueryRow(sqlStr
, user
.ID
)
var id
int
var username
string
var password
string
var email
string
err
= row
.Scan(&id
, &username
, &password
, &email
)
if err
!= nil {
return nil, err
}
u
:= &User
{
ID
: id
,
Username
: username
,
Password
: password
,
Email
: email
,
}
return u
, nil
}
func (user
*User
) GetUsers() ([]*User
, error) {
Db
, err
:= sql
.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
if err
!= nil {
panic(err
)
}
defer Db
.Close()
sqlStr
:= "select id,username,password,email from users"
rows
, err
:= Db
.Query(sqlStr
)
if err
!= nil {
return nil, err
}
var users
[]*User
for rows
.Next() {
var id
int
var username
string
var password
string
var email
string
err
:= rows
.Scan(&id
, &username
, &password
, &email
)
if err
!= nil {
return nil, err
}
u
:= &User
{
ID
: id
,
Username
: username
,
Password
: password
,
Email
: email
,
}
users
= append(users
, u
)
}
return users
, nil
}
func main() {
user
:= User
{
ID
: 1,
Username
: "qxwe",
Password
: "123",
Email
: "rjpewr@163.com" ,
}
var userp
*User
userp
,err
:= user
.GetUserByID()
if err
!= nil {
return
}
fmt
.Println(userp
)
var mu
[]*User
mu
,err
= user
.GetUsers()
if err
!= nil {
return
}
for _, v
:=range mu
{
fmt
.Println(v
)
}
}
转载请注明原文地址: https://lol.8miu.com/read-25412.html