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
本文来自博客园,作者:陈浩文,转载请注明原文链接:https://www.cnblogs.com/chenhaowen/p/16624244.html