github.com/Bio-core/jtree@v0.0.0-20190705165106-1d7a7e7d6272/database/database.go (about) 1 package database 2 3 import ( 4 5 // SQL driver for mysql 6 7 //Need this for the other one below 8 _ "github.com/go-sql-driver/mysql" 9 sqlx "github.com/jmoiron/sqlx" 10 ) 11 12 var databaseName string 13 var connectionString string 14 var joinMap map[string]map[string]string 15 16 var err error 17 18 //DBSelect is the database reference for selects 19 var DBSelect *sqlx.DB 20 21 //DBUpdate is the database reference for updates 22 var DBUpdate *sqlx.DB 23 24 //Init creates a connection to the database 25 func Init(dbName, connectionstring string, DB *sqlx.DB) *sqlx.DB { 26 databaseName = dbName 27 connectionString = connectionstring 28 DB, err = sqlx.Connect(databaseName, connectionString) 29 if err != nil { 30 panic(err) 31 } 32 DB.SetMaxOpenConns(100) 33 makeJoinMap() 34 return DB 35 } 36 37 func makeJoinMap() { 38 joinMap = make(map[string]map[string]string, 5) 39 //Patient 40 patientMap := make(map[string]string, 1) 41 patientMap["samples"] = "patient_id" 42 joinMap["patients"] = patientMap 43 //Sample 44 sampleMap := make(map[string]string, 2) 45 sampleMap["experiments"] = "sample_id" 46 sampleMap["patients"] = "patient_id" 47 joinMap["samples"] = sampleMap 48 //Experiment 49 experimentMap := make(map[string]string, 2) 50 experimentMap["samples"] = "sample_id" 51 experimentMap["results"] = "experiment_id" 52 joinMap["experiments"] = experimentMap 53 //Results 54 resultMap := make(map[string]string, 2) 55 resultMap["experiments"] = "experiment_id" 56 resultMap["resultdetails"] = "results_id" 57 joinMap["results"] = resultMap 58 //ResultDetails 59 resultdetailsMap := make(map[string]string, 1) 60 resultdetailsMap["results"] = "results_id" 61 joinMap["resultdetails"] = resultdetailsMap 62 }