使用 mybatis 加 spring 加 spring mvc 写
时间: 2023-06-27 19:01:56 浏览: 123
一个基本的 web 应用程序可以按照以下步骤来实现:
1. 创建一个 Maven 项目,添加 Spring、Spring MVC 和 MyBatis 的依赖。
2. 在 `web.xml` 文件中配置 `DispatcherServlet`,并设置它的映射路径为 `/`。
3. 在 `dispatcher-servlet.xml` 文件中配置 Spring MVC 的相关组件,如 `RequestMappingHandlerAdapter`、`ViewResolver` 等。
4. 在 `applicationContext.xml` 文件中配置 MyBatis 的相关组件,如 `SqlSessionFactoryBean`、`MapperScannerConfigurer` 等。
5. 创建实体类和 DAO 接口,并在 `mapper.xml` 文件中编写 SQL 语句。
6. 在 Service 层中调用 DAO 层的方法,处理业务逻辑。
7. 在 Controller 中使用 `@RequestMapping` 注解来处理 HTTP 请求,并调用 Service 层中的方法处理业务逻辑。
8. 在 JSP 页面中使用 EL 表达式来显示数据。
下面是一个简单的示例:
1. 添加依赖
```xml
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<!-- Spring MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
```
2. 配置 `DispatcherServlet`
```xml
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
```
3. 配置 Spring MVC 组件
```xml
<!-- 配置扫描包 -->
<context:component-scan base-package="com.example.controller" />
<!-- 配置RequestMappingHandlerAdapter -->
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="stringHttpMessageConverter" />
<ref bean="jacksonMessageConverter" />
</list>
</property>
</bean>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
```
4. 配置 MyBatis 组件
```xml
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<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="root" />
</bean>
<!-- 配置 SqlSessionFactory -->
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation"
value="classpath:mybatis-config.xml" />
</bean>
<!-- 配置 MapperScannerConfigurer -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.dao" />
</bean>
```
5. 编写实体类和 DAO 接口
```java
public class User {
private int id;
private String name;
private int age;
// getter/setter 略
}
public interface UserDao {
User selectUserById(int id);
}
```
```xml
<mapper namespace="com.example.dao.UserDao">
<select id="selectUserById" parameterType="int" resultType="User">
select * from user where id = #{id}
</select>
</mapper>
```
6. 编写 Service 层
```java
public interface UserService {
User getUserById(int id);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public User getUserById(int id) {
return userDao.selectUserById(id);
}
}
```
7. 编写 Controller
```java
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
public String getUser(@PathVariable("id") int id, Model model) {
User user = userService.getUserById(id);
model.addAttribute("user", user);
return "user";
}
}
```
8. 编写 JSP 页面
```html
<!DOCTYPE html>
<html>
<head>
<title>User Profile</title>
</head>
<body>
<h1>User Profile</h1>
<table>
<tr>
<td>ID:</td>
<td>${user.id}</td>
</tr>
<tr>
<td>Name:</td>
<td>${user.name}</td>
</tr>
<tr>
<td>Age:</td>
<td>${user.age}</td>
</tr>
</table>
</body>
</html>
```
以上就是使用 MyBatis 加 Spring 加 Spring MVC 写一个基本的 web 应用程序的步骤。
阅读全文