PropertyDataBaseConfigBuilder.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.cn.config;
  2. import com.jfinal.config.Constants;
  3. import com.jfinal.config.JFinalConfig;
  4. import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
  5. import com.jfinal.plugin.druid.DruidPlugin;
  6. import org.apache.commons.lang3.StringUtils;
  7. import org.jim.common.utils.Prop;
  8. import org.jim.common.utils.PropUtil;
  9. import org.jim.server.model.*;
  10. /**
  11. * @author Darren
  12. * @date 2020/1/30 19:30
  13. */
  14. public class PropertyDataBaseConfigBuilder {
  15. private static Prop prop;
  16. private PropertyDataBaseConfigBuilder() {
  17. }
  18. public static void init(String file){
  19. if(StringUtils.isEmpty(file)){
  20. throw new RuntimeException("file is Empty!");
  21. }
  22. prop = PropUtil.use(file);
  23. //创建 Druid 数据库连接池 (jfinal)
  24. DruidPlugin druidPlugin = new DruidPlugin(
  25. prop.get("jdbcUrl"), prop.get("user"), prop.get("password"),prop.get("driverClass")
  26. );
  27. //设置连接池相关数据
  28. druidPlugin.set(prop.getInt("initialSize"),prop.getInt("minIdle"),prop.getInt("maxActive"));
  29. druidPlugin.setConnectionInitSql("set names utf8mb4");
  30. ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
  31. //设置实体 表 关系映射
  32. arp.addMapping("sw_group","group_id", ChatGroup.class);
  33. arp.addMapping("sw_conversation","id", Conversation.class);
  34. arp.addMapping("sw_conversation_record","id", ConversationRecord.class);
  35. arp.addMapping("sw_customer_department_middle","id", CustomerDepartmentMiddle.class);
  36. arp.addMapping("sw_role_department_middle","id", RoleDepartmentMiddle.class);
  37. arp.addMapping("sw_service_account","id", ServiceAccount.class);
  38. arp.addMapping(
  39. "sw_service_account_role_department_middle"
  40. ,"id"
  41. , ServiceAccountRoleDepartmentMiddle.class
  42. );
  43. arp.addMapping("sw_visitor_department_middle","id",VisitorDepartmentMiddle.class);
  44. arp.addMapping("sw_auto_reply_message","id",AutoReplyMessage.class);
  45. // 与 jfinal web 环境唯一的不同是要手动调用一次相关插件的start()方法
  46. druidPlugin.start();
  47. arp.start();
  48. //设置开发者模式
  49. // arp.setDevMode(true);
  50. //设置打印sql
  51. // arp.setShowSql(true);
  52. }
  53. }