idea -gradle-springboot (+mybatis)按照网上某教程建了一个项目。
结构如下
MyUser .java文件
package com.example.pojo;
public class MyUser {
private Integer id;
private String userId;
private String name;
private String password;
public Integer getId() {return id; }
public void setId(Integer id) { this.id = id; }
public String getUserId() { return userId; }
public void setUserId(String userId) { this.userId = userId; }
public String getName() { return name; }
public void setName(String name) {this.name = name;}
public String getPassword() {return password; }
public void setPassword(String password) {this.password = password;}
}
Userdao.java类
package com.example.dao;
import com.example.pojo.MyUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface UserDao {
MyUser findByUserId(@Param("userId") String userId);
}
UserDaoMapper.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.dao.UserDao">
<resultMap type=" com.example.pojo.MyUser" id="userMap">
<id property="id" column="id" jdbcType="INTEGER"/>
<result property="userId" column="userId" jdbcType="VARCHAR"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="password" column="password" jdbcType="VARCHAR"/>
</resultMap>
<select id="findByUserId" resultMap="userMap" >
select
p.id id,p.userId userId,p.userName userName,p.password password
from plt_user p
where userId=#{userId}
</select>
</mapper>
application.properties文件
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/healthfood?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml
在UserDaoMapper.文件里ctrl+左键可以链接到MyUser.java类,但是编译之后就报错说是找不到这个类
配置参数添加mybatis.type-aliases-package= com.example.dao
依然找不到类
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [G:\healthfoodPro\demo\out\production\resources\mapper\UserDaoMapper.xml]'. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias ' com.example.pojo.MyUser'. Cause: java.lang.ClassNotFoundException: Cannot find class: com.example.pojo.MyUser
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:122) ~[mybatis-3.5.0.jar:3.5.0]
at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:94) ~[mybatis-3.5.0.jar:3.5.0]
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:520) ~[mybatis-spring-2.0.0.jar:2.0.0]
... 33 common frames omitted
Caused by: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias ' com.example.pojo.MyUser'. Cause: java.lang.ClassNotFoundException: Cannot find class: com.example.pojo.MyUser
at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:118) ~[mybatis-3.5.0.jar:3.5.0]
at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:266) ~[mybatis-3.5