PO即持久对象(Persistent Object),它们是由一组属性和属性的get和set方法组成,PO对应于数据库的表。
在开发持久层代码时需要根据数据表编写PO类,在实际开发中通常使用代码生成器(工具)生成PO类的代码。
由于在需求分析阶段对数据模型进行分析,PO类对应于数据模型,所以在需求分析阶段即可使用工具生成PO类,为下面的接口定义准备好模型类。
在企业开发中通常使用代码生成工具去自动生成这些文件,
使用mybatis-plus的generator工程生成PO类、Mapper接口、Mapper的xml文件,地址在:GitHub - baomidou/generator: Any Code generator
将xuecheng-plus-generator.zip解压后拷贝至项目工程根目录,如下图:
打开IDEA将其导入项目工程 ,打开xuecheng-plus-generator工程的pom.xml,右键 点击“Add as Maven Project” 自动识别maven工程。
本次生成内容管理模块的PO类、Mapper接口和Mapper的xml文件 ,找到ContentCodeGenerator类,如下图:
修改ContentCodeGenerator类中的信息,包括:数据库地址、数据库账号、数据库密码、生成的表、生成路径,如下:
//数据库账号 private static final String DATA_SOURCE_USER_NAME = "root"; //数据库密码 private static final String DATA_SOURCE_PASSWORD = "mysql"; //生成的表 private static final String[] TABLE_NAMES = new String[]{
"course_base", "course_market", "course_teacher", "course_category", "teachplan", "teachplan_media", "course_publish", "course_publish_pre" }; // TODO 默认生成entity,需要生成DTO修改此变量 // 一般情况下要先生成 DTO类 然后修改此参数再生成 PO 类。 private static final Boolean IS_DTO = false;
public static void main(String[] args) {
.... //生成路径 gc.setOutputDir(System.getProperty("user.dir") + "/xuecheng-plus-generator/src/main/java"); .... // 数据库配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setDbType(DbType.MYSQL); dsc.setUrl("jdbc:mysql://192.168.101.65:3306/xcplus_" + SERVICE_NAME+"166" + "?serverTimezone=UTC&useUnicode=true&useSSL=false&characterEncoding=utf8"); ... |
修改完成,执行该类的main方法,自动生成content包,如下:
在该包下自动生成了内容管理模块的controller、mapper、po及service相关代码,这里我们只需要po类。
将po类拷贝到model工程
打开一个PO类发现编译报错,这是缺少依赖包导致,使用的持久层框架是MyBatisPlus,在生成的po类中加了一些MyBatisPlus框架的注解,这里需要添加MyBatisPlus框架的依赖,消除错误。
下边在model工程添加依赖
<dependencies> <dependency> <groupId>com.xuecheng</groupId> <artifactId>xuecheng-plus-base</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <!--存在mybatisplus注解添加相关注解保证不报错--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-annotation</artifactId> <version>${mybatis-plus-boot-starter.version}</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-core</artifactId> <version>${mybatis-plus-boot-starter.version}</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> |