SSH架构,dao层是不是一定要是单例模式
SSH架构,dao层是否一定要是单例模式。[/code][解决办法]单例跟单线程没有关系的,这点你估计是搞混了。Action
SSH架构,dao层是否一定要是单例模式。
[/code]
[解决办法]
单例跟单线程没有关系的,这点你估计是搞混了。
ActionServlet也是单例的(高版本的好象不是了),按你的想法用了struts就是只有一个连接了?
[解决办法]
如4楼所说,你确实总体上就理解错了。
刨除线程跟单例(实例)的问题,你对DAO、表、数据库连接的概念也混乱了点。
即便只有1张表,那么你只需要定义一个Dao类,而且系统中只有1个Dao实例,你也可以同时有300个数据库连接在处理中。
即便你有10张表,你也可以只定义一个Dao类(不是VO类),系统中也可以只有1个Dao实例,你还是可以同时又300个数据库连接在处理中。
找本书看看吧,我一直主张:如果在基础框架性知识结构中存在不足的话,应该看书以系统性的掌握。
[解决办法]一个实例和并发性没有多少关系,楼主总是想一个实例的方法就只能有一个业务层对象调用。有多少并发这个对象的这个方法就会有多少个调用。假设启动30个线程同时调用一个对象的同一个方法,这种情况按楼主错误的理解就是只能串行访问了。
[解决办法]“既然dao层为单例,那么是不是每一个dao,有且只有一个实例,每一个实例只占用一个数据库连接,”
你对单利理解有误,或者说java方法的执行理解有误;
请问你如何获取connection?
假如是-getconnection();那么无论是否单利,每执行一次都会创建一个connection连接;
单利是用来就是用来节省内存的