精华内容
下载资源
问答
  • springboot整合mybatisplus

    2020-05-03 21:27:57
    springboot整合mybatisplus 昨天有码友给我留言说为什么不用springboot整合mybatisplus进行使用,鉴于我也是一枚小白,今天就试试springboot整合,了解的也不是太多,简单记录一下,希望大家多多指点,不要介意。 一...

    springboot整合mybatisplus

    昨天有码友给我留言说为什么不用springboot整合mybatisplus进行使用,鉴于我也是一枚小白,今天就试试springboot整合,了解的也不是太多,简单记录一下,希望大家多多指点,不要介意。

    一、springboot简单整合mybatisplus(

    大家不了解spring整合mybatisplus的可以先去看一下我的上一篇文章,这里不再说了。)

    这里就简单说一下吧,springboot整合mybatisplus相比较于spring整合,最直接明了的就是少了那些各种各样的配置文件。

    在springboot里面使用时,去掉了配置文件,只是在一个yml文件里面,进行配置

    spring里面的数据库配置信息,数据源配置,声明全局配置,这里都集合在一个配置文件里面了

    #数据源
    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC
        username: root
        password: root
        type: org.springframework.jdbc.datasource.DriverManagerDataSource
    #配置mybatisplus
    mybatis-plus:
      mapper-locations:
      - classpath:mapper/*Mapper.xml
      global-config:
        db-config:
          id-type: auto
        banner: true
    
    

    至于增删查改的方法与spring的如出一辙,这里就不再说了,这里说一个分页查询。

    • spring的分页查询
    <!-- spring xml 方式 -->
    <property name="plugins">
        <array>
            <bean class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor">
                <property name="sqlParser" ref="自定义解析类、可以没有"/>
                <property name="dialectClazz" value="自定义方言类、可以没有"/>
                <!-- COUNT SQL 解析.可以没有 -->
                <property name="countSqlParser" ref="countSqlParser"/>
            </bean>
        </array>
    </property>
    
    <bean id="countSqlParser" class="com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize">
        <!-- 设置为 true 可以优化部分 left join 的sql -->
        <property name="optimizeJoin" value="true"/>
    </bean>
    
        //分页查询
        private static void query5(UserMapper userMapper){
            IPage<User> page=new Page<>(1,5);
            userMapper.selectPage(page,null);
            long total=page.getTotal();
            System.out.println("总条数:"+total);
            List<User> list=page.getRecords();
            print(list);
        }
    
    • springboot的分页查询
    //Spring boot方式
    @EnableTransactionManagement
    @Configuration
    @MapperScan("com.baomidou.cloud.service.*.mapper*")
    public class MybatisPlusConfig {
    
        @Bean
        public PaginationInterceptor paginationInterceptor() {
            PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
            // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
            // paginationInterceptor.setOverflow(false);
            // 设置最大单页限制数量,默认 500 条,-1 不受限制
            // paginationInterceptor.setLimit(500);
            // 开启 count 的 join 优化,只针对部分 left join
            paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
            return paginationInterceptor;
        }
    }
    
    
    	//分页查询
    	@Test
    	public void queryForPage() {
    		IPage<User> page=new Page<>(1, 5);
    		userMapper.selectPage(page, null);
    		List<User> list = page.getRecords();
    		for (User user : list) {
    			System.out.println(user);
    		}
    		System.out.println("总条数:"+page.getTotal());
    	}
    	
    

    关于springboot整合mybatisplus这里就简单说到这里。

    二、代码生成器(重点)

    public class CodeGenerator {
    
        /**
         * <p>
         * 读取控制台内容
         * </p>
         */
        public static String scanner(String tip) {
            Scanner scanner = new Scanner(System.in);
            StringBuilder help = new StringBuilder();
            help.append("请输入" + tip + ":");
            System.out.println(help.toString());
            if (scanner.hasNext()) {
                String ipt = scanner.next();
                if (StringUtils.isNotEmpty(ipt)) {
                    return ipt;
                }
            }
            throw new MybatisPlusException("请输入正确的" + tip + "!");
        }
    
        public static void main(String[] args) {
            // 代码生成器
            AutoGenerator mpg = new AutoGenerator();
    
            // 全局配置
            GlobalConfig gc = new GlobalConfig();
            //用户目录即当前目录
            String projectPath = System.getProperty("user.dir");
            gc.setOutputDir(projectPath + "/src/main/java");
            gc.setAuthor("小谢");
            gc.setOpen(true);//当代码生成完成后是否打开代码所在的文件夹
            // gc.setSwagger2(true); 实体属性 Swagger2 注解
            mpg.setGlobalConfig(gc);
    
            // 数据源配置
            DataSourceConfig dsc = new DataSourceConfig();
            dsc.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC");
            // dsc.setSchemaName("public");
            dsc.setDriverName("com.mysql.jdbc.Driver");
            dsc.setUsername("root");
            dsc.setPassword("root");
            mpg.setDataSource(dsc);
    
            // 包配置
            PackageConfig pc = new PackageConfig();
    //        pc.setModuleName(scanner("模块名"));
            pc.setModuleName("sys");
            pc.setParent("com.xieyunjie");//controller entity  service  service.impl
            pc.setController("controller");
            pc.setEntity("domain");
            pc.setMapper("mapper");
            pc.setService("service");
            pc.setServiceImpl("service.impl");
            //生成后需要更换所在位置到resources目录下
            pc.setXml("mapper.xml");
            mpg.setPackageInfo(pc);
    
            // 策略配置
            StrategyConfig strategy = new StrategyConfig();
            //设置字段和表名的是否把下划线完成驼峰命名规则
            strategy.setNaming(NamingStrategy.underline_to_camel);
            strategy.setColumnNaming(NamingStrategy.underline_to_camel);
            //设置生成的实体类继承的父类
    //        strategy.setSuperEntityClass("com.xieyunjie.BaseEntity");
            strategy.setEntityLombokModel(true);//是否启动lombok
            strategy.setRestControllerStyle(true);//是否生成resetController
            // 公共父类
    //        strategy.setSuperControllerClass("com.xieyunjie.BaseController");
            // 写于父类中的公共字段
    //        strategy.setSuperEntityColumns("person_id","person_name");
            //要设置生成哪些表 如果不设置就是生成所有的表
    //        strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
            strategy.setControllerMappingHyphenStyle(true);
    //        strategy.setTablePrefix(pc.getModuleName() + "_");
            strategy.setTablePrefix("sys_");
            mpg.setStrategy(strategy);
            mpg.execute();
        }
    
    
    

    效果这里就不再展示了,谢谢!

    天涯志

    展开全文
  • SpringBoot整合mybatisPlus

    2020-11-19 09:01:03
    SpringBoot整合mybatisPlus 实现多对多关系的维护 user <1----n-> user_roles <-n-----1> roles 文章目录SpringBoot整合mybatisPlus1、依赖2、application.yml配置3、pojo实体类3、dao接口4、mapper映射...

    SpringBoot整合mybatisPlus

    实现多对多关系的维护 user <1----n-> user_roles <-n-----1> roles

    1、依赖

        <!--记得修改自己对应的版本-->
     	<!--        mysql驱动-->
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
         <!--        连接池-->
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>druid</artifactId>
             <version>1.1.23</version>
         </dependency>
          <!--        mybatis-plus支持-->
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>3.4.0</version>
         </dependency>
         <!--lombok-->
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
         </dependency>
    

    2、application.yml配置

    spring:
     datasource:
     	type: com.alibaba.druid.pool.DruidDataSource
     	driver-class-name: com.mysql.jdbc.Driver
     	url: jdbc:mysql://localhost:3306/erp?useUnicode=true&charecterEncoding=utf-8
     	username: root
    	password: root
    	
    mybatis-plus:
    #实体类的包
     type-aliases-package: com.hdax.pojo
     # mapper映射文件
     mapper-locations: classpath:com/hdax/dao/*Mapper.xml
     configuration:
     	#日志实现方式
     	log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    

    3、pojo实体类

    • User
      @TableName(value = "users", resultMap = "userBase")
      @Component
      @Data
      public class User implements Serializable {
      
          @TableId(value = "uid", type = IdType.AUTO)
          private Integer id;
      
          @TableField(value = "uname")
          private String name;
      
          @TableField(value = "upassword")
          private String password;
      
          @TableField(value = "salt")
          private String salt;
      
          @TableField(value = "state")
          private Integer state;
      
          @TableField(exist = false)
          private List<Roles> roles;
      
      }
      
    • Roles
      @Component
      @TableName(value = "roles", resultMap = "rolesBase")
      @Data
      public class Roles {
      
          @TableId(value = "rid", type = IdType.AUTO)
          private Integer id;
      
          @TableField(value = "rname")
          private String name;
      
          @TableField(exist = false)
          private List<User> users;
      
      }
      

    3、dao接口

    • UserDao
      //继承BaseMapper类传入泛型
      public interface UserMapper extends BaseMapper<User> {
      
      	User findByRid(@Param("rid")Integer rid);
      
      }
      
    • RolesDao
      public interface RolesMapper extends BaseMapper<Roles> {
      
      	Roles findByUid(@Param("uid")Integer uid);
      
      }
      

    4、mapper映射文件

    该文件的位置要与配置的映射文件一致

    • UserMapper
      	<!--    结果集映射-->
      <resultMap id="userBase" type="User">
          <id property="id" column="uid"/>
          <result property="name" column="uname"/>
          <result property="password" column="upassword"/>
          <result property="salt" column="salt"/>
          <result property="state" column="state"/>
          <collection property="roles" ofType="Roles" column="uid"
                      select="com.hdax.dao.RolesMapper.findByUid"/>
      </resultMap>
      
         <!--    根据用户角色中间表查询该用户拥有几种角色-->
      <select id="findByRid" resultType="User">
          select u.uid as id, u.uname as name, u.upassword as password, u.salt , u.state
          from users as u
          inner join users_roles as us on u.uid = us.uid
          where us.rid = #{rid}
      </select>
      
    • RolesMapper
        <!--    结果集映射-->
      <resultMap id="rolesBase" type="Roles">
          <id property="id" column="rid"/>
          <result property="name" column="rname"/>
          <collection property="users" column="rid" ofType="User"
                      select="com.hdax.dao.UserMapper.findByRid"/>
      </resultMap>
      
      <!--    根据用户角色中间表查询该角色被几种用户拥有-->
      <select id="findByUid" resultType="Roles">
          select r.rid as id, r.rname as name
          from roles as r
          inner join users_roles as ur on r.rid = ur.rid
          where ur.uid = #{uid}
      </select>
      

    5、测试

    @MapperScan(“com.hdax.dao”)要在测试类上添加该注解

    public class RolesMapperTest {
        @Autowired
        private RolesMapper rolesMapper;
    
        @Test
        public void findAll(){
            List<Roles> roles = rolesMapper.selectList(null);
            roles.forEach(System.out::println);
        }
    
    }
    
    展开全文
  • SpringBoot整合MybatisPlus

    2021-06-28 15:30:55
    SpringBoot整合MybatisPlus

    SpringBoot整合MybatisPlus

    创建数据库

    DROP TABLE IF EXISTS `t_user`;
    CREATE TABLE `t_user` (
      `id` bigint(32) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) NOT NULL DEFAULT '' COMMENT '姓名',
      `age` int(6) NOT NULL DEFAULT '0' COMMENT '年龄',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of t_user
    -- ----------------------------
    INSERT INTO `t_user` VALUES ('1', '大乔', '18');
    

    新建项目并建立如下结构
    在这里插入图片描述
    编写数据库文件

    server:
      port: 8888
    
    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
        username: root
        password: 123456
    

    编写实体类

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @TableName(value = "t_user")
    public class User {
    
        @TableId
        private Long id;
    
        private String name;
    
        private Integer age;
    }
    

    编写mapper接口

    @Mapper
    public interface UserMapper extends BaseMapper<User> {
    
    }
    

    编写service接口和实现类

    public interface UserService{
        User getUserById(Long id);
    }
    

    service实现类

    @Service
    public class UserServiceImpl implements UserService{
    
        @Resource
        private UserMapper userMapper;
    
        @Override
        public User getUserById(Long id) {
            User user = (User) userMapper.selectById(id);
            return user;
        }
    }
    

    编写controller

    @RestController
    public class UserController {
    
        @Resource
        private UserService userService;
    
        @GetMapping("/user/{id}")
        public User getUserById(@PathVariable("id") Long id){
            return userService.getUserById(id);
        }
    
    }
    
    
    

    启动并测试
    在这里插入图片描述

    展开全文
  • SpringBoot整合MyBatisPlus

    2021-03-07 20:05:30
    SpringBoot整合MybatisPlusMyBatis 和 MyBaitsPlusMyBatis简介MyBaitsPlus简介SpringBoot整合MybatisPlus MyBatis 和 MyBaitsPlus MyBatis简介 简介: MyBatis 本是apache的一个开源项目iBatis。最初侧重于码软件...

    MyBatis 和 MyBaitsPlus

    MyBatis简介

    • 简介:
      MyBatis 本是apache的一个开源项目iBatis。最初侧重于码软件开发,后续发展成为一款基于java的持久层框架。
      MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

    • 特性:

      • 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
      • 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
        解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
      • 提供映射标签,支持对象与数据库的orm字段关系映射
      • 提供xml标签,支持编写动态sql语句

    MyBaitsPlus简介

    • 简介:
      MyBatisPlus 是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

    • 特性:

      • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
      • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
      • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
      • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询

    SpringBoot整合MybatisPlus

    • 新建SpringBoot项目
      在这里插入图片描述

    • 在这里可以选择一些项目相关的依赖,自动导入,也可以选择项目版本
      在这里插入图片描述

    • 在pom文件中导入相关的依赖
      在这里插入图片描述

    • MybatisPlus有个蛮省事儿的代码生成器,可以帮助我们快速生成实体bean、mapper、service、controller。在导入如上图的依赖后,使用MybatisPlus网站上提供的工具类代码,根据要求写入模块名数据库表名,就OK啦。

    • 当然在使用代码生成器前,首先应该将一些相关配置写如配置文件中,我这里用的yml文件
      在这里插入图片描述

    • 到这里我们的整合就差不多啦,如果还有啥不清楚的地方,再百度百度

    展开全文
  • SpringBoot整合mybatisplus

    2021-03-20 20:06:08
    SpringBoot整合mybatisplus <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </...
  • springboot-mybatisplus springboot整合mybatisplus
  • 主要介绍了SpringBoot整合MybatisPlus的简单教程实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 文章目录SpringBoot 整合 MybatisPlus1.导入依赖2.编辑配置文件3.编辑 mapper4.修改启动类 SpringBoot 整合 MybatisPlus 1.导入依赖 com.baomidou mybatis-plus-boot-starter 3.3.1.tmp 2.编辑配置文件 ...
  • 主要介绍了Springboot整合MybatisPlus的实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要介绍了SpringBoot整合MyBatisPlus配置动态数据源的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
  • 超详细教程:SpringBoot整合MybatisPlus

    千次阅读 2021-05-08 15:11:30
    摘要:本文为大家带来SpringBoot整合MybatisPlus的教程,实现SpringBoot项目中依赖数据模块进行数据操作,并进行简单测试。
  • SpringBoot整合MybatisPlus配置多数据源

    万次阅读 2020-01-07 11:55:24
    前言 去年的时候公司的一个项目需要配置多数据源,当时使用的是...以下来记录下自己使用SpringBoot整合MybatisPlus和配置多数据源。 整合步骤目录  1. 新建SpringBoot项目。  2. 导入依赖 --> devtools,...
  • springboot整合mybatisPlus

    2021-07-19 10:33:05
    mysql整合mybatisPlus代码片段,自动化生成代码片段 引入pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <...
  • SpringBoot整合MybatisPlus【超详细】

    千次阅读 多人点赞 2021-04-09 11:08:04
    SpringBoot整合MybatisPlus【超详细】创建个SpringBoot项目写个HelloController测试下使用代码生成器生成代码添加所需的依赖CodeGenerator运行代码生成器,在控制台输入想要生成的表 创建个SpringBoot项目 勾选生所...
  • springboot整合MybatisPlus

    2021-03-10 20:18:55
    最近遇到了项目需要用到MybatisPlus,所以想自己整理一篇demo,自己当笔记本查阅 源码下载 亲测有效 实践 pom <dependency> <groupId>org.springframework.boot</groupId> <...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,095
精华内容 2,438
关键字:

springboot整合mybatisplus

spring 订阅