媒介
本章节开始先容数据会见方面的相关常识点。对付后端开拓者而言,劳务派遣管理系统,和数据库打交道是天天都在举办的,所以一个好用的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 {
}