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

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

 

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

©Copyright 蕃薯耀 2018年4月8日

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

 

源代码下载见:http://fanshuyao.iteye.com/blog/2415933

 

一、引入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>  

 数据库连接依赖包:

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>  

 

二、建立对应的表和Java实体(过程略)

三、建立实体对应的Mapper(如UserMapper )

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自动扫描能识别

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需要添加注解的麻烦。

 

四、测试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. }  

 

五、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/

posted @ 2018-04-08 15:22  蕃薯耀  阅读(13899)  评论(1编辑  收藏  举报