• Spring整合Mybatis-plus


    1Mybatis-Plus介绍

    •          Mybatis-Plus只是在Mybatis的基础上,实现了功能增强,让开发更加简洁高效。

        Mybatis-Plus并没有修改Mybatis的任何特性。

    2示例:

            2.1 需求:使用Mybatis-Plus对实现用户的crud操作。

            2.2 配置步骤说明:

                    (1)搭建环境(创建项目,导入包)

                    (2)配置Mybatis-plus(基于Spring实现)

                    (3)编写测试代码

           2.3 配置步骤

                    2.3.1 第一步:搭建环境

            前提:已经创建好了数据库

              

               说明:

                    (1)Mybatis-Plus并没有提供单独的jar包,而是通过Maven(或者gradle)来管理jar依赖。本教程需要使用Maven构建项目。

                    (2)Mybatis-Plus是基于Spring框架实现的,因此使用Mybatis-Plus,必须导入Spring相关依赖。

                     2.3.2、创建项目

                     2.3.3、添加依赖

    1. <dependency>
    2. <groupId>junit</groupId>
    3. <artifactId>junit</artifactId>
    4. <version>4.11</version>
    5. <scope>test</scope>
    6. </dependency>
    7. <!-- Mybatis-plus -->
    8. <dependency>
    9. <groupId>com.baomidou</groupId>
    10. <artifactId>mybatis-plus</artifactId>
    11. <version>2.3</version>
    12. </dependency>
    13. <!-- Spring -->
    14. <dependency>
    15. <groupId>org.springframework</groupId>
    16. <artifactId>spring-context</artifactId>
    17. <version>5.2.6.RELEASE</version>
    18. </dependency>
    19. <!-- MySQL -->
    20. <dependency>
    21. <groupId>mysql</groupId>
    22. <artifactId>mysql-connector-java</artifactId>
    23. <version>8.0.16</version>
    24. </dependency>
    25. <!-- 阿里巴巴连接池 -->
    26. <dependency>
    27. <groupId>com.alibaba</groupId>
    28. <artifactId>druid</artifactId>
    29. <version>1.1.21</version>
    30. </dependency>
    31. <!-- Spring整合JDBC -->
    32. <dependency>
    33. <groupId>org.springframework</groupId>
    34. <artifactId>spring-jdbc</artifactId>
    35. <version>5.2.6.RELEASE</version>
    36. </dependency>
    37. <!-- Spring AOP -->
    38. <dependency>
    39. <groupId>org.springframework</groupId>
    40. <artifactId>spring-aspects</artifactId>
    41. <version>5.2.6.RELEASE</version>
    42. </dependency>
    43. <!-- Spring测试-->
    44. <dependency>
    45. <groupId>org.springframework</groupId>
    46. <artifactId>spring-test</artifactId>
    47. <version>5.2.6.RELEASE</version>
    48. <scope>test</scope>
    49. </dependency>

                    2.3.4、 创建Book实体类

                    说明:使用Mybatis-Plus可以不使用xml文件,而是基于一组注解来解决实体类和数据库表的映射问题。

    @TableName(value="ssm_book")

    指定对应的表,表名和类名一致时,可以省略value属性。

    @TableId

    指定表的主键。Value属性指定表的主键字段,和属性名一致时,可以省略。Type指定主键的增长策略。

    @TableField

    指定类的属性映射的表字段,名称一致时可以省略该注解。

    1. @Data
    2. @TableName("ssm_book")
    3. public class Book {
    4. @TableId(value = "book_id",type = IdType.AUTO)
    5. private Integer bookId;
    6. @TableField(value = "book_name")
    7. private String bookName;
    8. @TableField(value = "book_author")
    9. private String bookAuthor;
    10. @TableField(value = "book_date")
    11. private Date bookDate;
    12. @TableField(value = "book_price")
    13. private String bookPrice;
    14. }

                    2.3.5、创建BookMapper接口(继承BaseMapper接口)

    1. public interface BookMapper extends BaseMapper<Book> {
    2. }

                    2.3.6、Spring整合Mybatis-Plus

    1. <context:component-scan base-package="com.plus"/>
    2. <!--1、配置数据源-->
    3. <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
    4. <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    5. <property name="url" value="jdbc:mysql://localhost:3306/mvc?serverTimezone=UTC"/>
    6. <property name="username" value="root"/>
    7. <property name="password" value="123456"/>
    8. <property name="maxActive" value="30"/>
    9. <property name="minIdle" value="5"/>
    10. </bean>
    11. <!--2、Spring整合Mybatis-Plus-->
    12. <bean id="sqlSessionFactoryBean" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
    13. <!--2.1 加载数据源-->
    14. <property name="dataSource" ref="druidDataSource"/>
    15. <!--2.2 指定pojo包-->
    16. <property name="typeAliasesPackage" value="com.plus.pojo"/>
    17. <!--2.3 配置mybatis-plus插件-->
    18. <property name="plugins">
    19. <list>
    20. <!--配置分页插件-->
    21. <bean class="com.baomidou.mybatisplus.plugins.PaginationInterceptor"/>
    22. <!--配置拦截器属性-->
    23. <bean class="com.baomidou.mybatisplus.plugins.PerformanceInterceptor">
    24. <property name="maxTime" value="1000"/>
    25. <property name="format" value="true"/>
    26. </bean>
    27. </list>
    28. </property>
    29. <property name="globalConfig" ref="globalConfiguration"/>
    30. </bean>
    31. <!--3、配置Mybatis-Plus全局属性-->
    32. <bean id="globalConfiguration" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
    33. <!--2.3以后的版本中dbColumnUnderline默认为true,即开启驼峰命名-->
    34. <property name="dbColumnUnderline" value="true"/>
    35. <!--全局主键策略
    36. 0 :AUTO(主键自增)
    37. 1 :INPUT(用户输入ID)
    38. 2 :ID_WORKER(全局唯一ID)
    39. 3 :UUID(全局唯一ID)
    40. -->
    41. <property name="idType" value="0"/>
    42. <property name="tablePrefix" value="ssm_"/>
    43. </bean>
    44. <!--4、配置Mybatis动态代理-->
    45. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    46. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/>
    47. <property name="basePackage" value="com.plus.mapper"/>
    48. </bean>
    49. <!--5、配置事务管理器-->
    50. <bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    51. <property name="dataSource" ref="druidDataSource"/>
    52. </bean>
    53. <!--6、开启注解声明式事务-->
    54. <tx:annotation-driven/>

       2.4 测试:

    1. @RunWith(SpringJUnit4ClassRunner.class)
    2. @ContextConfiguration(locations = {"classpath:spring-data.xml"})
    3. @ComponentScan(basePackages = "com.plus")
    4. public class BookMapperTest {
    5. @Autowired
    6. private BookMapper bookMapper;
    7. //查询所有记录
    8. @Test
    9. public void selectAll(){
    10. List<Book> bookList = bookMapper.selectList(null);
    11. for(Book book : bookList){
    12. System.out.println(book);
    13. }
    14. }
    15. //插入记录
    16. @Test
    17. public void insert(){
    18. Book book = new Book(null,"Mybatis-Plus","李刚",new Date(),78.5);
    19. bookMapper.insert(book);
    20. }
    21. //更加id查询
    22. @Test
    23. public void selectById(){
    24. Book book = bookMapper.selectById(57);
    25. System.out.println(book);
    26. }
    27. //按图书名查找
    28. @Test
    29. public void selectByName(){
    30. EntityWrapper<Book> wrapper = new EntityWrapper<>();
    31. wrapper.eq("book_name","平凡的世界");
    32. List<Book> bookList = bookMapper.selectList(wrapper);
    33. for(Book book :bookList){
    34. System.out.println(book);
    35. }
    36. }
    37. //分页查询,第1页,每页显示5条
    38. @Test
    39. public void pageList(){
    40. RowBounds rowBounds = new RowBounds(0,5);
    41. List<Book> books = bookMapper.selectPage(rowBounds,null);
    42. for(Book book:books){
    43. System.out.println(book);
    44. }
    45. }
    46. //模糊查询
    47. @Test
    48. public void selectByLike(){
    49. EntityWrapper<Book> wrapper = new EntityWrapper<>();
    50. wrapper.like("book_author","%陈%");
    51. List<Book> books = bookMapper.selectList(wrapper);
    52. for(Book book:books){
    53. System.out.println(book);
    54. }
    55. }
    56. }

  • 相关阅读:
    动态链接库Dll的编写与使用
    RabbitMq
    详解clientWidth,scrollWidth,offsetWidth,innerWidth,outerWidth
    使用 mapstructure 解析 json
    【C语言】字符与字符串---从入门到入土级详解
    139. 单词拆分
    肖sir___银行项目讲解理财
    IDEA调试总结
    useState源码解读 及 手撕 useState 实现
    leetcode热题HOT 238. 除自身以外数组的乘积
  • 原文地址:https://blog.csdn.net/m0_37911706/article/details/125626669