MyBatis-Spring-Boot-Starter帮助你快速在springboot上整合mybatis。
版本对照
MyBatis-Spring-Boot-Starter
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中加入依赖
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/ 编写。