14 changed files with 790 additions and 18 deletions
@ -0,0 +1,15 @@ |
|||||
|
{ |
||||
|
// 使用 IntelliSense 了解相关属性。 |
||||
|
// 悬停以查看现有属性的描述。 |
||||
|
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 |
||||
|
"version": "0.2.0", |
||||
|
"configurations": [{ |
||||
|
"name": "Launch", |
||||
|
"type": "go", |
||||
|
"request": "launch", |
||||
|
"mode": "auto", |
||||
|
"program": "${fileDirname}/../main.go", |
||||
|
"env": {}, |
||||
|
"args": [] |
||||
|
}] |
||||
|
} |
Binary file not shown.
@ -0,0 +1,93 @@ |
|||||
|
package db |
||||
|
|
||||
|
import ( |
||||
|
_"github.com/go-sql-driver/mysql" |
||||
|
"database/sql" |
||||
|
"fmt" |
||||
|
"strings" |
||||
|
) |
||||
|
// 教程
|
||||
|
// https://www.jianshu.com/p/ee87e989f149
|
||||
|
//数据库配置
|
||||
|
const ( |
||||
|
userName = "go_test" |
||||
|
password = "R4MSD57Gmr42CRTw" |
||||
|
ip = "27.102.70.190" |
||||
|
port = "3306" |
||||
|
dbName = "go_test" |
||||
|
) |
||||
|
//Db数据库连接池
|
||||
|
var DB *sql.DB |
||||
|
|
||||
|
//注意方法名大写,就是public
|
||||
|
func InitDB() bool { |
||||
|
//构建连接:"用户名:密码@tcp(IP:端口)/数据库?charset=utf8"
|
||||
|
path := strings.Join([]string{userName, ":", password, "@tcp(",ip, ":", port, ")/", dbName, "?charset=utf8"}, "") |
||||
|
|
||||
|
//打开数据库,前者是驱动名,所以要导入: _ "github.com/go-sql-driver/mysql"
|
||||
|
DB, _ = sql.Open("mysql", path) |
||||
|
//设置数据库最大连接数
|
||||
|
DB.SetConnMaxLifetime(100) |
||||
|
//设置上数据库最大闲置连接数
|
||||
|
DB.SetMaxIdleConns(10) |
||||
|
//验证连接
|
||||
|
if err := DB.Ping(); err != nil{ |
||||
|
fmt.Println("opon database fail",err) |
||||
|
return false |
||||
|
} |
||||
|
fmt.Println("connnect success") |
||||
|
return true |
||||
|
} |
||||
|
|
||||
|
type User struct { |
||||
|
Id int |
||||
|
UserName string |
||||
|
Password string |
||||
|
} |
||||
|
|
||||
|
func InsertUser(user User) (bool){ |
||||
|
//开启事务
|
||||
|
tx, err := DB.Begin() |
||||
|
if err != nil{ |
||||
|
fmt.Println("tx fail") |
||||
|
return false |
||||
|
} |
||||
|
//准备sql语句
|
||||
|
stmt, err := tx.Prepare("INSERT INTO nk_user (`name`, `password`) VALUES (?, ?)") |
||||
|
if err != nil{ |
||||
|
fmt.Println("Prepare fail") |
||||
|
return false |
||||
|
} |
||||
|
//将参数传递到sql语句中并且执行
|
||||
|
res, err := stmt.Exec(user.UserName, user.Password) |
||||
|
if err != nil{ |
||||
|
fmt.Println("Exec fail") |
||||
|
return false |
||||
|
} |
||||
|
//将事务提交
|
||||
|
tx.Commit() |
||||
|
//获得上一个插入自增的id
|
||||
|
fmt.Println(res.LastInsertId()) |
||||
|
return true |
||||
|
} |
||||
|
|
||||
|
func SelectAllUser() ([]User) { |
||||
|
//执行查询语句
|
||||
|
rows, err := DB.Query("SELECT * from nk_user") |
||||
|
if err != nil{ |
||||
|
fmt.Println("查询出错了") |
||||
|
} |
||||
|
var users []User |
||||
|
//循环读取结果
|
||||
|
for rows.Next(){ |
||||
|
var user User |
||||
|
//将每一行的结果都赋值到一个user对象中
|
||||
|
err := rows.Scan(&user.Id, &user.UserName, &user.Password) |
||||
|
if err != nil { |
||||
|
fmt.Println("rows fail") |
||||
|
} |
||||
|
//将user追加到users的这个数组中
|
||||
|
users = append(users, user) |
||||
|
} |
||||
|
return users |
||||
|
} |
@ -0,0 +1,80 @@ |
|||||
|
// 包名
|
||||
|
package main |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
"io/ioutil" |
||||
|
"encoding/json" |
||||
|
"./path" |
||||
|
"./runtime" |
||||
|
"time" |
||||
|
"./pk10" |
||||
|
"./db" |
||||
|
) |
||||
|
|
||||
|
func readJSON(file string) []map[string][]interface{} { |
||||
|
log := fmt.Println |
||||
|
jsondata, _ := ioutil.ReadFile(file) |
||||
|
var user []map[string][]interface{} |
||||
|
err := json.Unmarshal(jsondata, &user) |
||||
|
if err != nil { |
||||
|
log(err) |
||||
|
return nil |
||||
|
} |
||||
|
return user |
||||
|
} |
||||
|
// https://studygolang.com/pkgdoc
|
||||
|
func main() { |
||||
|
log := fmt.Println |
||||
|
pk10.Log() |
||||
|
var isConnect bool= db.InitDB() |
||||
|
if isConnect { |
||||
|
// define a user data
|
||||
|
var user db.User |
||||
|
user.UserName="dsad" |
||||
|
user.Password="123" |
||||
|
// insert user data
|
||||
|
runtime.Time("插入一个User数据",func () { |
||||
|
db.InsertUser(user) |
||||
|
}) |
||||
|
log("fuck") |
||||
|
var allUsers []db.User |
||||
|
runtime.Time("查询所有用户",func () { |
||||
|
allUsers = db.SelectAllUser() |
||||
|
}) |
||||
|
// 这么取出结构体的值
|
||||
|
log(allUsers[0].Id) |
||||
|
return |
||||
|
}else { |
||||
|
log("数据库未连接,其实不用这么判断,但是任性") |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
//we are test now
|
||||
|
// pk10.Init()
|
||||
|
var allArray []map[string][]interface{} |
||||
|
runtime.Time("加载JSON数据",func () { |
||||
|
var parhArray = path.Output(".\\data") |
||||
|
for _, filePath := range parhArray { |
||||
|
str := path.Abs("./"+filePath) |
||||
|
log("正在读取:",str) |
||||
|
oneData := readJSON(str) |
||||
|
if oneData != nil { |
||||
|
for _, item := range oneData { |
||||
|
allArray = append(allArray,item) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
log("长度: ", len(allArray)) |
||||
|
runtime.Time("遍历所有的数据",func () { |
||||
|
sum := 0 |
||||
|
for _, item := range allArray { |
||||
|
if item!=nil { |
||||
|
sum++ |
||||
|
} |
||||
|
time.Sleep(2) |
||||
|
} |
||||
|
log("长度: ", sum) |
||||
|
}) |
||||
|
}) |
||||
|
} |
@ -0,0 +1,49 @@ |
|||||
|
package main |
||||
|
import ( |
||||
|
"fmt" |
||||
|
"io/ioutil" |
||||
|
"encoding/json" |
||||
|
"../path" |
||||
|
"time" |
||||
|
) |
||||
|
|
||||
|
func readJSON(file string) []map[string][]interface{} { |
||||
|
log := fmt.Println |
||||
|
jsondata, _ := ioutil.ReadFile(file) |
||||
|
var user []map[string][]interface{} |
||||
|
err := json.Unmarshal(jsondata, &user) |
||||
|
if err != nil { |
||||
|
log(err) |
||||
|
return nil |
||||
|
} |
||||
|
return user |
||||
|
} |
||||
|
func main() { |
||||
|
t1 := time.Now() |
||||
|
var allArray []map[string][]interface{} |
||||
|
var parhArray = path.Output(".\\data") |
||||
|
for _, filePath := range parhArray { |
||||
|
str := path.Abs("./"+filePath) |
||||
|
fmt.Println("正在读取:",str) |
||||
|
oneData := readJSON(str) |
||||
|
if oneData != nil { |
||||
|
for _, item := range oneData { |
||||
|
allArray = append(allArray,item) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
runAllt := time.Now() |
||||
|
sum := 0 |
||||
|
for _, item := range allArray { |
||||
|
if item!=nil { |
||||
|
sum++ |
||||
|
} |
||||
|
} |
||||
|
fmt.Println("长度: ", sum) |
||||
|
runAll := time.Since(runAllt) |
||||
|
fmt.Println("该程序运行的时长: ", runAll) |
||||
|
|
||||
|
fmt.Println(allArray[0]) |
||||
|
elapsed := time.Since(t1) |
||||
|
fmt.Println("该程序运行的时长: ", elapsed) |
||||
|
} |
@ -0,0 +1 @@ |
|||||
|
用作demo程序展示,不做任何用途 |
Binary file not shown.
@ -0,0 +1,202 @@ |
|||||
|
package pk10 |
||||
|
|
||||
|
import ( |
||||
|
"fmt" |
||||
|
) |
||||
|
|
||||
|
func Log() { |
||||
|
fmt.Println("dsa") |
||||
|
} |
||||
|
|
||||
|
/*作为包被导入时会自动自行的函数*/ |
||||
|
func init() { |
||||
|
keys = [][]int{ |
||||
|
// 第一球:
|
||||
|
// 单双
|
||||
|
[]int{1,2}, |
||||
|
// 大小
|
||||
|
[]int{3,4}, |
||||
|
// 龙虎
|
||||
|
[]int{5,6}, |
||||
|
|
||||
|
// 第二球:
|
||||
|
// 单双
|
||||
|
[]int{7,8}, |
||||
|
// 大小
|
||||
|
[]int{9,10}, |
||||
|
// 龙虎
|
||||
|
[]int{11,12}, |
||||
|
|
||||
|
// 第三球:
|
||||
|
// 单双
|
||||
|
[]int{13,14}, |
||||
|
// 大小
|
||||
|
[]int{15,16}, |
||||
|
// 龙虎
|
||||
|
[]int{17,18}, |
||||
|
|
||||
|
// 第四球:
|
||||
|
// 单双
|
||||
|
[]int{19,20}, |
||||
|
// 大小
|
||||
|
[]int{21,22}, |
||||
|
// 龙虎
|
||||
|
[]int{23,24}, |
||||
|
|
||||
|
// 第五球:
|
||||
|
// 单双
|
||||
|
[]int{25,26}, |
||||
|
// 大小
|
||||
|
[]int{27,28}, |
||||
|
// 龙虎
|
||||
|
[]int{29,30}, |
||||
|
|
||||
|
// 第六球:
|
||||
|
// 单双
|
||||
|
[]int{31,32}, |
||||
|
// 大小
|
||||
|
[]int{33,34}, |
||||
|
|
||||
|
// 第七球:
|
||||
|
// 单双
|
||||
|
[]int{35,36}, |
||||
|
// 大小
|
||||
|
[]int{37,38}, |
||||
|
|
||||
|
// 第八球:
|
||||
|
// 单双
|
||||
|
[]int{39,40}, |
||||
|
// 大小
|
||||
|
[]int{41,42}, |
||||
|
|
||||
|
// 第九球:
|
||||
|
// 单双
|
||||
|
[]int{43,44}, |
||||
|
// 大小
|
||||
|
[]int{45,46}, |
||||
|
|
||||
|
// 第十球:
|
||||
|
// 单双
|
||||
|
[]int{47,48}, |
||||
|
// 大小
|
||||
|
[]int{49,50}, |
||||
|
|
||||
|
// 冠亚和单双
|
||||
|
[]int{51, 52}, |
||||
|
// 冠亚和大小
|
||||
|
[]int{53, 54}, |
||||
|
g(55,17), |
||||
|
g(100,10), |
||||
|
g(110,10), |
||||
|
g(120,10), |
||||
|
g(130,10), |
||||
|
g(140,10), |
||||
|
g(150,10), |
||||
|
g(160,10), |
||||
|
g(170,10), |
||||
|
g(180,10), |
||||
|
g(190,10)} |
||||
|
money = [][]int{ |
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
s(0,17), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10)} |
||||
|
bate = [][]int{ |
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
|
||||
|
s(0,2), |
||||
|
s(0,2), |
||||
|
s(0,17), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10), |
||||
|
s(0,10)} |
||||
|
fmt.Println(len(keys)) |
||||
|
fmt.Println(len(money)) |
||||
|
fmt.Println(len(bate)) |
||||
|
|
||||
|
fmt.Println(bate) |
||||
|
} |
@ -0,0 +1,7 @@ |
|||||
|
package pk10 |
||||
|
|
||||
|
type User struct { |
||||
|
id int |
||||
|
UserName string |
||||
|
Password string |
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
package pk10 |
||||
|
|
||||
|
|
||||
|
var keys [][]int |
||||
|
var money [][]int |
||||
|
var bate [][]int |
||||
|
|
||||
|
func g(start int,hl int) []int { |
||||
|
var val = []int{} |
||||
|
for i := start; i < start+hl; i++ { |
||||
|
val=append(val,i) |
||||
|
} |
||||
|
return val |
||||
|
} |
||||
|
|
||||
|
func s(start int,hl int) []int { |
||||
|
var val = []int{} |
||||
|
for i := start; i < start+hl; i++ { |
||||
|
val=append(val,start) |
||||
|
} |
||||
|
return val |
||||
|
} |
@ -0,0 +1,14 @@ |
|||||
|
package runtime |
||||
|
|
||||
|
import ( |
||||
|
"time" |
||||
|
"fmt" |
||||
|
) |
||||
|
|
||||
|
func Time(name string,runFun func()) interface{} { |
||||
|
runAllt := time.Now() |
||||
|
runFun() |
||||
|
runAll := time.Since(runAllt) |
||||
|
fmt.Println(name,"运行时长: ", runAll) |
||||
|
return nil |
||||
|
} |
Loading…
Reference in new issue