准备数据库表
CREATE TABLE `t_user` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(255) DEFAULT NULL COMMENT '姓名', `age` int DEFAULT NULL COMMENT '年龄', `gender` varchar(255) DEFAULT NULL COMMENT '性别', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3;
新建boot项目,pom.xml导入依赖
org.springframework.boot spring-boot-starter-web mysql mysql-connector-java org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.0 org.springframework.boot spring-boot-starter-test test src/main/java ** List selectUserInfo(User user); }
id,name,age,gender
控制层代码
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping(value = "/selectUserInfo")
public List selectByIdUserInfo(@RequestBody User user){
List users = userService.selectUserInfo(user);
return users;
}
}
项目启动类上添加扫描mapper文件注解
@SpringBootApplication
@MapperScan(basePackages = "com.example.bootmybatis.mapper") // 开启扫描mapper
public class BootMybatisApplication {
public static void main(String[] args) {
SpringApplication.run(BootMybatisApplication.class, args);
}
}
配置数据库连接
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: root
mybatis:
type-aliases-package: com.example.bootmybatis.entity #配置XML映射文件中指定的实体类别名路径
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句日志
启动项目,访问控制层路径
上面mapper接口和映射文件是在src/main/java相同目录下面,在pom.xml文件中配置了下面配置,启动项目打包的时候就会将xml文件打包进去。
src/main/java **/*.xml false
除了这种写法之外,还有另外一个常见的写法,将映射文件放到类路径下的resource目录下面,如果是这种写法就要在yaml核心配置文件中配置如下配置,告诉mapper映射文件的位置。
mybatis: mapper-locations: classpath:mapper/*.xml #配置MyBatis的xml配置文件路径



