zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    Pycharm的使用秘籍
    python 装饰器
    python继承和重写
    python中一切皆对象及__init__.py文件的使用
    python的参数类型与时序解包
    Jmeter使用计数器生成变量
    python unittest套件加载用例时,出现No tests were found,Empty test suite
    Python 执行tail文件并操作
    go 函数和流程控制
    go 数据类型和操作符
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/8745196.html
Copyright © 2011-2022 走看看