MybatisPlus-注解
- 实体类中的三个注解
@TableName("student")
//类名如果和表名不一样,必须指定表名,一样可以省略
@TableId(value = "stuno",type = IdType.AUTO)
主键使用
-
如果属性名为驼峰原则书写,如stuNo,那么不写value(操作时的列名)则会自动转换为stu_no, type = IdType.AUTO表示自增(而且是数据库也要该列为自增的)
-
可以设置禁止自动转换
<settings>
><!-- mybatis和spring配置文件都可以 -->
<!-- 设置value为false,禁止驼峰自动转换为_,默认值为true -->
<setting name="mapUnderscoreToCamelCase" value="false"/>
<!-- 日志文件设置,不写也能找到,但不是直接找到,log4j的文件名固定 -->
<setting name="logImpl" value="LOG4J"/>
</settings>
但是一般建议:
类的属性:stuName
表的字段:stu_name
@TableField("stuname")
非主键使用, 其中的exists属性默认为true,表示数据库中有对应的该列,而exists="false"时,该属性在表中不是必须要有
条件注解:Wrapper
老版本2.x的条件注解:EntityWrapper,Condition
idea中,ctrl+h(或者ctrl+alt+b)可以看到Wrapper类的继承结构
Wrapper类有两个直接子类
Wrapper 相当于sql中的where,把sql语句转为面向对象的方式
qw.ge(“stuage”,25).le(“stuage”,28); 默认是and关系:stuage大于等于25小于等于28
如果要用or关系
__qw.ge(“stuage”,25).or().le(“stuage”,28); __ stuage大于等于25或者stuage小于等于28
如果想把多个条件放在一个括号里:可以写在or()里边lambda
qw.le(“stuno”,10).or(i->i.le(“stuage”,20).ge(“stuage”,30));
stuno小于等于10的或者所有年龄在[20,30]之间的学生
wrapper中的一些方法
wrapper.between(column, val1, val2)
wrapper.groupBy(columns) //对应sql中分组
wrapper.eq(column, params) //相当于where条件
wrapper.in(column, value) //sql中in
wrapper.notIn(column, value) //sql中 not in
wrapper.orderBy(columns, isAsc) //排序
wrapper.exists(value) //相对于sql中exists查询
wrapper.notExists(value) //相当于sql中not exists查询
wrapper.notBetween(column, val1, val2) //相当于sql中在某个范围内使用的between
wrapper.ge(column, params) //大于等于
wrapper.le(column, params) //小于等于
wrapper.like(column, value) //模糊查询
wrapper.having(sqlHaving, params) //条件过滤
注意:mybatis不会自动提交,而mybatisplus中默认自动commit
条件过滤
> __注意:mybatis不会自动提交,而mybatisplus中默认自动commit__