寫(xiě)在前面的話
上一節(jié)我們利用mybatis-generator生成DAO層丰榴,但是并沒(méi)有和spring boot關(guān)聯(lián)起來(lái)。網(wǎng)上的資料都是單純的將springboot和mybatis整合在一起但是沒(méi)有集成到web項(xiàng)目中。我們這個(gè)demo是將mybatis集成到springboot中開(kāi)發(fā)web項(xiàng)目的案例,所以更加適合大家學(xué)習(xí)。
1. 整理pom文件
前面我們單純的使用了mybatis的jar包,現(xiàn)在我們刪掉這個(gè)jar包依賴玄组,使用springboot提供給我的jar包
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
這個(gè)jar包里面包含了mybatis需要使用的jar包。先看看代碼生成器幫我們生成的代碼截圖
我們需要在service層使用上面的DAO層
2.創(chuàng)建service層
2.1接口
package com.user.service;
import com.user.entity.UserInfo;
public interface UserInfoService {
public void saveUserInfo(UserInfo userInfo);
}
2.2實(shí)現(xiàn)類
package com.user.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.user.entity.UserInfo;
import com.user.mapper.UserInfoMapper;
import com.user.service.UserInfoService;
@Service("userInfoService")
public class UserInfoServiceImpl implements UserInfoService {
@Autowired
private UserInfoMapper userInfoMapper;
public void saveUserInfo(UserInfo userInfo) {
userInfoMapper.insertSelective(userInfo);
}
}
3.控制層
package com.user.controller;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.user.entity.UserInfo;
import com.user.service.UserInfoService;
import com.user.vo.UserInfoVO;
@RestController
@RequestMapping("/userInfo")
@MapperScan(basePackages={"com.user.mapper"})
public class UserInfoController {
@Autowired
private UserInfoService userInfoService;
@RequestMapping("/getUserInfo")
public UserInfoVO getUserInfo (){
UserInfoVO userInfo = new UserInfoVO();
userInfo.setId(1345);
userInfo.setUserName("ceshi");
return userInfo;
}
@RequestMapping("/saveUserInfo")
public void saveUserInfo(){
UserInfo userInfo = new UserInfo();
userInfo.setUserEmail("test@qq.com");
userInfo.setUserKey("abc");
userInfo.setUserName("abc");
userInfo.setUserPassword("jjjj");
userInfo.setUserPhoneNumber("13112345678");
userInfoService.saveUserInfo(userInfo);
}
}
控制層增加了注解:
@MapperScan(basePackages={"com.user.mapper"})
這個(gè)千萬(wàn)別掉了谒麦,表示需要使用的mapper俄讹。
忘了說(shuō)了,代碼自動(dòng)生成mapper類之后绕德,需要在類上面添加@Mapper這個(gè)注解患膛,以便讓上面的@MapperScan掃描到這個(gè)文件,就這樣springboot和mybatis就關(guān)聯(lián)起來(lái)了
4.修改啟動(dòng)類的注解
@Configuration
@ComponentScan(basePackages={"com.user.controller","com.user.service.impl"})
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
增加service層掃描迁匠,讓實(shí)例service類的工作交給spring剩瓶。到此我們springboot集成mybatis開(kāi)發(fā)web項(xiàng)目就ok了,啟動(dòng)起來(lái)看看結(jié)果城丧。
訪問(wèn):http://localhost:8080/userInfo/saveUserInfo
結(jié)果: