pool.lua 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. local select = require("mysql.builder_select")
  2. local update = require("mysql.builder_update")
  3. local insert = require("mysql.builder_insert")
  4. local delete = require("mysql.builder_delete")
  5. local conn = require("mysql.conn")
  6. local mysql_pool = {}
  7. mysql_pool.__index = mysql_pool
  8. --[[
  9. 创建一个新的 fw_mysql_pool 对象
  10. @return 返回一个新的 fw_mysql_pool 对象
  11. ]]
  12. function mysql_pool.new(pool)
  13. local instance = setmetatable({}, mysql_pool)
  14. if pool == nil then
  15. instance.module = fw_mysql_pool.new()
  16. else
  17. instance.module = pool
  18. end
  19. return instance
  20. end
  21. --[[
  22. 启动 MySQL 连接池
  23. @param ipaddress IP 地址
  24. @param username 用户名
  25. @param password 密码
  26. @param database 数据库名称
  27. @param charset 字符集
  28. @param port 端口号
  29. @param size 连接池大小
  30. @return 是否成功启动
  31. ]]
  32. function mysql_pool:start(ipaddress, username, password, database, charset, port, size)
  33. return self.module:start(ipaddress, username, password, database, charset, port, size)
  34. end
  35. --[[
  36. 关闭 MySQL 连接池
  37. ]]
  38. function mysql_pool:close()
  39. self.module:close()
  40. end
  41. --[[
  42. 获取一个 select 对象
  43. @return 返回一个 select 对象
  44. ]]
  45. function mysql_pool:select()
  46. print("SELECT_DEBUG_0:")
  47. local s = self.module:select()
  48. print("SELECT_DEBUG_1:",s)
  49. local s2 = select.new(s)
  50. print("SELECT_DEBUG_2:",s2)
  51. return s2
  52. --return self.module:select()
  53. end
  54. --[[
  55. 获取一个 insert 对象
  56. @return 返回一个 insert 对象
  57. ]]
  58. function mysql_pool:insert()
  59. return insert.new(self.module:insert())
  60. end
  61. --[[
  62. 获取一个 update 对象
  63. @return 返回一个 update 对象
  64. ]]
  65. function mysql_pool:update()
  66. return update.new(self.module:update())
  67. end
  68. --[[
  69. 获取一个 delete 对象
  70. @return 返回一个 delete 对象
  71. ]]
  72. function mysql_pool:delete()
  73. return delete.new(self.module:delete())
  74. end
  75. --[[
  76. 获取一个 mysql_conn 对象
  77. @return 返回一个 mysql_conn 对象
  78. ]]
  79. function mysql_pool:get()
  80. return conn.new(self.module:get())
  81. end
  82. --[[
  83. 取自身指针
  84. ]]
  85. function mysql_pool:self()
  86. return self.module:self()
  87. end
  88. --[[
  89. 强制回收连接
  90. ]]
  91. function mysql_pool:recover(conn)
  92. if conn == nil then
  93. return
  94. end
  95. return self.module:recover(conn.module)
  96. end
  97. return mysql_pool