zoukankan      html  css  js  c++  java
  • springboot 零xml集成mybatis-plus

    工程结构

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>springboot-demo</artifactId>
            <groupId>cn.xiaojf</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
        </properties>
    
        <artifactId>springboot-mybatis-plus</artifactId>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-freemarker</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus</artifactId>
                <version>2.1.7</version>
            </dependency>
    
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatisplus-spring-boot-starter</artifactId>
                <version>1.0.5</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.45</version>
            </dependency>
        </dependencies>
    </project>

    application.properties

    #应用端口号
    server.port=8010
    #freemarker 默认文件后缀
    spring.freemarker.suffix=.html
    
    #数据库设置
    spring.datasource.driverClassName=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
    spring.datasource.username=root
    spring.datasource.password=root
    
    #mybatis plus 设置
    mybatis-plus.mapper-locations=classpath:/mapper/*Mapper.xml
    #实体扫描,多个package用逗号或者分号分隔
    mybatis-plus.typeAliasesPackage=cn.xiaojf.springboot.mybatisplus.entity
    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
    mybatis-plus.global-config.id-type=2
    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
    mybatis-plus.global-config.field-strategy=2
    #驼峰下划线转换
    mybatis-plus.global-config.db-column-underline=true
    #刷新mapper 调试神器
    mybatis-plus.global-config.refresh-mapper=true
    #数据库大写下划线转换
    #mybatis-plus.global-config.capital-mode=true
    #序列接口实现类配置
    #mybatis-plus.global-config.key-generator=com.baomidou.springboot.xxx
    #逻辑删除配置
    mybatis-plus.global-config.logic-delete-value=0
    mybatis-plus.global-config.logic-not-delete-value=1
    #自定义填充策略接口实现
    #mybatis-plus.global-config.meta-object-handler=com.baomidou.springboot.xxx
    #自定义SQL注入器
    #mybatis-plus.global-config.sql-injector=com.baomidou.springboot.xxx
    mybatis-plus.configuration.map-underscore-to-camel-case=true
    mybatis-plus.configuration.cache-enabled=false

     MybatisPlusConfig.java

    package cn.xiaojf.springboot.mybatisplus.configure;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    @MapperScan("cn.xiaojf.springboot.mybatisplus.mapper*")
    public class MybatisPlusConfig {
    
    }

    UserMapper.java

    package cn.xiaojf.springboot.mybatisplus.mapper;
    
    import cn.xiaojf.springboot.mybatisplus.SuperMapper;
    import cn.xiaojf.springboot.mybatisplus.entity.User;
    
    import java.util.List;
    
    public interface UserMapper extends SuperMapper<User> {
        List<User> findByUserName(String name);
    
        User findUserAddrByName(String name);
    }

    UserMapper.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="cn.xiaojf.springboot.mybatisplus.mapper.UserMapper">
        <resultMap id="userAddr" type="cn.xiaojf.springboot.mybatisplus.entity.User">
            <id column="user_id" property="id"></id>
            <result column="user_name" property="name"></result>
            <result column="user_age" property="age"></result>
            <collection property="userAddrList" ofType="cn.xiaojf.springboot.mybatisplus.entity.UserAddr">
                <id column="addr_id" property="id"></id>
                <result column="addr_name" property="name"></result>
                <result column="user_id" property="userId"></result>
            </collection>
        </resultMap>
    
        <select id="findByUserName" resultType="cn.xiaojf.springboot.mybatisplus.entity.User">
          SELECT * FROM sys_user
        </select>
    
        <select id="findUserAddrByName" resultMap="userAddr">
            SELECT
                u.id AS user_id,u.`name` AS user_name ,u.age AS user_age,addr.`name` AS addr_name,addr.id AS addr_id
            FROM
                sys_user u
            LEFT JOIN sys_user_addr addr ON u.id = addr.user_id
            WHERE
              u.name = #{name}
        </select>
    
    </mapper>

    源码

    https://gitee.com/xiaojf/springboot-demo/tree/master/springboot-mybatis-plus
  • 相关阅读:
    android的窗口创建过程
    android的Binder
    Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
    android的事件分发测试结果
    Don't Store Data in the Application Object
    关于算法
    自定义控件其实很简单3/4
    自定义控件其实很简单2/3
    建设一个能承受500万PV/每天的网站
    strust2里面package的元素排列顺序
  • 原文地址:https://www.cnblogs.com/xiaojf/p/8110039.html
Copyright © 2011-2022 走看看