Sessionfactory是一个重量级组件,一个数据源应该只创建一个Sessionfactory对象,而我需要使用Namingstrategy,方式如下:
Configuration cfg = new Configuration();
MyNamingStrategy m = new MyNamingStrategy(tableName);
cfg.setNamingStrategy(m);
sessionFactory = cfg.configure().buildSessionFactory();
Session session = sessionFactory.openSession();
其中,tableName是一个字符串变量,并不是一个固定不变的字符串。但这样一来,每次开启一个session就需要创建一个Sessionfactory对象,这将大大占用资源,请问如何在使用命名策略的情况下不用开启大量的Sessionfactory对象?
创建sessionfactory时去map中查找,如果没有就把它放进去,存在了就直接返回map中的内容
tableName如果每次都不一样的话,按照你的只能如此了,若是固定的几个,可以初始化的时候创建好他们,就不用每次了再去创建了
可以用map缓存起来