While developing a custom module, which function creates table in database?
First things first, you are using the correct hook.

If your module is already enabled, then the implementation of hook_schema() won't get called.  This is also the case if the module has been enabled, and then disabled without uninstalling.

I would try disabling your module, and then ensuring it is uninstalled by either heading to admin/modules/uninstall/ or (if you have Drush installed) run drush pm-uninstall mymodule

From the documentation:


  The tables declared by this hook will be automatically created when
  the module is first enabled, and removed when the module is
  uninstalled. This happens before hook_install() is invoked, and after
  hook_uninstall() is invoked, respectively.


I'm not sure why you'd be defining a controller class though, or even which one you're defining.  Drupal 7 does this with an array, it's not very OO (Drupal 6/7 is array soup). 

If this doesn't solve your issue perhaps you could paste a munged version of your implementation of hook_schema.