创建springboot 标准工程(MyBatis)

Posted legion

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建springboot 标准工程(MyBatis)相关的知识,希望对你有一定的参考价值。

实现目标:

创建一个简单的数据库demo,表名mach,id为自增,mach_no为字符串

 

 创建Maven的jar工程,pom.xml内容如下

<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>com.legion</groupId>
    <artifactId>standard</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
    </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-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.28</version>
        </dependency>
    </dependencies>
</project>

创建常规的package

com.legion.controller

com.legion.dao

com.legion.pojo

com.legion.service

创建包com.legion,新建类MyBootDemo,其中有main函数

@SpringBootApplication
public class MyBootDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SpringApplication.run(MyBootDemo.class,args);
    }

}

注意:其他包必须和springboot入口的package同级,或者处于下一级。

看到了有的工程在此处使用了

@ComponentScan(basePackages="XX.YY")
@MapperScan(basePackages="XX.YY.ZZ")

 

在src/main/resources建立application.properties文件

#下面这一行指定Mapper xml文件位置,发现不配置也可以
mybatis.mapper-locations=classpath:com/legion/dao/*.xml spring.datasource.url=jdbc:mysql://localhost:3306/demo spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.username=root spring.datasource.password=123456

使用Druid的参考配置

#durid
spring.datasource.type = com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.druid.url = jdbc:mysql://localhost:3306/springboot_mybatis
spring.datasource.druid.username=root
spring.datasource.druid.password=root
 
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
spring.datasource.druid.initialSize=5
spring.datasource.druid.minIdle=5
spring.datasource.druid.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.druid.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 
spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒 
spring.datasource.druid.minEvictableIdleTimeMillis=300000
spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL
spring.datasource.druid.testWhileIdle=true
spring.datasource.druid.testOnBorrow=false
spring.datasource.druid.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小 
spring.datasource.druid.poolPreparedStatements=true
spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,\'wall\'用于防火墙 
spring.datasource.druid.filters=stat,wall,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合并多个DruidDataSource的监控数据
spring.datasource.druid.useGlobalDataSourceStat=true

 

 

使用yml的一个参考配置

server:
  port: 8080

spring:
    datasource:
        name: test
        url: jdbc:mysql://127.0.0.1:3306/depot
        username: root
        password: root
        # 使用druid数据源
        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

 

下面的内容和标准的SSM区别不大,注意Mapper接口加上@Mapper注解。

 

com.leigon.controller中UserController.java的内容

@RestController
public class UserController {
    @Autowired
    private MachineService ms;
    @RequestMapping("/all")
    public List<Machine> findAll(){
        return ms.findAll();
    }
    
    @RequestMapping("/hello")
    public String show() {
        return "hello,world";
    }
    
}

com.legion.dao

MachineMapper.java

@Mapper
public interface MachineMapper {
    public List<Machine> findAll();
}

MachineMapper.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="com.legion.dao.MachineMapper">
    <select id="findAll" resultType="com.legion.pojo.Machine">
        select * from mach
    </select>

</mapper>

com.legion.pojo中的Machine.java

public class Machine {
    private int id;
    private String mach_no;
//getter and setter
...
}

com.legion.service接口和实现

public interface MachineService {
    public List<Machine> findAll();
}


@Service
public class MachineServiceImpl implements MachineService {
    
    @Autowired
    private MachineMapper machine;
    @Override
    public List<Machine> findAll() {
        return machine.findAll();
    }

}

 打包

pom.xml添加

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

然后右键项目,run as=-Maven Install,target目录中生成相应的jar文件。

方法2:run as -Maven Build填写package

 

 

如果出现No compiler is provided in this environment 的错误,

保证这里是JDK中的JRE

还有这里勾选上

 

额外阅读   ,阅读2 ,,阅读3

 

在CentOS上部署运行

https://blog.csdn.net/lhc0512/article/details/80635929

 

以上是关于创建springboot 标准工程(MyBatis)的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot示例教程MySQL与Mybatis基础用法

创建springboot的聚合工程

SpringBoot整合MyBatis

idea下springBoot+mybatis的逆向工程

SpringBoot整合Mybatis

SpringBoot整合Mybatis方式2:使用注解方式整合Mybatis