OsgEarth開發筆記(四):Qt5.15.2在QtCreator整合Osg3.6.3+OsgEarth3.1+OsgQt的vs2019x64版本開發環境搭建
阿新 • • 發佈:2021-12-24
逆向工程在快速開發的專案中有使用到,這樣可以避免冗餘工作
【1】在pom檔案中新增外掛
<build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</version> <configuration> <!-- 配置檔案路徑 --> <configurationFile> src/main/resources/generatorConfig.xml </configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> <executions> <execution> <id>Generate MyBatis Artifacts</id> <goals> <goal>generate</goal> </goals> </execution> </executions> <!-- 外掛依賴 --> <dependencies> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> </dependencies> </plugin> </plugins> </build>
【2】匯入配置檔案,即在resources目錄下建立generatorConfig.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > <generatorConfiguration> <!-- 指定資料連線驅動jar地址 --> <classPathEntry location="D:\java\maven_repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar"/> <context id="context" targetRuntime="MyBatis3"> <commentGenerator> <!-- 是否去除自動生成的註釋 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> <!--去除timestamp --> <property name="suppressDate" value="true"/> </commentGenerator> <!-- 資料庫的相關配置 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mall" userId="root" password="123456"/> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 實體類生成的位置 --> <javaModelGenerator targetPackage="com.psjj.mall.model.po" targetProject="src/main/java"> <property name="enableSubPackages" value="false"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- *Mapper.xml 檔案的位置 ,targetPackage:包名,targetProject:專案下的路徑--> <sqlMapGenerator targetPackage="mappers" targetProject="src/main/resources"> <property name="enableSubPackages" value="false"/> </sqlMapGenerator> <!-- Mapper 介面檔案的位置 --> <javaClientGenerator targetPackage="com.psjj.mall.mapper" targetProject="src/main/java" type="XMLMAPPER"> <property name="enableSubPackages" value="false"/> </javaClientGenerator> <!-- 配置表資訊 --> <table tableName="mall_cart" domainObjectName="Cart"> <!--是否生成有參的構造方法, 預設否--> <property name="constructorBased" value="false"/> <!--預設值為false,如果為true,在生成的sql語句中表名中不會加上catalog或schema--> <property name="ignoreQualifiersAtRuntime" value="false"/> <!--預設值為false,如果為true建立不可變類,生成包含所有field引數的構造方法,沒有setter方法--> <property name="immutable" value="false"/> <!--是否只生成模型類,預設值為false--> <property name="modelOnly" value="false"/> <!--是否使用真實的欄位名稱作為類中的屬性名稱,預設值為false--> <property name="useActualColumnNames" value="false"/> <!--主鍵生成策略:可選值:MySql、SqlServer、SYBASE、DB2、Derby等 使用MySql即生成:SELECT LAST_INSERT_ID() 獲取主鍵值 --> <generatedKey column="id" sqlStatement="MySql"/> </table> <!-- 配置表資訊 --> <table tableName="mall_category" domainObjectName="Category"> <!--是否生成有參的構造方法, 預設否--> <property name="constructorBased" value="false"/> <!--預設值為false,如果為true,在生成的sql語句中表名中不會加上catalog或schema--> <property name="ignoreQualifiersAtRuntime" value="false"/> <!--預設值為false,如果為true建立不可變類,生成包含所有field引數的構造方法,沒有setter方法--> <property name="immutable" value="false"/> <!--是否只生成模型類,預設值為false--> <property name="modelOnly" value="false"/> <!--是否使用真實的欄位名稱作為類中的屬性名稱,預設值為false--> <property name="useActualColumnNames" value="false"/> <!--主鍵生成策略:可選值:MySql、SqlServer、SYBASE、DB2、Derby等 使用MySql即生成:SELECT LAST_INSERT_ID() 獲取主鍵值 --> <generatedKey column="id" sqlStatement="MySql"/> </table> <!-- 配置表資訊 --> <table tableName="mall_order" domainObjectName="Order"> <!--是否生成有參的構造方法, 預設否--> <property name="constructorBased" value="false"/> <!--預設值為false,如果為true,在生成的sql語句中表名中不會加上catalog或schema--> <property name="ignoreQualifiersAtRuntime" value="false"/> <!--預設值為false,如果為true建立不可變類,生成包含所有field引數的構造方法,沒有setter方法--> <property name="immutable" value="false"/> <!--是否只生成模型類,預設值為false--> <property name="modelOnly" value="false"/> <!--是否使用真實的欄位名稱作為類中的屬性名稱,預設值為false--> <property name="useActualColumnNames" value="false"/> <!--主鍵生成策略:可選值:MySql、SqlServer、SYBASE、DB2、Derby等 使用MySql即生成:SELECT LAST_INSERT_ID() 獲取主鍵值 --> <generatedKey column="id" sqlStatement="MySql"/> </table> <!-- 配置表資訊 --> <table tableName="mall_order_item" domainObjectName="OrderItem"> <!--是否生成有參的構造方法, 預設否--> <property name="constructorBased" value="false"/> <!--預設值為false,如果為true,在生成的sql語句中表名中不會加上catalog或schema--> <property name="ignoreQualifiersAtRuntime" value="false"/> <!--預設值為false,如果為true建立不可變類,生成包含所有field引數的構造方法,沒有setter方法--> <property name="immutable" value="false"/> <!--是否只生成模型類,預設值為false--> <property name="modelOnly" value="false"/> <!--是否使用真實的欄位名稱作為類中的屬性名稱,預設值為false--> <property name="useActualColumnNames" value="false"/> <!--主鍵生成策略:可選值:MySql、SqlServer、SYBASE、DB2、Derby等 使用MySql即生成:SELECT LAST_INSERT_ID() 獲取主鍵值 --> <generatedKey column="id" sqlStatement="MySql"/> </table> <!-- 配置表資訊 --> <table tableName="mall_product" domainObjectName="Product"> <!--是否生成有參的構造方法, 預設否--> <property name="constructorBased" value="false"/> <!--預設值為false,如果為true,在生成的sql語句中表名中不會加上catalog或schema--> <property name="ignoreQualifiersAtRuntime" value="false"/> <!--預設值為false,如果為true建立不可變類,生成包含所有field引數的構造方法,沒有setter方法--> <property name="immutable" value="false"/> <!--是否只生成模型類,預設值為false--> <property name="modelOnly" value="false"/> <!--是否使用真實的欄位名稱作為類中的屬性名稱,預設值為false--> <property name="useActualColumnNames" value="false"/> <!--主鍵生成策略:可選值:MySql、SqlServer、SYBASE、DB2、Derby等 使用MySql即生成:SELECT LAST_INSERT_ID() 獲取主鍵值 --> <generatedKey column="id" sqlStatement="MySql"/> </table> <!-- 配置表資訊 --> <table tableName="mall_user" domainObjectName="User"> <!--是否生成有參的構造方法, 預設否--> <property name="constructorBased" value="false"/> <!--預設值為false,如果為true,在生成的sql語句中表名中不會加上catalog或schema--> <property name="ignoreQualifiersAtRuntime" value="false"/> <!--預設值為false,如果為true建立不可變類,生成包含所有field引數的構造方法,沒有setter方法--> <property name="immutable" value="false"/> <!--是否只生成模型類,預設值為false--> <property name="modelOnly" value="false"/> <!--是否使用真實的欄位名稱作為類中的屬性名稱,預設值為false--> <property name="useActualColumnNames" value="false"/> <!--主鍵生成策略:可選值:MySql、SqlServer、SYBASE、DB2、Derby等 使用MySql即生成:SELECT LAST_INSERT_ID() 獲取主鍵值 --> <generatedKey column="id" sqlStatement="MySql"/> </table> </context> </generatorConfiguration>
【3】生成程式碼,在第一布重新匯入pom檔案中的依賴後會有mybatis-generator外掛,雙擊mybatis-generator:generate,雙擊之後需要一點時間才能生成,千萬不要多次雙擊
【4】修改錯誤程式碼,將mapper對映檔案中的BEFORE替換成AFTER
原因老師講了,但是我沒聽懂
【5】給所有po類生成修改時間
【6】用完程式碼生成後要將之前新增到pom檔案中新增的外掛註釋掉,不然之後使用其他外掛時會將該外掛前面的外掛在執行一次,可能會出現重複生成程式碼的情況
【7】整合mybaitis,新增需要用到的依賴
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.17</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency>
【8】配置資料來源
!!!注意雖然前面的generatorConfig.xml裡邊已經寫過配置資料庫了,但是那裡邊只是跟生成程式碼有關係,專案連線資料庫還是需要配置
這裡是用的application.yml檔案
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/mall
username: root
password: 123456
# mybatis相關配置
mybatis:
mapper-locations: classpath:mappers/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
【9】開啟在啟動類開啟mybatis註解掃描
【10】根據自己生成的程式碼寫一個測試
@SpringBootTest
class MallApplicationTests {
@Autowired
private CategoryEntityMapper categoryEntityMapper;
@Test
void contextLoads() {
CategoryEntity categoryEntity = categoryEntityMapper.selectByPrimaryKey(3);
System.out.println(categoryEntity.getName());
}
}