一、什麼是com.baomidou
com.baomidou是一個用於Java Web開發的快速開發平台,它的目的是為了提供更加高效的開發和個性化配置,同時提升開發人員的編碼體驗。它從底層進行了優化,支持多個主流框架的集成使用。
二、為什麼選擇com.baomidou
1、代碼生成器:
com.baomidou提供了一款高效的代碼生成器,可以生成基本的Model、Mapper、Service、Controller等文件,同時它支持自定義模板文件,可以快速搭建整個項目的基本框架。
2、集成多種主流框架:
com.baomidou支持集成Mybatis-Plus、Spring Boot、Beetl、Kisso等多種主流框架,能夠滿足不同需求的開發者使用。
3、高度可配置:
com.baomidou的配置文件非常全面,支持多種運行時參數和環境參數的配置,同時還支持多種配置文件的集成使用(yml、properties等)。
4、簡單易用:
com.baomidou對於Java Web開發的每個環節都進行了優化,特別是在CRUD操作的方面,它提供的一些封裝類和工具函數能夠快速的完成增、刪、改、查等操作。
三、使用com.baomidou的注意事項
1、合理的設計目錄結構:
在使用com.baomidou開發項目時,需要合理設計項目的目錄結構。尤其是在使用代碼生成器時,需要注意生成的目錄和文件位置,可以避免一些不必要的問題。
2、適合的開發模式:
com.baomidou適合使用MVC架構的開發模式,根據它支持的框架,可以使用Mybatis-Plus進行Model層操作,同時使用Spring Boot、Beetl進行Controller和View層的操作。
3、了解常用的工具類和封裝方法:
com.baomidou提供了一些常用的工具類和封裝方法,能夠減輕開發者的負擔,例如:Wrapper類的使用、Mybatis-Plus的分頁和排序等。
四、使用com.baomidou的示例代碼
1、代碼生成器的使用示例
public class CodeGenerator {
private static final String DRIVER_NAME = "com.mysql.jdbc.Driver";
private static final String DB_URL = "jdbc:mysql://localhost:3306/test";
private static final String USERNAME = "root";
private static final String PASSWORD = "123456";
private static final String[] TABLES = new String[]{"user", "role", "permission"};
public static void main(String[] args) {
GlobalConfig config = new GlobalConfig();
config.setOutputDir("D:\\code_generator");
config.setAuthor("example");
config.setActiveRecord(true);
config.setEnableCache(false);
config.setBaseResultMap(true);
config.setBaseColumnList(true);
config.setXmlName("%sMapper");
config.setServiceName("I%sService");
config.setServiceImplName("%sServiceImpl");
config.setControllerName("%sController");
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setDriverName(DRIVER_NAME);
dataSourceConfig.setUrl(DB_URL);
dataSourceConfig.setUsername(USERNAME);
dataSourceConfig.setPassword(PASSWORD);
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true);
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setTablePrefix("t_");
strategyConfig.setInclude(TABLES);
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example");
packageConfig.setEntity("model");
packageConfig.setMapper("dao");
packageConfig.setService("service");
packageConfig.setServiceImpl("service.impl");
packageConfig.setController("web");
new AutoGenerator().setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig)
.execute();
}
}
2、Controller層和Service層的示例代碼
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService;
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getById(id);
}
@PostMapping("/")
public void saveUser(@RequestBody User user) {
userService.save(user);
}
@PutMapping("/{id}")
public void updateUser(@PathVariable Long id, @RequestBody User user) {
user.setId(id);
userService.updateById(user);
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
userService.removeById(id);
}
}
@Service
public class UserServiceImpl extends ServiceImpl implements IUserService {
}
原創文章,作者:OFFIN,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/324981.html