SpringBoot整合Mybatis(部分代码,逆向生成请移步~)

项目树

springboot

    src/main/java

        cn/yxh/springboot

            pojo

                User.java

                UserExample.java

            mapper

                UserMapper.java

            controller

                UserController.java

            service

                impl

                    UserServiceImpl.java

                UserService.java

            utils

            App.java

    src/main/resources

        mybatis

            mapper

                UserMapper.xml

        static

        templates

        application.yml

    pom.xml

-----------------------------------------------------------

User.java(此处省略getset)

@Table(name = "admin")
public class User {
/**
* 编号
*/
@Column(auto = true)
private Integer id;

/**
* 姓名
*/
@Column(unique = true, maxLength = 10)
private String name;

/**
* 年龄
*/
@Column()
private Integer age;.
}

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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.yxh.springboot</groupId>
    <artifactId>springboot-test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>springboot-test</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.35</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-joda</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-parameter-names</artifactId>
        </dependency>
        <!-- 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!-- alibaba的druid数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- mybatis generator 自动生成代码插件 -->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
            </plugin>
        </plugins>
    </build>


</project>

application.yml

spring:
  datasource:
    # 驱动配置信息
    url: jdbc:mysql://localhost:3306/depot?useUnicode=true&characterEncoding=utf8
    username: root
    password: 1234
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver

    # 连接池的配置信息
    filters: stat
    maxActive: 20
    initialSize: 1
    maxWait: 60000
    minIdle: 1
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: select 'x'
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
    maxOpenPreparedStatements: 20

mybatis:
  mapper-locations: classpath*:mybatis/mapper/*.xml

UserController.java

/**
 * @RestController 和 @Controller的区别
  * @RestController 返回的数据直接封装为JSON格式,不支持返回视图
  * @Controller 可以返回视图,若要返回json的数据要加上@ResponseBody注解
 */
@RestController
public class UserController {

     /**
     * @Autowired和@Resource的区别
     * @Autowired 按byType自动注入 ---spring
     * @Resource 按byName自动注入---javaee
     * 都能自动装配bean,都能写在setter方法上
     * @Autowired 默认情况下必须要求依赖对象必须存在
     * 空值则@Autowired(required=false)
     */

    @Autowired
    private UserService userService;

    @RequestMapping("/index")
    public String addUser(User user){

            userService.addUser(user);
            return "success";
    }
}

UserService.java

public interface UserService {

    public void addUser(User user);
}

UserServiceImpl.java

@Service
public class UserServiceImpl implements UserService {

    @Resource
    private UserMapper userMapper;

    /* 新增用户 */
    public void addUser(User user) {
        /*忽略空值校验...*/
        userMapper.insert(user);
    }
}

App.java

@SpringBootApplication
/*此处与Mapper文件的@Mapper注解二选一*/
@MapperScan("cn.yxh.springboot.mapper")
public class App {

    public static void main(String[] args) {
        SpringApplication.run(App.class,args);
    }

}

猜你喜欢

转载自www.cnblogs.com/yxh-17/p/9706616.html