engineplus.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package xorm
  2. import (
  3. "encoding/json"
  4. )
  5. func (engine *Engine) SqlMapClient(sqlTagName string, args ...interface{}) *Session {
  6. session := engine.NewSession()
  7. session.IsAutoClose = true
  8. return session.Sql(engine.SqlMap.Sql[sqlTagName], args...)
  9. }
  10. func (engine *Engine) SqlTemplateClient(sqlTagName string, args ...interface{}) *Session {
  11. session := engine.NewSession()
  12. session.IsAutoClose = true
  13. map1 := args[0].(map[string]interface{})
  14. if engine.SqlTemplate.Template[sqlTagName] == nil {
  15. return session.Sql("", &map1)
  16. }
  17. sql, err := engine.SqlTemplate.Template[sqlTagName].Execute(map1)
  18. if err != nil {
  19. engine.logger.Error(err)
  20. }
  21. return session.Sql(sql, &map1)
  22. }
  23. // Get retrieve one record from table, bean's non-empty fields
  24. // are conditions
  25. func (engine *Engine) GetFirst(bean interface{}) ResultBean {
  26. session := engine.NewSession()
  27. defer session.Close()
  28. return session.GetFirst(bean)
  29. }
  30. // Exec a raw sql and return records as []map[string]interface{}
  31. func (engine *Engine) QueryAll(sql string, paramStr ...interface{}) (resultsSlice []map[string]interface{}, err error) {
  32. session := engine.NewSession()
  33. defer session.Close()
  34. return session.queryAll(sql, paramStr...)
  35. }
  36. // Exec a raw sql and return records as []map[string]interface{}
  37. func (engine *Engine) QueryAllByMap(sql string, paramMap interface{}) (resultsSlice []map[string]interface{}, err error) {
  38. session := engine.NewSession()
  39. defer session.Close()
  40. return session.queryAllByMap(sql, paramMap)
  41. }
  42. func JSONString(v interface{}, IndentJSON bool) (string, error) {
  43. var result []byte
  44. var err error
  45. if IndentJSON {
  46. result, err = json.MarshalIndent(v, "", " ")
  47. } else {
  48. result, err = json.Marshal(v)
  49. }
  50. if err != nil {
  51. return "", err
  52. }
  53. if string(result) == "null" {
  54. return "", nil
  55. }
  56. return string(result), nil
  57. }