springboot2 +mybatis+druid

之前用注解shix实现了这个,但注解也有它的不足。在复杂的大项目中通常用的都是配置文件。

且在springboot2里面有好多坑,自己调了大半天终于调通了,所以记录一下,免得下次再犯。

本次用的是springboot2.0.3 + maven 3.2.2 +jdk1.8 

而且发现有时候版本的问题跟maven有很大的关系,同样的springboot2.X ,但maven的版本不一样,所需的一些jar的版本也不一定一样。

例如:若maven是3.3.9,


		
			com.github.pagehelper
			pagehelper-spring-boot-starter
			1.1.2
		
		
		
			com.alibaba
			druid-spring-boot-starter
			1.1.0
		

这个可以

若:maven是3.2.2.


        
            com.github.pagehelper
            pagehelper-spring-boot-starter
            1.2.5
        
        
        
            com.alibaba
            druid-spring-boot-starter
            1.1.9
        

贴代码:

项目结构:

springboot2 +mybatis+druid_第1张图片

pom.xml



    4.0.0

    com.mybatis
    mybatis
    0.0.1-SNAPSHOT
    jar

    mybatis
    Demo project for Spring Boot

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.3.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8
    

    

        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.2
        

        
            mysql
            mysql-connector-java
            runtime
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
        
            com.alibaba
            druid-spring-boot-starter
            1.1.9
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

application.yml

server:
  port: 8087

spring:
    datasource:
        name: test
        url: jdbc:mysql://127.0.0.1:3306/mydream
        username: root
        password: root
        # 使用druid数据源
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        filters: stat
        maxActive: 20
        initialSize: 1
        maxWait: 60000
        minIdle: 1
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: select 'x'
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        maxOpenPreparedStatements: 20

mybatis:
  mapper-locations: classpath:mapping/*/*.xml #这里是mapper的配置文件
  type-aliases-package: com.mydream.backstate.*.entity #这里是实体类的包

#pagehelper分页插件
pagehelper:
    helperDialect: mysql
    reasonable: true
    supportMethodsArguments: true
    params: count=countSql

dao:

package com.mydream.backstate.sysuser.dao;

import com.mydream.backstate.sysuser.entity.SysUser;

public interface SysUserMapper {
    SysUser findByUsername(String username);
}

entity:

package com.mydream.backstate.sysuser.entity;

public class SysUser {
    private Long id;

    private String password;

    private String username;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username == null ? null : username.trim();
    }
}

service:

package com.mydream.backstate.sysuser.service;

import com.mydream.backstate.sysuser.entity.SysUser;

/**
 * Created by  lpw'ASUS on 2018/7/20.
 */
public interface SysUserService {
    SysUser findByUsername(String username);
}

serviceimpl:

package com.mydream.backstate.sysuser.service;

import com.mydream.backstate.sysuser.dao.SysUserMapper;
import com.mydream.backstate.sysuser.entity.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * Created by  lpw'ASUS on 2018/7/20.
 */
@Service
public class SysUserServiceImpl implements SysUserService {

    @Autowired
    private SysUserMapper sysUserMapper;

    @Override
    public SysUser findByUsername(String username) {
        return sysUserMapper.findByUsername(username);
    }
}

controller:

package com.mydream.backstate.sysuser.controller;

import com.mydream.backstate.sysuser.entity.SysUser;
import com.mydream.backstate.sysuser.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * Created by  lpw'ASUS on 2018/7/20.
 */
@Controller
@RequestMapping("/")
public class SysUserController {
    @Autowired
    private SysUserService sysUserService;

    @RequestMapping("test")
    @ResponseBody
    public SysUser test(@RequestParam String username){
        return sysUserService.findByUsername(username);
    }
}

SysUserMapper.xml




    
        
        
        
    

    
        sys_user
    

    
        id,password,username
    

    

在使用的过程中我刚开始碰到,mapper类shan上面不加@Mapper,就会发现报zhao找不到的错误,之后查了发现,要么每个Mapper类都加这个,要么在启动类上面加

@MapperScan("com.mydream.backstate.*.dao")

例:

package com.mydream.backstate;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.mydream.backstate.*.dao")
public class MydreamApplication {

	public static void main(String[] args) {
		SpringApplication.run(MydreamApplication.class, args);
	}
}

 

你可能感兴趣的:(springboot,mybaties)