最近有新项目,开始转做一些后台开发,也顺便学习学习总结下。看了一些网上教程,学习了下spring boot。这篇文章就是做一下笔记,记录下如何搭建,最简单的方式搭建起来使用Spring boot + Mybatis。
如果报红,如下: 修改pom.xml文件: 把这个runtime去掉。同时,build里面添加resources:
<build> <resources> <!-- maven项目中src源代码下的xml等资源文件编译进classes文件夹, 注意:如果没有这个,它会自动搜索resources下是否有mapper.xml文件, 如果没有就会报org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.pet.mapper.PetMapper.selectByPrimaryKey--> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <!--将resources目录下的配置文件编译进classes文件 --> <resource> <directory>src/main/resources</directory> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>mapper:
@Mapper public interface UserMapper { List<Userinfo> findAll(); }mapper.xml ,注意namespace要与mapper等一致,Userinfo与数据表对应起来。
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper3.0//EN " "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo2.mapper.UserMapper"> <select id="findAll" resultType="com.example.demo2.beans.Userinfo"> select * from userinfo; </select> </mapper>这里我试了很久一直出现下面的问题:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)一般的原因 Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上。 按以下步骤一一执行: 1、检查xml文件所在的package名称是否和interface对应的package名称一一对应 2、检查xml文件的namespace是否和xml文件的package名称一一对应 3、检查函数名称能否对应上 4、去掉xml文件中的中文注释 5、随意在xml文件中加一个空格或者空行然后保存(我就用这个方法解决的)