SpringBoot整合Mybatis保姆级教程

1.引入依赖

在pom.xml中引入以下依赖

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.1.20</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
</dependency>

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>2.0.0</version>
</dependency>

这一步可能出现的问题:

  • mysql驱动与mysql数据库的版本不匹配,导致连不上数据库
  • druid连接池的版本与项目不匹配,换几个版本试试
  • SpringBoot的版本要使用2.0.0以后的版本,使用3.0.0以后的版本及其容易报错

2.配置application.properties

在application.properties中加入以下配置,如果工程中位于resources文件中的的application配置文件是yml后缀,改成properties即可。

#设置连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/exercitationdb?useSSL=false
spring.datasource.username=root
spring.datasource.password=20040619Lmy
#数据库驱动器
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#设置mapper.xml的位置,classpath表示在resources下
mybatis.mapper-locations=classpath:mapper/*.xml
#设置驼峰命名与下划线命名转换
mybatis.configuration.map-underscore-to-camel-case=true

url,username,password根据自己用的数据库的名字,用户名,密码替换,例如我这里用的就是我一个叫exercitationdb的数据库。

3.创建mapper接口与实体类

目录结构如图所示:

UserMapper接口:

@Mapper
public interface UserMapper {
    public List<User> selectAll();
}

User类写你与数据库表相关的实体类,要把每个属性的get和set方法写出来。

注意User类的成员变量的顺序,构造函数中变量的顺序尽量与数据库中表的属性的顺序一致,我之前就遇到过顺序不一致导致匹配出错的问题。

4.扫描含有mapper接口的包 

在Application程序中加入MapperScan注解,里面写你mapper接口所在的包。

@MapperScan("com.example.day3.mapper")
@SpringBootApplication
public class Day3Application {

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

}

注意,这里的@MapperScan与mapper类上的@Mapper理论上只写一个就可以,以防万一可以两个都写。

5.编写mapper.xml

在src/main/resources下创建mapper目录,在里面创建UserMapper.xml,复制以下mapper.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="包名.类名">
    
</mapper>

如果不想每次创建mapper.xml时都要复制一遍这个格式,可以参考文章:

https://blog.csdn.net/xiaocui1995/article/details/123970574

在namespace内填上这个mapper.xml文件要配置的mapper类的包名和类名。

随后在内部写sql语句就可以了。例:

<?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.day3.mapper.UserMapper">
    <select id="selectAll" resultType="com.example.day3.pojo.User">
        select * from user;
    </select>
</mapper>

匹配UserMapper类,使用select标签表示编写select语句,用id内填入匹配的方法名,去看上面的UserMapper接口内的方法名和这里一样,内部编写sql语句。

6.调用mapper接口

至此,就成功的完成了SpringBoot整合Mybatis,可以使用Autowired将bean注入到userMapper中调用他的selectAll()方法来查出数据库中所有的user信息,代码如下:

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> findAllUser() {
        List<User> users = userMapper.selectAll();
        return users;
    }
}

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值