pool.lua 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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. return select.new(self.module:select())
  47. end
  48. --[[
  49. 获取一个 insert 对象
  50. @return 返回一个 insert 对象
  51. ]]
  52. function mysql_pool:insert()
  53. return insert.new(self.module:insert())
  54. end
  55. --[[
  56. 获取一个 update 对象
  57. @return 返回一个 update 对象
  58. ]]
  59. function mysql_pool:update()
  60. return update.new(self.module:update())
  61. end
  62. --[[
  63. 获取一个 delete 对象
  64. @return 返回一个 delete 对象
  65. ]]
  66. function mysql_pool:delete()
  67. return delete.new(self.module:delete())
  68. end
  69. --[[
  70. 获取一个 mysql_conn 对象
  71. @return 返回一个 mysql_conn 对象
  72. ]]
  73. function mysql_pool:get()
  74. return conn.new(self.module:get())
  75. end
  76. --[[
  77. 取自身指针
  78. ]]
  79. function mysql_pool:self()
  80. return self.module:self()
  81. end
  82. --[[
  83. 强制回收连接
  84. ]]
  85. function mysql_pool:recover(conn)
  86. if conn == nil then
  87. return
  88. end
  89. return self.module:recover(conn.module)
  90. end
  91. return mysql_pool