跳到主要内容

快速开始

5 分钟上手 MyBatisGX

环境要求

  • JDK 8+
  • Spring Boot 2.x / 3.x
  • Maven

添加依赖

<dependency>
<groupId>com.mybatisgx</groupId>
<artifactId>mybatisgx-spring-boot2-starter</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.mybatisgx</groupId>
<artifactId>mybatisgx-spring-boot3-starter</artifactId>
<version>0.0.2</version>
</dependency>

配置文件

mybatisgx:
mapper-locations: classpath:mapper/*Mapper.xml
type-aliases-package: com.example.entity
configuration:
map-underscore-to-camel-case: true

定义实体

@Entity
@Table(name = "user")
public class User {

@Id
private Long id;

private String name;

private Integer age;

// getter/setter 省略
}

定义查询实体

@QueryEntity(User.class)
public class UserQuery extends User {

private String nameLike; // 模糊查询

private Integer ageGt; // 大于查询
}

定义 DAO 接口

@Repository
public interface UserDao extends SimpleDao<User, UserQuery, Long> {
}

启动类配置

@MybatisgxScan(
entityBasePackages = "com.example.entity",
daoBasePackages = "com.example.dao"
)
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

开始使用

@Service
public class UserService {

@Autowired
private UserDao userDao;

// 新增
public void addUser() {
User user = new User();
user.setName("张三");
user.setAge(25);
userDao.insert(user);
}

// 根据ID查询
public User getById(Long id) {
return userDao.findById(id);
}

// 条件查询
public List<User> findByName(String name) {
UserQuery query = new UserQuery();
query.setNameLike(name);
return userDao.findList(query);
}

// 分页查询
public Page<User> findPage(int pageNo, int pageSize) {
UserQuery query = new UserQuery();
Pageable pageable = new Pageable(pageNo, pageSize);
return userDao.findPage(query, pageable);
}

// 更新
public void updateUser(User user) {
userDao.updateById(user);
}

// 删除
public void deleteUser(Long id) {
userDao.deleteById(id);
}
}

下一步