下面是详细讲解“详解Spring与Mybatis的整合方法(基于Eclipse的搭建)”的完整攻略。
准备工作
首先要确保Eclipse中已经安装好Spring和Mybatis的插件(可以在“Marketplace”中搜索安装)。然后需要准备好数据库和相关的配置文件。
整合步骤
-
新建Maven项目,选择需要的包和依赖。
-
新建数据库,在Mybatis的配置文件中配置数据库连接信息。
示例:
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="UNPOOLED">
<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=""/>
</dataSource>
</environment>
</environments>
</configuration>
- 编写Mybatis的映射文件和接口,在Spring的配置文件中配置Mybatis的Mapper扫描。
示例:
Mybatis映射文件
<mapper namespace="com.example.dao.UserDao">
<select id="getUserById" resultType="com.example.pojo.User">
select * from user where id=#{id}
</select>
</mapper>
Mybatis接口
public interface UserDao {
User getUserById(@Param("id") String id);
}
Spring配置文件
<!-- Mybatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<property name="basePackage" value="com.example.dao"/>
</bean>
- 在Spring的配置文件中配置数据源和事务管理器。
示例:
<!-- 数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<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=""/>
</bean>
<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
- 在Spring的配置文件中配置注解扫描和MVC组件扫描。
示例:
<!-- 注解扫描 -->
<context:component-scan base-package="com.example"/>
<!-- MVC组件扫描 -->
<mvc:annotation-driven/>
<context:component-scan base-package="com.example.controller"/>
示例
下面给出两个基于Spring和Mybatis整合的例子。
示例1:查询用户信息
- 新建Java类User(位于com.example.pojo包下)。
public class User {
private int id;
private String name;
private int age;
// 省略getter和setter方法
}
- 新建接口UserDao(位于com.example.dao包下)。
public interface UserDao {
User getUserById(@Param("id") String id);
}
- 新建Mybatis映射文件UserMapper.xml(位于resources/mapper目录下)。
<mapper namespace="com.example.dao.UserDao">
<select id="getUserById" resultType="com.example.pojo.User">
select * from user where id=#{id}
</select>
</mapper>
- 在Spring配置文件中添加如下配置。
<!-- Mybatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<property name="basePackage" value="com.example.dao"/>
</bean>
<!-- 数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<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=""/>
</bean>
<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 注解扫描 -->
<context:component-scan base-package="com.example"/>
<!-- MVC组件扫描 -->
<mvc:annotation-driven/>
<context:component-scan base-package="com.example.controller"/>
- 新建控制器UserController(位于com.example.controller包下)。
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserDao userDao;
@RequestMapping("/getUserById")
@ResponseBody
public User getUserById(String id) {
return userDao.getUserById(id);
}
}
- 启动Tomcat服务,并访问http://localhost:8080/user/getUserById?id=1。返回查询到的用户信息。
示例2:添加用户信息
-
新建MySQL数据表user(数据表结构为id, name, age)。
-
新建Java类User(位于com.example.pojo包下)。
public class User {
private int id;
private String name;
private int age;
// 省略getter和setter方法
}
- 新建接口UserDao(位于com.example.dao包下)。
public interface UserDao {
void addUser(User user);
}
- 新建Mybatis映射文件UserMapper.xml(位于resources/mapper目录下)。
<mapper namespace="com.example.dao.UserDao">
<insert id="addUser" parameterType="com.example.pojo.User">
insert into user(name, age) values(#{name}, #{age})
</insert>
</mapper>
- 在Spring配置文件中添加如下配置。
<!-- Mybatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<property name="basePackage" value="com.example.dao"/>
</bean>
<!-- 数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<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=""/>
</bean>
<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 注解扫描 -->
<context:component-scan base-package="com.example"/>
<!-- MVC组件扫描 -->
<mvc:annotation-driven/>
<context:component-scan base-package="com.example.controller"/>
- 新建控制器UserController(位于com.example.controller包下)。
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserDao userDao;
@RequestMapping("/addUser")
@ResponseBody
public String addUser(User user) {
userDao.addUser(user);
return "添加成功!";
}
}
- 启动Tomcat服务,并访问http://localhost:8080/user/addUser?name=Tom&age=20,即可向数据库添加用户信息。
总结
以上就是详解Spring与Mybatis的整合方法(基于Eclipse的搭建)的完整攻略。在整个过程中,需要注意配置文件的路径和对应关系,尤其是在Maven项目中。同时,可以通过实现一些简单的示例来快速掌握整合方法的实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Spring与Mybatis的整合方法(基于Eclipse的搭建) - Python技术站