1 创建maven web项目,在pom文件中引入相关依赖
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!-- mybatis框架 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!-- 整合spring和mybatis的依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!-- mvc依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
<!-- spring数据源 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
2 在resources目录下新建mybatis.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>
<!-- 映射文件的配置 -->
<mappers>
</mappers>
</configuration>
3 在resources目录下新建spring-servlet.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="org.example"/>
<mvc:annotation-driven/>
<!-- 配置一个spring数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb?serverTimezone=Asia/Shanghai"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<!-- 配置mybatis的会话工厂 -->
<bean id="sessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis.xml"/>
</bean>
<!-- 配置真正操作数据源的会话模板 -->
<bean id="sessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sessionFactoryBean"/>
</bean>
</beans>
4 在main下的java目录下,分别新建以下包
- entity 表对应的实体类
- dao 接口
- service 业务逻辑
- controller 控制器
5 创建User实体类
public class User {
private int uid;
private String unam;
private String address;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUnam() {
return unam;
}
public void setUnam(String unam) {
this.unam = unam;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"uid=" + uid +
", unam='" + unam + '\'' +
", address='" + address + '\'' +
'}';
}
}
6 创建UserDao接口
public interface UserDao {
List<User> queryAll();
}
7 在resources目录下新建mappers目录,并在该目录下新建UserDao.xml接口映射文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace是命名空间,接口UserDao的路径 -->
<mapper namespace="org.example.dao.UserDao">
<select id="queryAll" resultType="org.example.entity.User">
select * from user
</select>
</mapper>
8 将以上接口映射文件,添加到mybatis.xml配置文件中
<mappers>
<mapper resource="mappers/UserDao.xml"/>
</mappers>
9 在dao包下新建impl实现类包,并创建UserDaoImpl实现类,实现UserDao接口
@Repository(value = "userDao")
public class UserDaoImpl implements UserDao {
@Resource
private SqlSessionTemplate sessionTemplate;
@Override
public List<User> queryAll() {
UserDao userDao = sessionTemplate.getMapper(UserDao.class);
return userDao.queryAll();
}
}
10 在service包下新建业务逻辑类UserService
@Service
public class UserService {
@Resource
private UserDao userDao;
public List<User> queryAll(){
return userDao.queryAll();
}
}
11 在controller包下,新建UserController
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@GetMapping("/all")
public String queryAll(ModelMap modelMap){
List<User> users = userService.queryAll();
modelMap.put("users", users);
return "/jsp/user/list.jsp";
}
}
12 在webapp目录下新建jsp目录,在jsp目录下新建user目录,在user目录下新建list.jsp
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2022/11/18
Time: 9:37
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>用户列表</h1>
<table border="1">
<thead>
<td>编号</td>
<td>用户名称</td>
<td>地址</td>
</thead>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.uid}</td>
<td>${user.unam}</td>
<td>${user.address}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
13 在web.xml中添加dispatcherServlet和过滤器
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/**</url-pattern>
</filter-mapping>
</web-app>
14 重新配置tomcat,部署新项目并运行该项目。
在地址栏后面访问user/all