SpringBoot结合Mybatis注解开发

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

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项目的话,依赖更为清晰。

那么接下来就是配置文件相关的配置:

配置文件

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。

启动类
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接口扫描不到的情况)

接下来就是持久层相关的操作。 UserMapper:

        @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,然后进行调用。

这上面也只是对mybatis的基础使用进行了介绍,有问题的小伙伴记得留言哦~

转载于:https://juejin.im/post/5c4fb46ce51d45517334cfbd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值