从事java开发的小伙伴们,相信对SSM以及SSH都不陌生,这些框架在SpringBoot没有出现以前是很是火的,随着技术的不断发展,愈来愈多的技术涌现出来,哪怕Web层的框架也愈来愈多,如今的新型创业公司中,也是使用的是新型的技术。我在这边就简单的为小伙伴介绍下springboot结合mybatis。java
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.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>
<mybatis-spring-boot-starter>1.3.0</mybatis-spring-boot-starter>
<druid.version>1.1.0</druid.version>
<pagehelper.version>1.1.2</pagehelper.version>
</properties>
<dependencyManagement>
<dependencies>
*****你本身的服务依赖
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot-starter}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</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-test</artifactId>
<scope>test</scope>
</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>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper.version}</version>
</dependency>
<!-- alibaba的druid数据库链接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
</dependencies>
复制代码
上面是parent里面的pom依赖关系,子项目中所须要的依赖也能够在这里面定义版本。这样咱们对一个springboot项目的话,依赖更为清晰。mysql
那么接下来就是配置文件相关的配置:git
server.port=8080
#session time(s)
server.session.timeout=1800
spring.thymeleaf.cache=false
#datasource
spring.datasource.name=dbName
spring.datasource.url=jdbc\:mysql\://ip:3306/dbName?characterEncoding=utf-8&useUnicode=true&useSSL=false
spring.datasource.username=****montos****
spring.datasource.password=****montos****
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.filters=stat
spring.datasource.maxActive=20
spring.datasource.initialSize=1
spring.datasource.maxWait=60000
spring.datasource.minIdle=1
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=select 'x'
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
spring.datasource.maxOpenPreparedStatements=20
#pagehelper
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
#mybatis log
mybatis.configuration.log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
复制代码
这上面就简单的配置了数据源以及分页相关的设置,在这里就很少说了。 接下就是代码里面的相关配置了。 这里是基于mybatis注解形式开发,spring中须要加载mybatis持久层Bean。github
package com.montos.service;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.montos.dao")
public class WarehouseStarterApplication {
public static void main(String[] args) {
SpringApplication.run(WarehouseStarterApplication.class, args);
}
}
复制代码
这里面的@MapperScan
扫描的是dao中接口的包路径。这样咱们就能将咱们须要的Bean扫描到容器中。(固然,直接在dao上面加上@Mapper
也是能够实现的,不过这里须要注意的是,dao层的包名须要是在StarterApplication类下面,否则会出现相关dao接口扫描不到的状况)web
接下来就是持久层相关的操做。 UserMapper:spring
@Delete("delete from User where id = #{id}")
int deleteByPrimaryKey(String id);
@SelectKey(keyProperty = "user.id", resultType = String.class, before = true, statement = "select replace(uuid(), '-', '')")
@Insert("insert into user (id, name) values (#{user.id},#{user.name}")
@Options(keyProperty = "user.id", useGeneratedKeys = true)
int insert(@Param("user") User user);
@Select("select * from User where id = #{id}")
User selectByPrimaryKey(String id);
@Update("update User set name = #{name} where id = #{id}")
int updateByPrimaryKey(User user);
复制代码
上面就简单的对CRUD操做进行一个简单的介绍。 service层中和调用以前的持久层同样,注入一个持久层的Bean,而后进行调用。sql
这上面也只是对mybatis的基础使用进行了介绍,有问题的小伙伴记得留言哦~数据库