springboot-整合mybatis
时间:2019-06-13
本文章向大家介绍springboot-整合mybatis,主要包括springboot-整合mybatis使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、引入依赖
pom.xml:
<!--引入mybatis依赖(使用mybatis时配置)--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!--数据库驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> 。。。。。。 <!-- maven项目中src源代码下的xml等资源文件编译进classes文件夹, 注意:如果没有这个,它会自动搜索resources下是否有mapper.xml文件, 如果没有就会报org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.pet.mapper.PetMapper.selectByPrimaryKey--> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build>
2.、配置数据库
application.properties:
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mysql-boot
spring.datasource.username=root
spring.datasource.password=123123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3、Mybatis文本:
UserMapper.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" > <!--在MyBatis中,Mapper中的namespace用于绑定Dao接口的,即面向接口编程。 它的好处在于当使用了namespace之后就可以不用写接口实现类,业务逻辑会直接通过这个绑定寻找到相对应的SQL语句进行对应的数据处理--> <mapper namespace="com.springboot.mapper.UserMapper"> <select id="getUserList" parameterType="com.springboot.model.User" resultType="com.springboot.model.User"> select id,name,passWord from tb_user where 1=1 order by ranking asc </select> <select id="getUserInfo" parameterType="string" resultType="com.springboot.model.User"> select id,name,passWord from tb_user where id=#{id} </select> </mapper>
4、App启动类
App.class:
@EnableAutoConfiguration @MapperScan(basePackages = {"com.springboot.mapper"})//注意:@MapperScan配置成com.springboot.*,会出现以下异常: //org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.springboot.service.userService.getUserList @ComponentScan(basePackages = {"com.springboot.*","com.springboot.*.*"})//组件扫描,配置扫描的包 public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); //启动springboot项目 SpringApplication.run(App.class,args); System.out.println( "success..." ); } }
5、interface
UserMapper.class
package com.springboot.mapper; import com.springboot.model.User; import java.util.List; public interface UserMapper { public List<User> getUserList(User user); public User getUserInfo(String id); }
注意:
1、如果接口文件名UserMapper和配置文件名UserMapper.xml名称不同时,会出现
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.springboot.mapper.UserMapper.getUserList
2、@MapperScan配置成com.springboot.*,会出现以下异常:
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.springboot.service.userService.getUserList
3、接口和配置文件在同一个文件夹下且名称一致
原文地址:https://www.cnblogs.com/lijianda/p/11017797.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Git技术干货!工作中Git的使用实践和常用命令合集!
- gremlin-both()与bothE().bothV()的区别
- C# Time.deltaTime 增量时间
- Docker--docker ps 命令与结果解析
- Junit5系列-Junit5中@DisplayName自定义名称
- Junit5系列-Junit5中Assertions断言类
- 使用libev监视文件夹下文件(夹)属性变动的方案和实现
- C++拾取——stl标准库中集合交集、并集、差集、对称差方法
- netty结合Protostuff传输对象案例,单机压测秒级接收35万个对象
- Kubernates之Deployment滚动升级和回滚
- 简记特定容器list和forward_list算法
- Games101--Assignment2
- 快速学习-如何使用sentinel
- springboot-mybatis-demo遇到的坑
- 快速学习-Sentinel 工作主流程