MyBatis-Plus是基于MyBatis的一款开源持久层框架,提供了许多方便开发的功能。本文将介绍如何使用MyBatis-Plus实现学生类的增删改查操作。
首先,需要定义学生类的实体和对应的Mapper接口。以学生类的增加操作为例,代码如下:
// 学生类的实体
@Data
public class Student {
private Long id;
private String name;
private Integer age;
private String gender;
}
// 学生类的Mapper接口
public interface StudentMapper extends BaseMapper<Student> {
}
其中,@Data注解可以使用Lombok插件生成getter、setter和toString等方法。BaseMapper是MyBatis-Plus提供的通用Mapper接口,包含了许多常用的CRUD操作。
接下来,可以使用MyBatis-Plus提供的代码生成器生成对应的Mapper接口和XML文件。代码生成器可以根据数据库表自动生成Java实体和Mapper接口的代码,以及XML文件中的SQL语句。
public class CodeGenerator {
public static void main(String[] args) {
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC");
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("password");
// 代码生成器配置
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setDataSource(dataSourceConfig);
autoGenerator.setGlobalConfig(new GlobalConfig().setOutputDir(System.getProperty("user.dir") + "/src/main/java").setAuthor("author"));
autoGenerator.setPackageInfo(new PackageConfig().setParent("com.example.demo").setMapper("mapper").setEntity("entity"));
autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
strategyConfig.setEntityLombokModel(true);
strategyConfig.setRestControllerStyle(true);
strategyConfig.setControllerMappingHyphenStyle(true);
autoGenerator.setStrategy(strategyConfig);
// 执行生成器
autoGenerator.execute();
}
}
执行以上代码,即可在指定的路径下生成对应的Java实体和Mapper接口的代码,以及XML文件中的SQL语句。
接下来,可以使用生成的Mapper接口和XML文件进行增删改查操作。以学生类的查询操作为例,代码如下:
@Service
public class StudentService {
@Autowired
private StudentMapper studentMapper;
public List<Student> getStudents() {
return studentMapper.selectList(null);
}
public Student getStudentById(Long id) {
return studentMapper.selectById(id);
}
public void addStudent(Student student) {
studentMapper.insert(student);
}
public void updateStudent(Student student) {
studentMapper.updateById(student);
}
public void deleteStudentById(Long id) {
studentMapper.deleteById(id);
}
}
其中,@Service注解表示该类是一个Spring服务组
件,@Autowired注解用于自动注入StudentMapper对象。selectList、selectById、insert、updateById和deleteById方法分别对应了查询、插入、更新和删除操作。在实际应用中,可以根据需要自行定义Mapper接口中的其他方法,以满足业务需求。
以上就是基于MyBatis-Plus实现学生类增删改查的详细步骤。通过MyBatis-Plus的代码生成器,可以快速生成Java实体和Mapper接口的代码,减少手动编写的工作量。同时,MyBatis-Plus提供了许多方便开发的功能,可以大大提高开发效率。