创建项目
首先,创建一个Maven管理的Java web项目。下面以Eclipse示例
引入依赖包
双击编辑pom.xml文件,添加SpringMVC和Mybatis依赖包
<!-- Springmvc 依赖包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<!-- Spring jdbc操作依赖包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<!-- mysql数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<!-- mybatis依赖包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!-- mybatis spring整合依赖包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<!-- servlet api相关依赖包,部署时由tomcat提供 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- 添加json支持 -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
配置web.xml文件
位置:src/main/webapp/WEB-INF/web.xml,具体配置如下
<web-app>
<display-name>springmvc-mybatis</display-name>
<!-- 配置Spring servlet请求调度器 -->
<servlet>
<!-- servlet的名字,项目启动后,若不指定 contextConfigLocation,则会在WEB-INF目录下寻找此处配置的
servlet-name + -servlet.xml 的配置文件,即:dispatcher-servlet.xml-->
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<!-- url匹配规则,/ 表示匹配所有请求 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
SpringMVC配置
在WEB-INF目录下新建 dispatcher-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" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
<!-- 开启注解扫描驱动 -->
<mvc:annotation-driven />
<tx:annotation-driven/>
<!-- 配置自动扫描的包,完成 Bean 的创建和自动依赖注入的功能 -->
<context:component-scan base-package="com.frun.mybatis.controller" />
<!-- 配置静态资源路径 -->
<mvc:resources location="/assets/" mapping="/assets/**"></mvc:resources>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- jsp文件的所在的目录 -->
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 数据源配置 -->
<bean id="dataSource" class="org.apache.ibatis.datasource.pooled.PooledDataSource">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/student_manager?useUnicode=true&characterEncoding=utf-8&useSSL=false"></property>
<property name="username" value="root" />
<property name="password" value="123456" />
</bean>
<!-- sqlSessionFactory配置类 -->
<bean id="configuration" class="org.apache.ibatis.session.Configuration">
<!-- 开启下划线转驼峰 -->
<property name="mapUnderscoreToCamelCase" value="true" />
</bean>
<!-- 配置sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configuration" ref="configuration" />
</bean>
<!-- 配置mapper类扫描器,会自动扫描指定包下的mapper接口和xml文件,无需自己实现mapper接口 -->
<bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.frun.mybatis.mapper" />
</bean>
<!-- 配置sqlSessionTemplate -->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
<!-- 声明事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
编写代码
@RestController
public class UserController {
// spring依赖注入
@Autowired
private UserMapper userMapper;
@GetMapping("/userInfo")
public User userInfo() {
User user = userMapper.getByUserId(1L);
return user;
}
}
public class User {
private Long userId;
private String account;
private String password;
private String userName;
private String email;
private String avatar;
private Integer status;
private Date lastLoginTime;
private Date createTime;
private Date updateTime;
// setter getter方法...
}
public interface UserMapper {
User getByUserId(@Param("userId") Long userId);
}
<?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">
<mapper namespace="com.frun.mybatis.mapper.UserMapper">
<select id="getByUserId" resultType="com.frun.mybatis.entity.User">
SELECT * FROM user WHERE user_id = #{userId }
</select>
</mapper>
验证
添加项目到tomcat,启动tomcat
打开浏览器,输入访问地址 http://192.168.20.225:8080/demo-springmvc-mybatis/userInfo