idea+Spring boot + Mybatis简单使用教程

it2022-05-05  285

最近有新项目,开始转做一些后台开发,也顺便学习学习总结下。看了一些网上教程,学习了下spring boot。这篇文章就是做一下笔记,记录下如何搭建,最简单的方式搭建起来使用Spring boot + Mybatis。

1.新建工程

2.创建测试数据库与数据表

3.修改application.properties添加数据库配置

rver.port=8091 server.servlet.session.timeout=30m server.servlet.context-path=/demo server.tomcat.max-threads=500 spring.datasource.url = jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC spring.datasource.username =root spring.datasource.password =6710219 spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver

如果报红,如下: 修改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>

3.创建数据库实体

public class Userinfo { private Integer ID; private String UserName; private String Password; public Integer getID() { return ID; } public void setID(Integer ID) { this.ID = ID; } public String getUserName() { return UserName; } public void setUserName(String userName) { UserName = userName; } public String getPassword() { return Password; } public void setPassword(String password) { Password = password; } @Override public String toString() { return "T_Userinfo{" + "ID=" + ID + ", UserName='" + UserName + '\'' + ", Password='" + Password + '\'' + '}'; } }

4.创建mapper

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文件中加一个空格或者空行然后保存(我就用这个方法解决的)

5.创建controller

@RestController public class TestController { @Autowired UserMapper userMapper; @GetMapping("/test") public List<Userinfo> test() { return userMapper.findAll(); } }

6.修改Demo2Application扫描mapper

@SpringBootApplication @MapperScan("com.example.demo2.mapper") public class Demo2Application { public static void main(String[] args) { SpringApplication.run(Demo2Application.class, args); } }

7.运行,成功显示


最新回复(0)