添加MySQL依赖和mybatis-spring-boot-starter模块
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
##数据源信息配置
#数据库地址
spring.datasource.url=jdbc:mysql://localhost:3306/springbootjpa?&serverTimezone=UTC&characterEncoding=utf8
#数据库用户名
spring.datasource.username=root
#数据库密码
spring.datasource.password=123456
#数据库驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#设置包别名(在Mapper映射文件中直接使用实体类名)
mybatis.type-aliases-package=com.yzh.mybatis.entity
#告诉系统在哪里去找mapper.xml文件(映射文件)
mybatis.mapperLocations=classpath:mappers/*.xml
#在控制台输出SQL语句日志
logging.level.com.yzh.mybatis.repository=debug
#让控制器输出的JSON字符串格式更美观
spring.jackson.serialization.indent-output=true
package com.yzh.mybatis.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class MyUser {
private String username;
private String password;
}
package com.yzh.mybatis.repository;
import java.util.List;
import com.yzh.mybatis.entity.MyUser;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
* MyBatis的Mapper映射接口
*/
@Mapper
@Repository //不写会在注入时报错,但不影响运行
public interface MyUserRepository {
public List<MyUser> findAll();
}
<?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.yzh.mybatis.repository.MyUserRepository">
<select id="findAll" resultType="MyUser">
select * from user
</select>
</mapper>
package com.yzh.mybatis.service;
import java.util.List;
import com.yzh.mybatis.entity.MyUser;
public interface MyUserService {
public List<MyUser> findAll();
}
package com.yzh.mybatis.service;
import java.util.List;
import com.yzh.mybatis.entity.MyUser;
import com.yzh.mybatis.repository.MyUserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class MyUserServiceImpl implements MyUserService{
@Autowired
private MyUserRepository myUserRepository;
@Override
public List<MyUser> findAll() {
return myUserRepository.findAll();
}
}
package com.yzh.mybatis.controller;
import java.util.List;
import com.yzh.mybatis.entity.MyUser;
import com.yzh.mybatis.service.MyUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyUserController {
@Autowired
private MyUserService myUserService;
@RequestMapping("/findAll")
public List<MyUser> findAll(){
return myUserService.findAll();
}
}
package com.yzh.mybatis;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.util.Arrays;
@MapperScan(basePackages ={"com.yzh.mybatis.Repository"})
@SpringBootApplication
public class MybatisApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisApplication.class, args);
// String[] strings={"1","2"};
// System.out.println(Arrays.toString(strings));
}
}
删除如下配置
#设置包别名(在Mapper映射文件中直接使用实体类名)
mybatis.type-aliases-package=com.yzh.mybatis.entity
#告诉系统在哪里去找mapper.xml文件(映射文件)
mybatis.mapperLocations=classpath:mappers/*.xml
删除src/main/resources文件夹下的mapper包
package com.yzh.mybatis.repository;
import java.util.List;
import com.yzh.mybatis.entity.MyUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
/**
* MyBatis的Mapper映射接口
*/
//@Mapper
//@Repository //不写会在注入时报错,但不影响运行
public interface MyUserRepository {
@Select("select * from user")
public List<MyUser> findAll();
}