SpringBoot Mybatis整合(註解版),SpringBoot集成Mybatis(註解版)

SpringBoot Mybatis整合(註解版),SpringBoot集成Mybatis(註解版)java

 

================================mysql

©Copyright 蕃薯耀 2018年4月8日web

http://www.cnblogs.com/fanshuyao/spring

 

源代碼下載見:http://fanshuyao.iteye.com/blog/2415933sql

 

1、引入Mybatis依賴包:數據庫

Xml代碼   收藏代碼
  1. <dependency>  
  2.     <groupId>org.mybatis.spring.boot</groupId>  
  3.     <artifactId>mybatis-spring-boot-starter</artifactId>  
  4.     <version>1.3.2</version>  
  5. </dependency>  

 數據庫鏈接依賴包:apache

Xml代碼   收藏代碼
  1. <dependency>  
  2.   <groupId>mysql</groupId>  
  3.   <artifactId>mysql-connector-java</artifactId>  
  4.   <scope>runtime</scope>  
  5. </dependency>  
  6.           
  7. <dependency>  
  8.   <groupId>com.alibaba</groupId>  
  9.   <artifactId>druid</artifactId>  
  10.   <version>1.1.9</version>  
  11. </dependency>  

 

2、創建對應的表和Java實體(過程略)springboot

3、創建實體對應的Mapper(如UserMapper )session

Java代碼   收藏代碼
  1. import org.apache.ibatis.annotations.Insert;  
  2. import org.apache.ibatis.annotations.Mapper;  
  3. import org.apache.ibatis.annotations.Options;  
  4. import org.apache.ibatis.annotations.Select;  
  5.   
  6. import com.lqy.springboot.bean.User;  
  7.   
  8. @Mapper  
  9. public interface UserMapper {  
  10.   
  11.     @Select("select * from user where user_id = #{userId}")  
  12.     public User getById(Integer userId);  
  13.       
  14.     @Options(useGeneratedKeys=true,keyProperty="userId")  
  15.     @Insert("insert into user(user_name,age) values(#{userName},#{age})")  
  16.     public Integer save(User user);   
  17. }  

 

注意:使用註解版須要在類上加上@Mapper註解,讓SpringBoot自動掃描能識別mybatis

Java代碼   收藏代碼
  1. @Mapper  

 問題:若是有不少Mapper接口,能不能一次性掃描呢?

有。

在程序啓動入口加入註解:

Java代碼   收藏代碼
  1. @MapperScan(basePackages= {"com.lqy.springboot.mapper"})  

具體以下:

Java代碼   收藏代碼
  1. import org.mybatis.spring.annotation.MapperScan;  
  2. import org.springframework.boot.SpringApplication;  
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;  
  4.   
  5. //Mybatis自動掃描包  
  6. //@MapperScan(basePackages= {"com.lqy.springboot.mapper"})  
  7. @SpringBootApplication  
  8. public class SpringbootDatasourceApplication {  
  9.   
  10.     public static void main(String[] args) {  
  11.         SpringApplication.run(SpringbootDatasourceApplication.class, args);  
  12.     }  
  13. }  

 這樣就能解決多Mapper須要添加註解的麻煩。

 

4、測試Mapper

Java代碼   收藏代碼
  1. import org.springframework.beans.factory.annotation.Autowired;  
  2. import org.springframework.web.bind.annotation.RequestMapping;  
  3. import org.springframework.web.bind.annotation.RestController;  
  4.   
  5. import com.lqy.springboot.bean.User;  
  6. import com.lqy.springboot.mapper.UserMapper;  
  7.   
  8. @RestController  
  9. public class UserController {  
  10.   
  11.     @Autowired  
  12.     private UserMapper userMapper;  
  13.       
  14.     @RequestMapping("/getUser")  
  15.     public User getUser(Integer userId) {  
  16.         if(userId == null) {  
  17.             userId = 1;  
  18.         }  
  19.         return userMapper.getById(userId);  
  20.     }  
  21.       
  22.     @RequestMapping("/saveUser")  
  23.     public User saveUser(User user) {  
  24.         userMapper.save(user);  
  25.         return user;  
  26.     }  
  27.       
  28. }  

 

5、SpringBoot Mybatis增長駝峯命名規則:

由於是註解版,沒有配置文件,因此SpringBoot增長駝峯命名須要增長一個自定義配置類(ConfigurationCustomizer):

Java代碼   收藏代碼
  1. import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;  
  2. import org.springframework.context.annotation.Bean;  
  3. import org.springframework.context.annotation.Configuration;  
  4.   
  5. /** 
  6.  * mybatis 註解版  
  7.  * 
  8.  */  
  9. @Configuration  
  10. public class MybatisConfig {  
  11.   
  12.     @Bean  
  13.     public ConfigurationCustomizer configurationCustomizer() {  
  14.         return new ConfigurationCustomizer() {  
  15.   
  16.             @Override  
  17.             public void customize(org.apache.ibatis.session.Configuration configuration) {  
  18.                 configuration.setMapUnderscoreToCamelCase(true);//設置駝峯命名規則  
  19.             }  
  20.         };  
  21.     }  
  22. }  

 

 

================================

©Copyright 蕃薯耀 2018年4月8日

http://www.cnblogs.com/fanshuyao/

相關文章
相關標籤/搜索