一、上pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.13.RELEASE</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- MySql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
二、springboot启动类
@SpringBootApplication
//配置mybatis的mapper扫描
@MapperScan("com.springboot.SpringBootDemo.dao")
public class SpringBootDemoApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication application = new SpringApplication(SpringBootDemoApplication.class);
application.run(args);
}
//mvc控制器 设置拦截器
@Configuration
static class WebMvcConfigurer extends WebMvcConfigurerAdapter{
//增加拦截器
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(new MyInterceptor()) //指定拦截器类
.addPathPatterns("/test/*"); //指定该类拦截的url
}
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SpringBootDemoApplication.class);
}
}
三、springboot拦截器
public class MyInterceptor implements HandlerInterceptor{
//在请求处理之前进行调用(Controller方法调用之前
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
System.out.printf("preHandle被调用");
return true; //如果false,停止流程,api被拦截
}
//请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle被调用");
}
//在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行(主要是用于进行资源清理工作)
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
System.out.println("afterCompletion被调用");
}
}
四、springboot整合mybatis
4.1、配置sql连接
application.properties
server.port=8080
server.context-path=/SpringBootDemo
#\u8BBE\u7F6ETomcat\u7F16\u7801
server.tomcat.uri-encoding=UTF-8
#\u6570\u636E\u5E93\u914D\u7F6E
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#\u914D\u7F6E.xml\u6587\u4EF6\u8DEF\u5F84
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.typeAliasesPackage=classpath:mapper/*.xml
#logging.config=classpath:logback.xml
#logging.path=/logs
UserMapp.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" >
<mapper namespace="com.springboot.SpringBootDemo.dao.UserDao" >
<resultMap id="BaseResultMap" type="com.springboot.SpringBootDemo.entity.User" >
<result column="user_id" property="userId" />
<result column="email" property="email" />
</resultMap>
<select id="selectUser" resultMap="BaseResultMap">
select * from puser
</select>
</mapper>
User.java
public class User {
private Integer userId;
private String email;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
User.dao
public interface UserDao {
List<User> selectUser();
}
五、springboot控制器
@RestController
public class TestController {
@Autowired
private UserDao userDao;
@RequestMapping("/test/hello1")
public String test(){
List<User> list=userDao.selectUser();
return list.get(0).getEmail();
}
}
六、相关sql文件
DROP TABLE IF EXISTS `puser`;
CREATE TABLE `puser` (
`number` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` varchar(30) COLLATE utf8mb4_bin NOT NULL,
`name` varchar(150) COLLATE utf8mb4_bin NOT NULL,
`department` varchar(150) COLLATE utf8mb4_bin NOT NULL,
`phonenumber` varchar(100) COLLATE utf8mb4_bin DEFAULT NULL,
`email` varchar(100) COLLATE utf8mb4_bin DEFAULT NULL,
PRIMARY KEY (`number`),
UNIQUE KEY `user_id_idx` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=124 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Records of puser
-- ----------------------------
INSERT INTO `puser` VALUES ('123', '12345555', '111', '11', '11', '111');
本文介绍如何在Spring Boot项目中整合MyBatis,包括配置数据库连接、使用MyBatis Starter、创建拦截器及控制器等步骤,并提供了一个具体的例子。
292

被折叠的 条评论
为什么被折叠?



