美文网首页
springboot整合mybatis

springboot整合mybatis

作者: 一只小安仔 | 来源:发表于2019-03-03 20:02 被阅读0次

    springboot整合mybatis

    先看application.yml配置

    
    #默认使用配置
    spring:
      profiles:
        active: dev
    server:
      port: 8081
    
    
    #公共配置与profiles无关:
    mybatis:
      type-aliases-package: com.chenjunan.pojo
      mapper-locations: classpath:mappers/*.xml
    
    ---
    
    
    spring:
    
      profiles: dev
    
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/spring-shiro
        username: root
        password: chenjunan
        type: com.alibaba.druid.pool.DruidDataSource
    
    

    yml语法这里不做细讲,自行百度,当然也可以讲配置文件的内容下载properties文件里,个人觉得yml看着舒服。yml基础语法
    mybatis下的type-aliases-package用于指定相应的pojo,domain,或者entrty存放包。mapper-locations用于指定mapper.xml文件位置,注意这里的classpath表示resources下。一般在resources下建个mappers文件夹存放所有的mapper配置文件。
    数据源这里注意mysql的driver官方推荐写com.mysql.cj.jdbc.Driver。
    type表示使用的数据源类的定位。(我这里使用的阿里的druid,若使用dbcp,c3p0自行百度哦!)

    #mapper示例:

    package com.chenjunan.mapper;
    
    import com.chenjunan.pojo.User;
    
    public interface UserMapper {
    
    
        /**
         * 通过姓名查找user
         * @param name
         * @return
         */
        User findByName(String name);
        
        
    }
    

    #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.chenjunan.mapper.UserMapper">
    
      <select id="findByName" parameterType="String" resultType="User">
         select * from user where user_name = #{value}
    
      </select>
    
    </mapper>
    

    这里只是简单做了通过name向数据库查询user的操作。

    如果需要springboot扫描到mapper类需要在springboot启动类上添加注解@mapperscan
    例:

    package com.chenjunan;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @MapperScan("com.chenjunan.mapper")  //mapper包路径
    public class SpringShiroApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringShiroApplication.class, args);
        }
    
    }
    
    

    #差点忘记,还有service和serviceImpl

    service

    package com.chenjunan.service;
    
    import com.chenjunan.pojo.User;
    
    public interface UserService {
    
    
        User findByName(String username);
    
    }
    
    

    serviceImpl

    package com.chenjunan.service.impl;
    
    import com.chenjunan.service.UserService;
    import com.chenjunan.mapper.UserMapper;
    import com.chenjunan.pojo.User;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private UserMapper userMapper;
    
    
        @Override
        public User findByName(String username) {
            return userMapper.findByName(username);
        }
    
    
    }
    

    最后是单元测试

    package com.chenjunan;
    
    import com.chenjunan.pojo.User;
    import com.chenjunan.service.UserService;
    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.SpringRunner;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class SpringShiroApplicationTests {
    
        @Autowired
        private UserService userService;
    
    
        @Test
        public void mybatisTest() {
    
            User user = userService.findByName("chenjunan");
            
            System.out.println(user);
            
        }
    
    }
    
    
    结果如下: mybatis.png

    可以看出,结果完全正确,整合到此结束。
    如有错误,请指正,万般感谢!

    相关文章

      网友评论

          本文标题:springboot整合mybatis

          本文链接:https://www.haomeiwen.com/subject/bpumuqtx.html