mybatis-spring-boot-autoconfigure mybatis在springboot中自动配置

MyBatis-Spring-Boot-Starter帮助你快速在springboot上整合mybatis。

版本对照

MyBatis-Spring-Boot-Starter

MyBatis-Spring

Spring Boot

1.3.x (1.3.1)

1.3 or higher

1.5 or higher

1.2.x (1.2.1)

1.3 or higher

1.4 or higher

1.1.x (1.1.1)

1.3 or higher

1.3 or higher

1.0.x (1.0.2)

1.2 or higher

1.3 or higher

首先在pom.xml中加入依赖


org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.1

application.properties

mybatis.config-location=classpath:mybatis-config.xml
logging.level.root=WARN
logging.level.sample.mybatis.mapper=TRACE

spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

创建表

drop table if exists city;
drop table if exists hotel;

create table city (id int primary key auto_increment, name varchar(255), state varchar(255), country varchar(255));
create table hotel (city int, name varchar(255), address varchar(255), zip varchar(255));

insert into city (name, state, country) values (‘San Francisco’, ‘CA’, ‘US’);
insert into hotel(city, name, address, zip) values (1, ‘Conrad Treasury Place’, ‘William & George Streets’, ‘4001’)

resources/sample.mybatis.mapper

CityMapper.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">



mybatis-config.xml

<?xml version=”1.0” encoding=”UTF-8” ?>
<!DOCTYPE configuration
PUBLIC “-//mybatis.org//DTD Config 3.0//EN”
http://mybatis.org/dtd/mybatis-3-config.dtd">









sample.mybatis.domain

City.java

package sample.mybatis.domain;

import java.io.Serializable;

/**

  • @author Eddú Meléndez
    */
    public class City implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    private String name;

    private String state;

    private String country;

    public Long getId() {

    return this.id;
    

    }

    public void setId(Long id) {

    this.id = id;
    

    }

    public String getName() {

    return this.name;
    

    }

    public void setName(String name) {

    this.name = name;
    

    }

    public String getState() {

    return this.state;
    

    }

    public void setState(String state) {

    this.state = state;
    

    }

    public String getCountry() {

    return this.country;
    

    }

    public void setCountry(String country) {

    this.country = country;
    

    }

    @Override
    public String toString() {

    return getId() + "," + getName() + "," + getState() + "," + getCountry();
    

    }

}

CityDao.java

package sample.mybatis.dao;

import org.apache.ibatis.session.SqlSession;
import sample.mybatis.domain.City;

import org.springframework.stereotype.Component;

/**

  • @author Eddú Meléndez
    */
    @Component
    public class CityDao {

    private final SqlSession sqlSession;

    public CityDao(SqlSession sqlSession) {

    this.sqlSession = sqlSession;
    

    }

    public City selectCityById(long id) {

    return this.sqlSession.selectOne("selectCityById", id);
    

    }

}

SampleXmlApplication.java

package sample.mybatis;

import sample.mybatis.dao.CityDao;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SampleXmlApplication implements CommandLineRunner {

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

private final CityDao cityDao; 

public SampleXmlApplication(CityDao cityDao ) {
    this.cityDao = cityDao; 
}

@Override
public void run(String... args) throws Exception {
    System.out.println(this.cityDao.selectCityById(1)); 
}

}

除了使用sqlSession, 还可以使用Mapper映射,如

HotelMapper.java

package sample.mybatis.mapper;

import org.apache.ibatis.annotations.Mapper;

import sample.mybatis.domain.Hotel;

/**

  • @author Eduardo Macarron
    */
    @Mapper
    public interface HotelMapper {

    Hotel selectByCityId(int city_id);

}

本文根据 http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/ 编写。

github: https://github.com/mybatis/spring-boot-starter

0%