项目已经做完一段时间了,蓦然回首中,发现项目在开发模块化方面做的很好,包括对ibatis的sqlMap以及它的映射文件全部进行了模块化开发,看起来一目了然,自然清新,和大家分享一下。
前言:
首先需要把sqlMap文件全部独立出来,怎么样既与DAO相连,也能够看着是独立于Java代码之外的呢。我们需要建立一个source folder,命名为sqlmap,只要sqlMapConfig配置文件、映射文件的包名和Java代码的DAO的包名保持一致就OK,就能够操作同一个包一样,虽然它们处于不同的sourcefolder里面。【结构截图见附件】
一般的话,大家可能都会只写一个sqlMapConfig配置文件,把所有的映射文件全部都放它里面,如果项目大的话,会有多少映射文件啊,效果当然不好。这样,我们也需要把sqlMapConfig进行模块化,如:sqlMapConfig-XXX.xml,那么怎么调用它,接下来就是见证奇迹的时刻....
过程:
建立一个静态的sqlMapClientManager类,对sqlMapClient和sqlMapConfig-XXX.xml进行管理,废话说完,贴上简短代码,大家就清楚了。
private static Hashtable<String,SqlMapClient> sqlMapClients = new Hashtable<String,SqlMapClient>(); /** * 获取对应数据库的SqlMapClient * 前提:有对应数据库的sqlMapConfig,命名规则为:sqlMapConfig-模块名.xml * @param dbName 模块名 * @return 异常时返回null */ public static SqlMapClient getSqlMapClient(String dbName){ SqlMapClient sqlMap = sqlMapClients.get(dbName); if(sqlMap==null){ sqlMap = buildSqlMapClient(dbName); if(sqlMap!=null){ sqlMapClients.put(dbName, sqlMap); } } return sqlMap; } /** * 构建SqlMapClient * @param dbName 模块名 * @return * @throws IOException */ private static SqlMapClient buildSqlMapClient(String dbName){ SqlMapClient sqlMap = null; try{ String resource ="com/test/common/dao/sql/sqlMapConfig-"+dbName+".xml"; Reader reader = Resources.getResourceAsReader(resource); sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); }catch(Exception e){ log.error(e); } return sqlMap; }
我们可以根据sqlMapClientManager的getSqlMapClient(String dbName)方法获取不同模块的SqlMapClient,然后在DAO中进行增删查改。如:
//根据模块名获取sqlMapClient对数据库操作 SqlMapClient sqlMapClient = SqlMapClientManager.getSqlMapClient("web"); try { list=(ArrayList<CityBean>)sqlMapClient.queryForList("Base_City.get",null); }catch(Exception e){}
相关推荐
此外,Spring的AOP功能允许开发者定义切面,实现如日志记录、事务管理等跨切面关注点的模块化。 Struts框架是基于MVC设计模式的,主要负责处理HTTP请求。当用户发送请求到服务器时,Struts框架会根据配置的Action ...
在IT行业中,集成框架的使用是提升开发效率和优化项目...在实际项目中,这样的集成方式可以提供强大的功能,同时保持代码的清晰和模块化。通过学习和掌握这种整合方式,开发者可以更好地应对复杂的企业级应用开发挑战。
Spring Framework是一个全面的、模块化的Java应用框架,包含了AOP、ORM、DAO、Context、Web、MVC等多个组件。在JpetStore 4.0中,Spring主要应用于业务层的改造,通过AOP提供事务管理,使用Beanfactory分离接口与...
1. **模块化设计**:将SQL映射文件按业务模块划分,便于管理和维护。 2. **异常处理**:合理使用try-catch结构,对可能出现的数据库异常进行处理。 3. **事务管理**:根据业务需求正确配置事务隔离级别和回滚规则。 ...
它们共同构建了SSH(Struts、Spring、Hibernate)体系,虽然这里的"H"被替换为"Ibatis",但核心理念是一样的,即通过组件化的方式实现企业级应用程序的高效开发。这个“基于struts+spring+ibatis的 J2EE 开发.rar”...
1. **MessageBoard**:这可能是项目中的一个模块,比如一个论坛或者消息板,用于展示如何在实际应用中使用IBatis进行数据操作。它可能包括控制器、视图和模型类,展示了C#和Mvc框架的应用。 2. **DB**:这通常表示...
Spring是一个全面的后端应用程序框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,使得代码更加模块化和可测试。Spring还提供了对数据库操作的支持,如JDBC模板,同时还能与ORM框架(如Hibernate和...
这个“java经典开发模块之ibatis+struts2+spring dataCollection”项目,旨在通过整合这三个组件,实现一个数据汇集系统,以提供数据的存储、查询和管理功能。 首先,Ibatis是一个轻量级的持久层框架,它弥补了JDBC...
通过分析这个项目,你可以深入理解OSGi环境中的服务管理和模块化开发,以及iBatis在实际应用中的使用方式。对于希望在OSGi平台上构建可扩展、灵活的Java应用的开发者来说,这是一个非常有价值的参考资料。
5. **项目规模**:对于小型项目或模块化开发来说,ibatis的简单性和易用性可能是更合适的选择。 总之,ibatis和Hibernate各有优势,选择哪个取决于项目的具体需求以及团队的技术背景。在实际应用中,企业应综合考虑...
在Java开发中,Maven和iBatis是两个非常重要的工具。Maven是一个项目管理和综合工具,它帮助开发者管理依赖、构建项目,并提供了一种标准化的项目结构。而iBatis则是一个SQL映射框架,它将SQL语句与Java代码分离,...
1. emis10(Struts2+iBATIS).zip:这个项目结合了Struts2和Ibatis,Struts2是一个MVC框架,它与Ibatis一起使用,可以构建出更高效、模块化的Web应用程序。在这个项目中,Ibatis作为数据访问层,负责与数据库交互,而...
Spring 和 iBATIS 是两个非常重要的 Java 开发框架,它们在企业级应用开发中有着广泛的应用。Spring 是一个全面的后端开发框架,提供依赖注入、面向切面编程、事务管理等功能;而 iBATIS 是一个持久层框架,它简化了...
- **模块化**:Struts2的Action和Interceptor机制,使得业务逻辑和控制逻辑分离,便于模块化开发。 - **数据库操作的简便**:iBatis允许开发者直接编写SQL,提高了数据处理的效率和灵活性。 - **事务管理**:Spring...
DI允许开发者通过配置文件或注解来管理对象之间的依赖关系,而AOP则允许模块化的横切关注点,如日志、事务管理等。Spring还提供了对Web应用的支持,如Spring MVC,与Struts集成时可提供更灵活的控制层实现。 **...
在软件开发领域,特别是Java企业级应用开发中,Spring框架和iBATIS(现已更名为MyBatis)是非常重要的两个技术组件。Spring作为一款全面的企业级应用解决方案,其核心功能包括依赖注入、面向切面编程以及容器管理等...
Spring 2.5 提供了依赖注入(DI)和面向切面编程(AOP),增强了应用程序的模块化和可测试性;而 iBATIS 则是一个持久层框架,使得数据库操作与业务逻辑分离,简化了数据访问。 **Struts2** 是Struts 1的升级版,它...
- 保持XML映射文件的整洁和模块化,便于管理和复用。 - 使用命名空间管理SQL语句,避免冲突。 - 合理利用缓存功能,提高应用性能。 - 对于复杂业务逻辑,适当使用存储过程。 综上所述,IBATIS.Net是一个强大的...
Spring框架是Java领域中著名的轻量级容器,它提供了面向切面编程(AOP)、依赖注入(DI)等功能,帮助开发者管理对象的生命周期和依赖关系,使得代码更加解耦和模块化。Spring还包含了SpringMVC,这是一个用于构建...