engineplus.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. func JSONString(v interface{}, IndentJSON bool) (string, error) {
  31. var result []byte
  32. var err error
  33. if IndentJSON {
  34. result, err = json.MarshalIndent(v, "", " ")
  35. } else {
  36. result, err = json.Marshal(v)
  37. }
  38. if err != nil {
  39. return "", err
  40. }
  41. if string(result) == "null" {
  42. return "", nil
  43. }
  44. return string(result), nil
  45. }