当前位置:实例文章 » JAVA Web实例» [文章]Spring+SpringMvc+Mybatis整合小Demo

Spring+SpringMvc+Mybatis整合小Demo

发布人:shili8 发布时间:2025-02-06 17:15 阅读次数:0

**Spring + Spring MVC + MyBatis 整合小 Demo**

在本文中,我们将介绍如何使用 Spring、Spring MVC 和 MyBatis 来构建一个完整的 Web 应用程序。我们将一步步地讲解每个组件的配置和使用方法。

###1.项目结构首先,让我们创建一个新的 Maven项目,名为 `spring-mvc-mybatis-demo`。在项目根目录下创建以下文件:

* `pom.xml`
* `src/main/java/`
+ `com.example.demo.config`
+ `com.example.demo.controller`
+ `com.example.demo.dao`
+ `com.example.demo.entity`
+ `com.example.demo.service`
* `src/main/resources/`
+ `applicationContext.xml`
+ `spring-mvc-config.xml`

###2. pom.xml 配置在 `pom.xml` 文件中,我们需要配置 Maven 的依赖项:

xml<dependencies>
 <!-- Spring -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 <version>5.3.20</version>
 </dependency>

 <!-- Spring MVC -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-webmvc</artifactId>
 <version>5.3.20</version>
 </dependency>

 <!-- MyBatis -->
 <dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis</artifactId>
 <version>3.5.10</version>
 </dependency>

 <!-- MySQL Connector -->
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>8.0.27</version>
 </dependency>

 <!-- Log4j2 -->
 <dependency>
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-api</artifactId>
 <version>2.17.1</version>
 </dependency>

 <dependency>
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-core</artifactId>
 <version>2.17.1</version>
 </dependency>
</dependencies>


###3. applicationContext.xml 配置在 `applicationContext.xml` 文件中,我们需要配置 Spring 的应用上下文:

xml<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=" /> xmlns:xsi=" /> xsi:schemaLocation="  />
 <!-- MySQL 数据源 -->
 <bean id="dataSource" class="com.zaxx.spring.jdbc.DataSource">
 <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
 <property name="url" value="jdbc:mysql://localhost:3306/test"/>
 <property name="username" value="root"/>
 <property name="password" value="123456"/>
 </bean>

 <!-- MyBatis 配置 -->
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
 <property name="dataSource" ref="dataSource"/>
 <property name="configLocation" value="classpath:mybatis-config.xml"/>
 </bean>

 <!-- MyBatis Mapper -->
 <bean id="userMapper" class="com.example.demo.dao.UserMapper">
 <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
 </bean>
</beans>


###4. spring-mvc-config.xml 配置在 `spring-mvc-config.xml` 文件中,我们需要配置 Spring MVC 的应用上下文:

xml<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=" /> xmlns:xsi=" /> xsi:schemaLocation="  />
 <!-- Spring MVC 配置 -->
 <mvc:annotation-driven/>

 <!-- ViewResolver -->
 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 <property name="prefix" value="/WEB-INF/views/"/>
 <property name="suffix" value=".jsp"/>
 </bean>

 <!-- DispatcherServlet -->
 <mvc:dispatcherservlet mapping="/" servlet-name="dispatcherServlet"/>

</beans>


###5. UserMapper.java在 `UserMapper.java` 文件中,我们需要定义 MyBatis 的 Mapper 接口:

javapublic interface UserMapper {
 List selectAllUsers();
}


###6. UserController.java在 `UserController.java` 文件中,我们需要定义 Spring MVC 的 Controller 类:

java@RestController@RequestMapping("/users")
public class UserController {

 @Autowired private UserMapper userMapper;

 @GetMapping public List getAllUsers() {
 return userMapper.selectAllUsers();
 }
}


###7. User.java在 `User.java` 文件中,我们需要定义实体类:

javapublic class User {
 private Long id;
 private String name;
 private Integer age;

 // getter and setter}


###8. pom.xml 配置在 `pom.xml` 文件中,我们需要配置 Maven 的依赖项:

xml<dependencies>
 <!-- Spring -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 <version>5.3.20</version>
 </dependency>

 <!-- Spring MVC -->
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-webmvc</artifactId>
 <version>5.3.20</version>
 </dependency>

 <!-- MyBatis -->
 <dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis</artifactId>
 <version>3.5.10</version>
 </dependency>

 <!-- MySQL Connector -->
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>8.0.27</version>
 </dependency>

 <!-- Log4j2 -->
 <dependency>
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-api</artifactId>
 <version>2.17.1</version>
 </dependency>

 <dependency>
 <groupId>org.apache.logging.log4j</groupId>
 <artifactId>log4j-core</artifactId>
 <version>2.17.1</version>
 </dependency>
</dependencies>


###9. applicationContext.xml 配置在 `applicationContext.xml` 文件中,我们需要配置 Spring 的应用上下文:

xml<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=" /> xmlns:xsi=" /> xsi:schemaLocation="  />
 <!-- MySQL 数据源 -->
 <bean id="dataSource" class="com.zaxx.spring.jdbc.DataSource">
 <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
 <property name="url" value="jdbc:mysql://localhost:3306/test"/>
 <property name="username" value="root"/>
 <property name="password" value="123456"/>
 </bean>

 <!-- MyBatis 配置 -->
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
 <property name="dataSource" ref="dataSource"/>
 <property name="configLocation" value="classpath:mybatis-config.xml"/>
 </bean>

 <!-- MyBatis Mapper -->
 <bean id="userMapper" class="com.example.demo.dao.UserMapper">
 <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
 </bean>
</beans>


###10. spring-mvc-config.xml 配置在 `spring-mvc-config.xml` 文件中,我们需要配置 Spring MVC 的应用上下文:

xml<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=" /> xmlns:xsi=" /> xsi:schemaLocation="  />
 <!-- Spring MVC 配置 -->
 <mvc:annotation-driven/>

 <!-- ViewResolver -->
 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 <property name="prefix" value="/WEB-INF/views/"/>
 <property name="suffix" value=".jsp"/>
 </bean>

 <!-- DispatcherServlet -->
 <mvc:dispatcherservlet mapping="/" servlet-name="dispatcherServlet"/>

</beans>


###11. UserMapper.java在 `UserMapper.java` 文件中,我们需要

其他信息

其他资源

Top