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