首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Spring Boot 集成 MyBatis 註解版完整教程:從建表到 REST API

     編輯:Java 相關知識

數據庫準備

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>

項目結構

核心代碼

1. 配置文件 application.properties

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

2. 實體類 User.java

public class User {
    private int id;
    private String name;
    private int age;
    // getter/setter 省略
}

3. Mapper 介面 UserDao.java

@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);
}

4. 服務層 UserService.java

@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!";
    }
}

5. 控制器 UserController.java

@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); }
}

6. 啟動類 StartApp.java

@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 地址

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved