pom.xml
<!-- mysql jdbc connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- <scope>runtime</scope>-->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
application.properties
# mybatis
spring.datasource.url=jdbc:mysql://localhost:3306/study_db?characterEncoding=UTF-8&serverTimezone=UTC&SSL=false
spring.datasource.username=root
spring.datasource.password=52273178
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
##MyBatis
mybatis.type-aliases-package=com.example.demo.dto
mybatis.mapper-locations=classpath:mapper/*.xml
/java/<packagename>/<nameApplication>.class
@MapperScan(basePackageClasses = <nameApplication>.class)
추가! 최초 1번만 빌드 해주면 @mapper annotation을 인식한다.
package com.example.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan(basePackageClasses = DemoApplication.class)
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Controller
package com.example.demo.cont;
import com.example.demo.mapper.Mapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class Cont {
@Autowired
public Mapper mapper;
@GetMapping("/")
public String jsp(Model model) {
System.err.println(mapper.getUsers().get(0).getUid());
return "jsp";
}
}
@Mapper
package com.example.demo.mapper;
import com.example.demo.dto.UserDTO;
import java.util.List;
@org.apache.ibatis.annotations.Mapper
public interface Mapper {
List<UserDTO> getUsers();
}
DTO.class
package com.example.demo.dto;
public class UserDTO {
private int num;
private String uid;
private String pwd;
private String name;
private String birth;
private String phone;
private String email;
public UserDTO() {
}
public UserDTO(int num, String uid, String pwd, String name, String birth, String phone, String email) {
this.num = num;
this.uid = uid;
this.pwd = pwd;
this.name = name;
this.birth = birth;
this.phone = phone;
this.email = email;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
/resources/mapper/Mapper.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.example.demo.mapper.Mapper">
<select id="getUsers" resultType="com.example.demo.dto.UserDTO">
select
*
from
user
</select>
</mapper>
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.libraryweb.mapper 오류
@MapperScan(basePackageClasses = .class) 선언으로 해결
'Spring' 카테고리의 다른 글
spring boot) war 파일 배포하기 feat.intelliJ (0) | 2022.03.05 |
---|---|
IntelliJ) Spring Boot 프로젝트 세팅 및 실행 (0) | 2022.03.03 |
intelliJ springboot 프로젝트생성 (0) | 2022.02.17 |