媒介
本章节开始先容数据会见方面的相关常识点。对付后端开拓者而言,劳务派遣管理系统,和数据库打交道是天天都在举办的,所以一个好用的ORM框架是很有须要的。今朝,绝大部门公司都选择MyBatis框架作为底层数据库耐久化框架。
多说几句
看着此刻Mybatis框架的大行其道,让我不禁想起,大学时期,其时照旧hibernate的时代,此刻根基已经健忘了。而其时,Mybatis的前身iBatis还在书中的某个章节呈现过。其时大学老师的意思是:今朝海内根基没有利用iBatis的公司,所以这一章节略过,略,过。。。此刻对这个还影象犹新,看着此刻Mybatis大行其道,不禁令人唏嘘呀。
Mybatis-Plus
Mybatis-Plus(简称MP)是一个 Mybatis 的加强东西,在 Mybatis 的基本上只做加强不做改变,为简化开拓、提高效率而生。
官方网站:http://mp.baomidou.com
简朴来说,
Mybatis-Plus
是Mybatis
的加强东西包,其简化了CRUD
操纵,提供了代码生成器
,强大的条件结构器
(这是我最喜欢的一个),同时内置了多个实用插件:标配的分页
插件、机能阐明
插件、全局拦截
插件等。使得开拓进程中,根基的范式代码都一句话办理了,省去了许多反复的操纵(措施猿存在的意义呢,说好的让我们搬砖呢!)。
SpringBoot集成
这里选用的mybatis-plus版本为:2.1.9,
mybatisplus-spring-boot-starter版本为:1.0.5。
对应Mybatis版本为:3.4.5
DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` bigint(20) DEFAULT NULL COMMENT '独一标示', `code` varchar(20) DEFAULT NULL COMMENT '编码', `name` varchar(64) DEFAULT NULL COMMENT '名称', `status` char(1) DEFAULT '1' COMMENT '状态 1启用 0 停用', `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '建设时间', `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
<!--mybatis plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatisplus-spring-boot-starter</artifactId> <version>1.0.5</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>2.1.9</version> </dependency>
application
设置文件举办,详见官网)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!--建设jdbc数据源 这里直接利用阿里的druid数据库毗连池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="driverClassName" value="${mysql.driver}"/> <property name="url" value="${mysql.url}"/> <property name="username" value="${mysql.username}"/> <property name="password" value="${mysql.password}"/> <!-- 初始化毗连巨细 --> <property name="initialSize" value="0"/> <!-- 毗连池最大利用毗连数量 --> <property name="maxActive" value="20"/> <!-- 毗连池最大空闲 --> <property name="maxIdle" value="20"/> <!-- 毗连池最小空闲 --> <property name="minIdle" value="0"/> <!-- 获取毗连最大期待时间 --> <property name="maxWait" value="60000"/> <property name="validationQuery" value="${validationQuery}"/> <property name="testOnBorrow" value="false"/> <property name="testOnReturn" value="false"/> <property name="testWhileIdle" value="true"/> <!-- 设置隔断多久才举办一次检测,检测需要封锁的空闲毗连,单元是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="60000"/> <!-- 设置一个毗连在池中最小保留的时间,单元是毫秒 --> <property name="minEvictableIdleTimeMillis" value="25200000"/> <!-- 打开removeAbandoned成果 --> <property name="removeAbandoned" value="true"/> <!-- 1800秒,也就是30分钟 --> <property name="removeAbandonedTimeout" value="1800"/> <!-- 封锁abanded毗连时输堕落误日志 --> <property name="logAbandoned" value="true"/> <!-- 监控数据库 --> <property name="filters" value="mergeStat"/> </bean> <!-- (事务打点)transaction manager, use JtaTransactionManager for global tx --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 可通过注解节制事务 --> <tx:annotation-driven transaction-manager="transactionManager"/> <!--mybatis--> <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!-- 自动扫描mapper.xml文件,支持通配符 --> <property name="mapperLocations" value="classpath:mapper/**/*.xml"/> <!-- 设置文件,好比参数设置(是否启动驼峰等)、插件设置等 --> <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/> <!-- 启用别名,这样就无需写全路径类名了,详细可自行查阅资料 --> <property name="typeAliasesPackage" value="cn.lqdev.learning.springboot.chapter9.biz.entity"/> <!-- MP 全局设置注入 --> <property name="globalConfig" ref="globalConfig"/> </bean> <bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration"> <!-- AUTO->`0`("数据库ID自增")QW INPUT->`1`(用户输入ID") ID_WORKER->`2`("全局独一ID") UUID->`3`("全局独一ID") --> <property name="idType" value="3" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 自动扫描包路径,接口自动注册为一个bean类 --> <property name="basePackage" value="cn.lqdev.learning.springboot.chapter9.biz.dao"/> </bean> </beans>
/** * mybatisPlus 设置类,使其加载设置文件 * @author oKong * */ @Configuration @ImportResource(locations = {"classpath:/mybatis/spring-mybatis.xml"}) //@MapperScan("cn.lqdev.learning.springboot.chapter9.biz.dao") //@EnableTransactionManagement public class MybatisPlusConfig { }