CREATE TABLE IF NOT EXISTS user (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NULL DEFAULT NULL,
`age` INT(2) NOT NULL,
PRIMARY KEY (id)
);
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
</dependencies>

spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=123456
public class User {
private int id;
private String name;
private int age;
// getter/setter 省略
}
@Mapper
public interface UserDao {
@Results({
@Result(property = "id", column = "id"),
@Result(property = "name", column = "name"),
@Result(property = "age", column = "age")
})
@Select("SELECT * FROM user WHERE age = #{age}")
List<User> get(int age);
@Insert("INSERT INTO user(name, age) VALUES (#{name}, #{age})")
void insert(User user);
}
@Service
public class UserService {
@Autowired
private UserDao userDao;
public String show() { return "Hello World!"; }
public List<User> showDao(int age) { return userDao.get(age); }
public String insert(String name, int age) {
User user = new User();
user.setName(name);
user.setAge(age);
userDao.insert(user);
return "Insert (\"" + name + "\", age" + age + ") OK!";
}
}
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/show")
public String show() { return userService.show(); }
@RequestMapping("/showDao")
public Object showDao(int age) { return userService.showDao(age); }
@RequestMapping("/insert")
public String insert(String name, int age) { return userService.insert(name, age); }
}
@SpringBootApplication(scanBasePackages = "com.xyz.dbtest")
@MapperScan(basePackages = "com.xyz.dbtest.dao")
public class StartApp {
public static void main(String[] args) {
SpringApplication.run(StartApp.class, args);
}
}

GET /show → Hello World!GET /showDao?age=20 → [](空列表)GET /insert?name=張三&age=25 → Insert ("張三", age25) OK!GET /showDao?age=25 → [{"id":1,"name":"張三","age":25}]





Spring Boot + MyBatis 註解方式幾乎零配置,極大提升開發效率,適合中小型項目快速構建。
代碼倉庫:GitHub 地址