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  }