特点
是对Mybatis框架的二次封装和扩展
纯正血统:完全继承原生 Mybatis 的所有特性
最少依赖:仅仅依赖Mybatis以及Mybatis-Spring
性能损耗小:启动即会自动注入基本CURD ,性能无损耗,直接面向对象操作
自动热加载:Mapper对应的xml可以热加载,大大减少重启Web服务器时间, 提升开发效率
性能分析:自带Sql性能分析插件,开发测试时,能有效解决慢查询
全局拦截:提供全表delete、update操作智能分析阻断
避免Sql注入:内置Sql注入内容剥离器,预防Sql注入攻击
使用
0.父工程依赖
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<mybatisplus-spring-boot-starter.version>1.0.5</mybatisplus-spring-boot-starter.version>
<mybatisplus.version>2.2.0</mybatisplus.version>
<fastjson.version>1.2.39</fastjson.version>
<gson.version>2.8.0</gson.version>
</properties>
1.微服务依赖
放在需要的微服务中
<!-- mybatis-plus begin -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatisplus-spring-boot-starter</artifactId>
<version>${mybatisplus-spring-boot-starter.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>${mybatisplus.version}</version>
</dependency>
<!-- mybatis-plus end -->
2.微服务yml
放在需要的微服务中
server:
port: 9004 # 服务访问端口号
spring:
application:
name: tensquare-article #服务名称
datasource: # 数据库连接四大属性
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.200.128:3306/tensquare_article?characterEncoding=utf-8
username: root
password: root
# Mybatis-Plus 配置
mybatis-plus:
# mapper-locations: classpath:/mapper/*Mapper.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.tensquare.article.pojo
global-config:
id-type: 1 #0:数据库ID自增 1:用户输入id
db-column-underline: false
refresh-mapper: true
configuration:
map-underscore-to-camel-case: true
cache-enabled: true #配置的缓存的全局开关
lazyLoadingEnabled: true #延时加载的开关
multipleResultSetsEnabled: true #开启延时加载,否则按需加载属性
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用
3.启动类
@SpringBootApplication
@MapperScan(basePackages ={ "com.xyy.dao"})//记住用mapper的映射
public class APP {
public static void main(String[] args) {
SpringApplication.run(APP.class, args);
}
}
4.Dao层表示
//继承的是BaseMapper
public interface LoginMapper extends BaseMapper<User> {
@Select("select * from login where username=#{username} and password=#{password}")
User login(@Param("username") String username, @Param("password") String password);
}
5.pojo
@TableName("login")//找到对应的数据库表
public class User implements Serializable {
@TableId//映射主键
private String username;
private String password;
BUG问题汇总
1.
mybait-puls默认会把实体类属性拆分成下划线(user_name),如果数据库不是采用的下划线,而是(userName)这种,就会报错。
配置文件中关掉数据库自动转成下划线的功能