engineplus.go 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package xorm
  2. import (
  3. "encoding/json"
  4. )
  5. func (engine *Engine) SetSqlMapRootDir(sqlMapRootDir string) *Engine {
  6. engine.sqlMap.SqlMapRootDir = sqlMapRootDir
  7. return engine
  8. }
  9. func (engine *Engine) SetSqlTemplateRootDir(sqlTemplateRootDir string) *Engine {
  10. engine.sqlTemplate.SqlTemplateRootDir = sqlTemplateRootDir
  11. return engine
  12. }
  13. func (engine *Engine) SqlMapClient(sqlTagName string, args ...interface{}) *Session {
  14. session := engine.NewSession()
  15. session.IsAutoClose = true
  16. session.IsSqlFuc = true
  17. return session.Sql(engine.sqlMap.Sql[sqlTagName], args...)
  18. }
  19. func (engine *Engine) SqlTemplateClient(sqlTagName string, args ...interface{}) *Session {
  20. session := engine.NewSession()
  21. session.IsAutoClose = true
  22. session.IsSqlFuc = true
  23. return session.SqlTemplateClient(sqlTagName, args...)
  24. }
  25. func (engine *Engine) Search(beans interface{}, condiBeans ...interface{}) *ResultStructs {
  26. session := engine.NewSession()
  27. defer session.Close()
  28. return session.Search(beans, condiBeans...)
  29. }
  30. // Get retrieve one record from table, bean's non-empty fields
  31. // are conditions
  32. func (engine *Engine) GetFirst(bean interface{}) *ResultBean {
  33. session := engine.NewSession()
  34. defer session.Close()
  35. return session.GetFirst(bean)
  36. }
  37. func JSONString(v interface{}, IndentJSON bool) (string, error) {
  38. var result []byte
  39. var err error
  40. if IndentJSON {
  41. result, err = json.MarshalIndent(v, "", " ")
  42. } else {
  43. result, err = json.Marshal(v)
  44. }
  45. if err != nil {
  46. return "", err
  47. }
  48. if string(result) == "null" {
  49. return "", nil
  50. }
  51. return string(result), nil
  52. }
  53. func (engine *Engine) Sqls(sqls interface{}, parmas ...interface{}) *SqlsExecutor {
  54. session := engine.NewSession()
  55. session.IsAutoClose = true
  56. session.IsSqlFuc = true
  57. return session.Sqls(sqls, parmas...)
  58. }
  59. func (engine *Engine) SqlMapsClient(sqlkeys interface{}, parmas ...interface{}) *SqlMapsExecutor {
  60. session := engine.NewSession()
  61. session.IsAutoClose = true
  62. session.IsSqlFuc = true
  63. return session.SqlMapsClient(sqlkeys, parmas...)
  64. }
  65. func (engine *Engine) SqlTemplatesClient(sqlkeys interface{}, parmas ...interface{}) *SqlTemplatesExecutor {
  66. session := engine.NewSession()
  67. session.IsAutoClose = true
  68. session.IsSqlFuc = true
  69. return session.SqlTemplatesClient(sqlkeys, parmas...)
  70. }