1.導(dǎo)入依賴和數(shù)據(jù)庫驅(qū)動(新建項目的時候若是有勾選可以跳過這一步)
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
2.配置數(shù)據(jù)源和mybatis
spring:
datasource:
url: jdbc:mysql://localhost:3306/test1
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
mybatis:
#config-location: classpath:mybatis/mybatis-config.xml #全局配置文件
mapper-locations: classpath:mapper/*.xml #全局映射文件
configuration: #和全局配置文件沖突轻掩,可以不寫全局配置文件幸乒,所有配置寫在configuration下面
map-underscore-to-camel-case: true #駝峰命名策略
3.編寫Mapper接口
package com.szg.boot.mapper;
import com.szg.boot.bean.Pet;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
//若是在主程序入口配置@MapperScan("com.szg.boot.mapper"),這個注解可以不用配置
@Mapper
public interface PetMapper {
//注解版
@Select("select * from pet where id=#{id}")
public Pet getPet(Long id);
//配置文件版
public void insertPet(Pet pet);
}
4.編寫Mapper映射配置文件
<?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">
<mapper namespace="com.szg.boot.mapper.PetMapper">
<!--配置自增屬性也返回-->
<insert id="insertPet" useGeneratedKeys="true" keyProperty="id">
insert into pet(`name`,`weight`) values(#{name}, #{weight})
</insert>
</mapper>
5.編寫service類
package com.szg.boot.service;
import com.szg.boot.bean.Pet;
import com.szg.boot.mapper.PetMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class PetService {
@Autowired
PetMapper petMapper;
public Pet getPetById(Long id) {
return petMapper.getPet(id);
}
public void savePet(Pet pet) {
petMapper.insertPet(pet);
}
}
6.編寫Controller接口
package com.szg.boot.controller;
import com.szg.boot.bean.Pet;
import com.szg.boot.service.PetService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class PetController {
@Autowired
PetService petService;
@GetMapping("pet")
public Pet getById(@RequestParam("id") Long id) {
return petService.getPetById(id);
}
@PostMapping("savePet")
public Pet savePet(Pet pet) {
petService.savePet(pet);
return pet;
}
}
注:controller調(diào)用service唇牧,service調(diào)用mapper
目錄結(jié)構(gòu).png
目錄結(jié)構(gòu).png