设为首页 加入收藏

TOP

springboot2.1.7整合mybati3.5.2与mysql8.0.13(二)
2019-09-06 00:27:58 】 浏览:49
Tags:springboot2.1.7 整合 mybati3.5.2 mysql8.0.13
scription: */ @Repository @Mapper public interface AdminDao { /** * 管理员登录 * @param userName * @param password * @return AdminEntity */ AdminEntity login(String userName,String password); }

 resoures/mapper/AdminDao.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.gl.pin.service.system.dao.AdminDao">
    <!--AdminEntity与数据库中的列的映射-->
    <resultMap id="adminDao" type="com.gl.pin.service.api.system.entity.AdminEntity">
        <id property="id" column="a_id"/>
        <result property="userName" column="a_userName"/>
        <result property="password" column="a_password"/>
    </resultMap>

    <!--admin login -->
    <select id="login1" parameterType="java.lang.String" resultMap="adminDao">
        SELECT a_id,a_userName,a_password FROM sys_admin WHERE a_userName=#{userName} AND a_password=#{password}
    </select>
</mapper>

 

4. 如何将dao装配在spring容器中?

方法一:在dao接口类上加上注解@Mapper
@Repository
@Mapper
public interface AdminDao {

    /**
     * 管理员登录
     * @param userName
     * @param password
     * @return AdminEntity
     */
    AdminEntity login(String userName,String password);

}
方法二:在springboot启动类上加注解@MapperScan
@SpringBootApplication
@MapperScan("com.gl.pin.service.system.dao")
public class PinServiceSystemApplication {

    public static void main(String[] args) {
        SpringApplication.run(PinServiceSystemApplication.class, args);
    }

}

5. 报错总结

1.springboot启动失败---找不到接口类

错误详情:

Description:

Field adminDao in com.gl.pin.service.system.service.AdminService required a bean of type 'com.gl.pin.service.system.dao.AdminDao' that could not be found.

The injection point has the following annotations:
	- @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean of type 'com.gl.pin.service.system.dao.AdminDao' in your configuration.

 解决方案:没有使用@Mapper或@MapperScan,或者错误使用(@MapperScan扫描包的路径不对等等)

2. springboot启动成功,发送请求报错---dao和mapper.xml绑定失败,找不到对应方法

错误详情:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.gl.pin.service.system.dao.AdminDao.login

 解决方案:

2.1 dao接口所在包与mapper.xml映射文件中的namespace不一致

<mapper namespace="com.gl.pin.service.system.dao.AdminDao">

2.2 dao中有的方法,但mapper.xml中没有
2.3 dao中的方法名和mapper.xml中id的不一样

<select id="login" parameterType="java.lang.String" resultMap="adminDao">

 2.4 mapper.xml文件压根没被解析,需要在application.properties中配置

#最好使用"/",用"."可能在多级文件情况下有问题
mybatis.mapper-locations=classpath:/mapper/*.xml

 springboot整合mybatis肯定会有这样那样的问题,这些错误总结就是博主踩过的大坑,特别贴出来供大家参考。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇XML中的XPATH和DTD 下一篇面试官:判断一个数是否为2的整数..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目