在springboot里面是如何使用mybatis的呢?
一、在pom.xml中引入mybatis相关的jar包:
<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>
二、mybatis连接数据库的数据源信息在哪里面配置呢?到目前为止我们还没有配置过任何的xml文件,在springboot里面也有配置文件,放置在src/main/resources目录下,叫做application.yml或者application.properties,因为我们前面几节课都没有必要涉及到它,因此到现在用到了,我们才再提出来。新建application.yml,在里面配置数据源的信息:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8
username: root
password: root
三、在未使用springboot的时候,mybatis的mapper.xml文件在spring中是通过org.mybatis.spring.SqlSessionFactoryBean这个bean的mapperLocations属性来指定的,那么在springboot中又该怎么指定呢?需要在application.yml中指定一下mybatis的xxxMapper文件所在路径:
mybatis:
mapper-locations: classpath*:mapper/*Mapper.xml
四、新建接口com.roadjava.sb.dao.UserMapper.java,在以前没有使用springboot的时候,我们知道需要通过org.mybatis.spring.mapper.MapperScannerConfigurer这个类扫描的basePackage的方式来找到接口UserMapper.java,并由mybatis来生成实现,现在没有xml配置文件,该怎么让办呢,使用@Mapper注解即可:
package com.roadjava.sb.dao; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserMapper { public List<Map<String, Object>> getUsers(Map<String, Object> paramMap); }
五、新建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"> <mapper namespace="com.roadjava.sb.dao.UserMapper"> <select id="getUsers" parameterType="java.util.Map" resultType="java.util.Map"> select * from userinfo <where> <if test='userName!=null and userName!=""'> name=#{userName} </if> </where> </select> </mapper>
六、新增UserService接口:
package com.roadjava.sb.service; import java.util.List; import java.util.Map; public interface UserService { public List<Map<String, Object>> getUsers(); }
七。新增UserService接口的实现类:
package com.roadjava.sb.service.impl; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.roadjava.sb.dao.UserMapper; import com.roadjava.sb.service.UserService; @Service public class UserServiceImpl implements UserService { @Resource private UserMapper userMapper; @Override public List<Map<String, Object>> getUsers() { Map<String, Object> paramMap=new HashMap<>(); paramMap.put("userName", "xiao明"); List<Map<String, Object>> users = userMapper.getUsers(paramMap); return users; } }
八、在UserHandler中新增@requestmapping映射方法:
@RequestMapping("/selectUsers") @ResponseBody public List<Map<String, Object>> selectUsers(){ return userService.getUsers(); }
九、如下:
点击超链接点击查询,结果如图:
返回成功,springboot结合mybatis成功了。
十、下面是项目的整体结构: