mybatis-plus无xml开发
时间: 2023-09-25 16:16:09 浏览: 60
是的,MyBatis-Plus可以实现无XML的开发。MyBatis-Plus提供了一系列的注解来替代XML文件中的SQL语句配置,包括@TableName、@TableId、@TableField、@SqlParser等注解,可以直接在实体类中进行注解配置。
此外,MyBatis-Plus还提供了Lambda表达式查询、代码生成器等功能,大大简化了开发流程。使用MyBatis-Plus无XML开发,可以减少冗余的XML文件,提高开发效率,降低维护成本。
相关问题
Mybatis-Plus无XML开发详细
Mybatis-Plus 是 Mybatis 的增强工具,可以帮助开发者更加便捷地进行数据库操作。其中最大的特点之一就是支持无 XML 配置,这样可以使开发过程更加高效和简洁。
下面是 Mybatis-Plus 无 XML 开发的详细步骤:
1. 引入 Mybatis-Plus 依赖
```xml
<!-- Mybatis-Plus 核心依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.x.x</version>
</dependency>
```
2. 配置数据源
在 application.properties 或 application.yml 文件中配置数据源信息,例如:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis-plus-demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
```
3. 创建实体类
创建和数据库表对应的实体类,可以使用 Lombok 简化代码,例如:
```java
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
private Date createTime;
}
```
其中 `@TableName` 注解指定实体类对应的表名,`@TableId` 注解指定主键生成策略。
4. 创建 Mapper 接口
创建继承自 `BaseMapper` 的 Mapper 接口,例如:
```java
public interface UserMapper extends BaseMapper<User> {
}
```
这里不需要写 SQL,Mybatis-Plus 会根据实体类自动生成 CRUD SQL。
5. 进行数据库操作
在 Service 层中使用 `UserMapper` 进行数据库操作,例如:
```java
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> list() {
return userMapper.selectList(null);
}
public User getById(Long id) {
return userMapper.selectById(id);
}
public boolean save(User user) {
return userMapper.insert(user) > 0;
}
public boolean update(User user) {
return userMapper.updateById(user) > 0;
}
public boolean remove(Long id) {
return userMapper.deleteById(id) > 0;
}
}
```
这里可以直接使用 `UserMapper` 提供的方法进行数据库操作,不需要写 SQL。
6. 测试
可以通过 JUnit 测试来测试代码是否正确,例如:
```java
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTest {
@Autowired
private UserService userService;
@Test
public void testList() {
List<User> userList = userService.list();
Assert.assertEquals(5, userList.size());
}
@Test
public void testGetById() {
User user = userService.getById(1L);
Assert.assertNotNull(user);
}
@Test
public void testSave() {
User user = new User();
user.setName("Tom");
user.setAge(18);
user.setEmail("tom@example.com");
boolean result = userService.save(user);
Assert.assertTrue(result);
}
@Test
public void testUpdate() {
User user = userService.getById(1L);
user.setName("Jerry");
boolean result = userService.update(user);
Assert.assertTrue(result);
}
@Test
public void testRemove() {
boolean result = userService.remove(1L);
Assert.assertTrue(result);
}
}
```
这里简单测试了一下常用的增删改查操作,可以根据需要进行扩展。
以上就是 Mybatis-Plus 无 XML 开发的详细步骤,相比传统的 XML 配置方式,更加简洁高效,减少了很多重复劳动。
mybatis-plus 创建xml文件
你可以使用MyBatis-Plus Generator来创建XML文件。首先,你需要在项目的pom.xml文件中添加以下依赖:
```xml
<!--mybatis-plus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!--mybatis-plus生成器依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!--引擎模板依赖-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<!--数据源依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
```
然后,你可以通过配置MyBatis-Plus Generator来生成XML文件。可以参考MyBatis-Plus Generator的相关文档,根据示例代码进行配置。生成完后,你可能需要注意在生成类的Entity中的注解@EqualsAndHashCode(callSuper = true)。一般情况下,你可以手动将其修改为false,或者根据业务具体情况进行修改。这个注解可能会导致一些bug问题,需要注意。通过这样的配置,MyBatis-Plus Generator将会根据你的实体类生成对应的XML文件。