mybatis_plus的使用
1创建数据库
DROP TABLE IF EXISTS user
;
CREATE TABLE user (
id
BIGINT(20) NOT NULL COMMENT '主键ID',
name
VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
age
INT(11) NULL DEFAULT NULL COMMENT '年龄',
email
VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (id
) );
INSERT INTO user (id
, name
, age
, email
) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');
2、编写项目,初始化项目!使用SpringBoot初始化! 3、导入依赖
<!-- 数据库驱动
-->
<dependency
>
<groupId
>mysql
</groupId
>
<artifactId
>mysql
-connector
-java
</artifactId
>
</dependency
>
<!-- lombok
-->
<dependency
>
<groupId
>org
.projectlombok
</groupId
>
<artifactId
>lombok
</artifactId
>
</dependency
>
<!-- mybatis
-plus
-->
<!-- mybatis
-plus 是自己开发,并非官方的!
-->
<dependency
>
<groupId
>com
.baomidou
</groupId
>
<artifactId
>mybatis
-plus
-boot
-starter
</artifactId
>
<version
>3.0.5</version
>
</dependency
>
4连接数据库!
#mysql8 驱动需要增加时区配置
serverTimezone
=GMT%2B8
spring
.datasource
.username
=root
spring
.datasource
.password
=123456
spring
.datasource
.url
=jdbc
:mysql
://localhost
:3306/mybatis_plus
?useSSL
=fals3
&useUnicode
=true&charaterEncoding
=utf
-8&serverTimezone
=GMT%2B8
spring
.datasource
.driver
-class-name
=com
.mysql
.cj
.jdbc
.Driver
(传统方式pojo-dao连接mybatis,配置mapper.xml文件-service-controller) 使用了mybatis-plus 之后 pojo
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id
;
private String name
;
private Integer age
;
private String email
;
}
mapper接口
package com
.kuang
.mapper
;
import com
.baomidou
.mybatisplus
.core
.mapper
.BaseMapper
;
import com
.kuang
.pojo
.User
;
import org
.springframework
.stereotype
.Repository
;
@Repository
public interface UserMapper extends BaseMapper<User> {
}
测试类中测试
@SpringBootTest class MybatisPlusApplicationTests {
@Autowired private UserMapper userMapper
;
@Test void contextLoads() {
List
<User> users
= userMapper
.selectList(null
); users
.forEach(System
.out
::println
);
}
}
CRUD操作
class MybatisPlusApplicationTests {
@Autowired
private UserMapper userMapper
;
@Test
void contextLoads() {
List
<User> users
= userMapper
.selectList(null
);
users
.forEach(System
.out
::println
);
}
@Test
public void testInsert
() {
User user
= new User();
Scanner sc
=new Scanner(System
.in
);
System
.out
.println("姓名");
String name
=sc
.next();
System
.out
.println("年龄");
int age
=sc
.nextInt();
System
.out
.println("邮箱");
String email
=sc
.nextLine();
user
.setName("name");
user
.setAge(age
);
user
.setEmail("email");
int result
= userMapper
.insert(user
);
System
.out
.println(result
);
System
.out
.println(user
);
}
@Test
public void testUpdate
() {
User user
= new User();
user
.setName("张三");
user
.setAge(18);
int i
= userMapper
.updateById(user
);
System
.out
.println(i
);
}
@Test
public void testSelectById
() {
User user
= userMapper
.selectById(1L
);
System
.out
.println(user
);
}
@Test
public void testPage
() {
Page
<User> page
= new Page<>(2, 5);
userMapper
.selectPage(page
, null
);
page
.getRecords().forEach(System
.out
::println
);
System
.out
.println(page
.getTotal());
}
@Test public void testDeleteById
() {
userMapper
.deleteById(1240620674645544965L
);
}
@Test public void testDeleteBatchId
() {
userMapper
.deleteBatchIds(Arrays
.asList(1240620674645544961L
, 1240620674645544962L
));
}
@Test
public void testDeleteMap
() {
HashMap
<String, Object> map
= new HashMap<>();
map
.put("name", "jone");
userMapper
.deleteByMap(map
);
}
代码自动生成
package com
.mhy
;
import com
.baomidou
.mybatisplus
.annotation
.DbType
;
import com
.baomidou
.mybatisplus
.annotation
.FieldFill
;
import com
.baomidou
.mybatisplus
.annotation
.IdType
;
import com
.baomidou
.mybatisplus
.annotation
.TableField
;
import com
.baomidou
.mybatisplus
.generator
.AutoGenerator
;
import com
.baomidou
.mybatisplus
.generator
.config
.DataSourceConfig
;
import com
.baomidou
.mybatisplus
.generator
.config
.GlobalConfig
;
import com
.baomidou
.mybatisplus
.generator
.config
.PackageConfig
;
import com
.baomidou
.mybatisplus
.generator
.config
.StrategyConfig
;
import com
.baomidou
.mybatisplus
.generator
.config
.po
.TableFill
;
import com
.baomidou
.mybatisplus
.generator
.config
.rules
.DateType
;
import com
.baomidou
.mybatisplus
.generator
.config
.rules
.NamingStrategy
;
import java
.util
.ArrayList
;
public class MhyCode {
public static void main(String
[] args
) {
AutoGenerator mpg
= new AutoGenerator();
GlobalConfig gc
= new GlobalConfig();
String projectPath
= System
.getProperty("user.dir");
gc
.setOutputDir(projectPath
+"/src/main/java");
gc
.setAuthor("Mhy");
gc
.setOpen(false);
gc
.setFileOverride(false);
gc
.setServiceName("%sService");
gc
.setIdType(IdType
.ID_WORKER
);
gc
.setDateType(DateType
.ONLY_DATE
);
gc
.setSwagger2(true); mpg
.setGlobalConfig(gc
);
DataSourceConfig dsc
= new DataSourceConfig();
dsc
.setUrl("jdbc:mysql://localhost:3306/mybatis_plus? useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT+8");
dsc
.setDriverName("com.mysql.cj.jdbc.Driver");
dsc
.setUsername("root");
dsc
.setPassword("123456");
dsc
.setDbType(DbType
.MYSQL
);
mpg
.setDataSource(dsc
);
PackageConfig pc
= new PackageConfig();
pc
.setModuleName("blog");
pc
.setParent("com.mhy");
pc
.setEntity("entity");
pc
.setMapper("mapper");
pc
.setService("service");
pc
.setController("controller");
mpg
.setPackageInfo(pc
);
StrategyConfig strategy
= new StrategyConfig();
strategy
.setInclude("user");
strategy
.setNaming(NamingStrategy
.underline_to_camel
);
strategy
.setColumnNaming(NamingStrategy
.underline_to_camel
);
strategy
.setEntityLombokModel(true);
strategy
.setLogicDeleteFieldName("deleted");
TableFill gmtCreate
= new TableFill("gmt_create", FieldFill
.INSERT
);
TableFill gmtModified
= new TableFill("gmt_modified", FieldFill
.INSERT_UPDATE
);
ArrayList
<TableFill> tableFills
= new ArrayList<>();
tableFills
.add(gmtCreate
);
tableFills
.add(gmtModified
);
strategy
.setTableFillList(tableFills
);
strategy
.setVersionFieldName("version");
strategy
.setRestControllerStyle(true);
strategy
.setControllerMappingHyphenStyle(true);
mpg
.setStrategy(strategy
);
mpg
.execute();
}
}