SpringBoot使用MyBatis

SpringBoot框架使用MyBatis

在SpringBoot搭建SSM框架中,SpringMVC和Spring都与一般的SSM框架使用方法没有区别,但是MyBatis因为去除了配置文件,所以在使用方法与之前有些许的差别.

引入依赖

引入mybatis组件的包和数据库驱动包

<!-- 加载mybatis整合springboot-->
<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>1.3.1</version>
</dependency>

<!-- MySQL的jdbc驱动包 -->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>

书写配置文件

由于没有mybatis的配置文件,需要在application.properties(或者application.yml)文件中指定mybatis映射文件的路径,以便于SpringBoot扫描文件,然后就是数据库的配置

#mybatis配置(指定mapper文件的路径)
mybatis.mapper-locations=classpath:mapping/*.xml
#JDBC配置(常规配置)
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql:///information?useUnicode=true&characterEncoding=utf-8&useSSL=true

书写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="com.demo.dao.Userdao">

    <!--查找数据库中user表的所有记录-->
	<select id="getUser" parameterType="String" resultType="com.demo.pojo.User">
		select * from user where binary username = #{username}
	</select>
	
</mapper>

书写Dao层的接口文件

package com.demo.dao;

import com.demo.pojo.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface Userdao {

    public User getUser(String username);
}

这里一定要记得在接口文件的类名上面打一个@Mapper的注解,让SpringBoot去扫描这个接口

还有一个方法是在SpringBoot启动入口的main方法上面加上@MapperScan("com.demo.dao")指定你dao层接口所在的包,让SpringBoot去扫描这个包.

测试

@Controller
public class UserController {

    @Autowired
    private Userdao ud;

    @RequestMapping("/select/{username}")
    public String getUser(@PathVariable("username") String username, Model model){
        User u = ud.getUser(username);
        model.addAttribute("user",u);
        return "userMsg.html";
    }
}

 这里就不写Service方法了,直接用Controller调用dao层接口测试,

注:用@Mapper注解被SpringBoot扫描的类在使用@Autowired获取时会提示没有找到相应bean,是因为我们开始扫描只是一个接口,只有在程序运行后才会被动态生成一个对象,所以实际使用是没有问题的.如果想去除的话,可以把@Autowired注解换成@Resource(type=类名.class).

测试成功

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值