Spring与MyBatis整合配置详解

4星 · 超过85%的资源 需积分: 5 5 下载量 69 浏览量 更新于2024-07-27 1 收藏 224KB DOC 举报
"这篇文档主要介绍了如何将MyBatis与Spring进行集成的步骤,包括所需的下载、配置和必要的库文件。" 在Java开发中,MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。而Spring则是一个全面的企业级应用框架,提供了事务管理、依赖注入等功能。将MyBatis与Spring集成,可以充分利用Spring的管理功能,简化MyBatis的使用,提高开发效率。 集成MyBatis和Spring首先需要从官方站点下载所需的相关组件。MyBatis可以从http://code.google.com/p/mybatis/获取,目前最新的稳定版本是3.1.1。同时,还需要下载mybatis-spring的集成包,版本为1.1.1。如果项目中使用了Spring AOP,那么还需要下载aspectj和cglib的库,如aspectjrt.jar和aspectjweaver.jar,以及cglib-nodep-2.2.3.jar。数据库连接池c3p0(版本0.9.2-pre4)和MySQL驱动(版本5.1.22)也是必不可少的。 完成下载后,需要将这些库文件放入项目的WEB-INF\lib目录下。这包括MyBatis的核心库mybatis-3.1.1.jar,mybatis-spring-1.1.1.jar,用于AOP的aspectjrt.jar和aspectjweaver.jar,以及CGLib的cglib-nodep-2.2.3.jar。对于数据访问,需要c3p0的两个jar文件:c3p0-0.9.2-pre4.jar和mchange-commons-java-0.2.2.jar,以及MySQL驱动mysql-connector-java-5.1.22-bin.jar。 接下来,需要创建MyBatis的配置文件`mybatis-config.xml`,通常放在源代码的根路径下。这个配置文件会定义MyBatis的基本设置,例如数据源、SqlSessionFactory等。例如: ```xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="password"/> </dataSource> </environment> </environments> <!-- mapper文件位置 --> <mappers> <mapper resource="com/example/mapper/UserMapper.xml"/> </mappers> </configuration> ``` 在Spring的配置文件(如`applicationContext.xml`)中,需要配置MyBatis的相关bean,包括SqlSessionFactory和SqlSessionTemplate。这样,Spring就能管理MyBatis的生命周期,并提供方便的事务控制。以下是一个示例配置: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 数据源配置 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/> <property name="user" value="root"/> <property name="password" value="password"/> </bean> <!-- SqlSessionFactory配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean> <!-- SqlSessionTemplate配置 --> <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory"/> </bean> <!-- 配置Mapper接口 --> <bean id="userMapper" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean> </beans> ``` 通过以上配置,MyBatis与Spring的集成基本完成。在实际应用中,开发者可以通过Spring的依赖注入来获取Mapper接口的实例,直接调用其方法进行数据操作,无需手动管理SqlSession。例如: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public User getUserById(int id) { return userMapper.getUserById(id); } } ``` 这样,MyBatis的灵活性和Spring的管理能力就得到了完美结合,大大提高了开发效率和代码质量。在实际项目中,可以根据具体需求调整配置,如添加数据源的连接池配置、调整Mapper扫描路径等。