在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();
	}

九、如下:

image.png

点击超链接点击查询,结果如图:

image.png

返回成功,springboot结合mybatis成功了。

十、下面是项目的整体结构:

image.png

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐