SpringBoot结合Mybatis注解开发

从事java开发的小伙伴们,相信对SSM以及SSH都不陌生,这些框架在SpringBoot没有出现以前是很是火的,随着技术的不断发展,愈来愈多的技术涌现出来,哪怕Web层的框架也愈来愈多,如今的新型创业公司中,也是使用的是新型的技术。我在这边就简单的为小伙伴介绍下springboot结合mybatis。java

Maven依赖

<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的基础使用进行了介绍,有问题的小伙伴记得留言哦~数据库

相关文章
相关标签/搜索