spring和Mybatis集成
配置MyBatis-Spring的Maven依赖
在pom.xml
中添加以下依赖,确保版本正确:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.24</version>
</dependency>
配置applicationContext.xml
-
Mapper 扫描器配置:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <property name="basePackage" value="cn.edu.guet.mapper"/> </bean>
**核心: **这个配置告诉 Spring 去扫描
cn.edu.guet.mapper
包下的所有接口(Mapper),并为这些接口生成实现类(代理对象)。这些实现类将被用来访问数据库。 -
SqlSessionFactory 配置:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="classpath:mappers/*Mapper.xml"/> </bean>
解释: 这个配置创建一个
SqlSessionFactory
,它是 MyBatis 与数据库交互的核心。配置中指定了数据源(dataSource)和 Mapper XML 文件的位置(classpath:mappers/*Mapper.xml
),这些 XML 文件包含 SQL 语句。 -
读取数据库配置:
<context:property-placeholder location="classpath:db.properties"/>
解释: 这个配置告诉 Spring 去读取
classpath:db.properties
文件中的数据库配置信息,比如数据库的 URL、用户名和密码。这使得数据库配置更灵活,可以通过修改 properties 文件来改变配置,而无需修改代码。 -
数据源配置:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${name}"/> <property name="password" value="${password}"/> </bean>
解释: 这个配置创建一个
DataSource
,它包含了数据库连接所需的配置信息。这里用${driver}
、${url}
、${name}
和${password}
这些占位符来引用db.properties
文件中的具体配置值。
解决<context:property-placeholder>
爆红
为了解决<context:property-placeholder>
的爆红问题,需要在<beans>
元素中添加xmlns:context
和相应的xsi:schemaLocation
:
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
解释: 这个配置添加了 context
命名空间声明和相应的 XSD 文件位置,确保 Spring 可以正确解析 context:property-placeholder
标签。
db.properties
在src/main/resources
目录下创建db.properties
文件,配置数据库连接信息:
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@IP:1521:orcl
name=×××××
password=×××××××
总结
以上配置完成后,Spring和MyBatis已经成功集成。可以在cn.edu.guet.mapper
包下创建Mapper接口,并在Mapper XML文件中定义SQL语句。Spring会自动扫描这些接口并生成实现类,数据源配置也会从db.properties
文件中读取。