springBoot整合mybatise

1、准备一个springboot的maven工程

 2、添加数据库驱动mybatise依赖

 1        <!--  mybatis -->
 2         <dependency>
 3             <groupId>org.mybatis.spring.boot</groupId>
 4             <artifactId>mybatis-spring-boot-starter</artifactId>
 5             <version>2.1.1</version>
 6         </dependency>
 7 
 8         <!-- MySQL驱动-->
 9         <dependency>
10             <groupId>mysql</groupId>
11             <artifactId>mysql-connector-java</artifactId>
12         </dependency>

3、配置数据源

server:
 port: 8088
spring:
 datasource:
  url: jdbc:mysql://localhost:3306/test
  username: root
  password: root
  driver-class-name: com.mysql.cj.jdbc.Driver

4、测试一下数据源是否可用,看看是否能查询出数据库表中的数据

package com.chenhaowen.demo;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.sql.DataSource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@SpringBootTest

@RunWith(SpringJUnit4ClassRunner.class)
public class TestMysqlConnect {

    @Autowired
    private DataSource dataSource;

    @Test
    public void contextLoads() throws SQLException {

        Connection connection = dataSource.getConnection();
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery("select * from pet");

        while (resultSet.next()) {
            String petName = resultSet.getString(1);
            String petType = resultSet.getString(2);
            String sex = resultSet.getString(3);
            System.out.println("petName:" + petName + " petType:" + petType + " sex:" + sex);
        }
    }

}

 

 

好的,看到我们已经将数据查询打印出来了。

接下来配置与mybatise相关的

5、在application文件中添加如下

#指定映射xml文件所在路径
mybatis:
 mapper-locations: classpath:mapper/*.xml

6、编写实体bean

 

 7、编写接口类

 

 8、编写mybatise映射文件

 

 9、在启动类中增加注解扫描mapper接口类

 

 10、编写测试方法

 

 11、执行测试程序,ok可以看到我们通过mybatise将结果查询出来了

 

 

写在最后:在整合过程中发现xml里的namespace属性不能为空,也不能随意命名,而是必须是接口的完全限定类名,否则运行时会出错。

当为空是会报以下错误:Mapper's namespace cannot be empty

 

 当namespace不是对应mapper接口的完全限定类名是会报错:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.chenhaowen.demo.mapper.PetMapper.getPet

 

posted @ 2022-08-25 16:40  陈浩文  阅读(41)  评论(0编辑  收藏  举报