发表于: 2017-08-12 22:18:22

2 1106


今日完成的事:

将昨晚设计的表使用mybatis的代码自动生成插件生成了代码,并且先实现了一小部分的静态资源变动态资源,只要实现了一次,之后的就好说了。

然后就大概说一下mybatis代码自动生成的插件(这个之前用过,感觉不习惯,今天用了之后感觉挺好的,省了不少事)

首先就是把数据库和需要的表建好

就是昨天那几个表

然后做一下相关配置即可

pom.xml中对于自动生成代码的一些依赖包

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis</artifactId>
 <version>3.4.4</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis-spring</artifactId>
 <version>1.3.1</version>
</dependency>

<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>5.1.42</version>
</dependency>

<!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
<dependency>
 <groupId>commons-dbcp</groupId>
 <artifactId>commons-dbcp</artifactId>
 <version>1.4</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
 <groupId>org.mybatis.generator</groupId>
 <artifactId>mybatis-generator-core</artifactId>
 <version>1.3.5</version>
</dependency>

然后配一下插件

<plugins>
 <!-- mvn mybatis-generator:generate -->
 <plugin>
   <groupId>org.mybatis.generator</groupId>
   <artifactId>mybatis-generator-maven-plugin</artifactId>
   <version>1.3.2</version>
   <configuration>
     <verbose>true</verbose>
     <overwrite>true</overwrite>
     <configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
   </configuration>
   <dependencies>
     <!-- 数据库驱动 -->
     <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>5.1.42</version>
     </dependency>
   </dependencies>
 </plugin>
 <plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <version>3.6.1</version>
   <configuration>
     <source>1.5</source>
     <target>1.5</target>
     <encoding>UTF-8</encoding>
   </configuration>
 </plugin>
</plugins>

这些配置好就可以看到maven的插件出多出来一个插件


然后写一下配置文件,使用插件即可

大概贴一下配置文件

generatorConfig.properties

jdbc_driverPath=D:/Maven/m2/mysql/mysql-connector-java/5.1.42/mysql-connector-java-5.1.42.jar
jdbc_driverClassName=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/task4?useUnicode=true&characterEncoding=UTF-8&useSSL=false
jdbc_username=root
jdbc_password=*****
targetProject=E:/IDEA/task4/src/main/java(项目路径)
modelPackage=com.ptteng.profession_classified.model
mapperPackage=com.ptteng.profession_classified.mapper
mappingPackage=com.ptteng.profession_classified.mapping

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>
   <properties resource="mybatis-generator/generatorConfig.properties" />
   <classPathEntry location="${jdbc_driverPath}" />
   <context id="my" targetRuntime="MyBatis3">

       <commentGenerator>
           <property name="suppressDate" value="false" />
                  <!-- 下面一行用于取消注释的生成 -->
           <property name="suppressAllComments" value="true" />
       </commentGenerator>

       <jdbcConnection driverClass="${jdbc_driverClassName}" connectionURL="${jdbc_url}" userId="${jdbc_username}" password="${jdbc_password}" />

       <javaModelGenerator targetPackage="${modelPackage}" targetProject="${targetProject}">
           <property name="enableSubPackages" value="true" />
           <property name="trimStrings" value="true" />
       </javaModelGenerator>

       <sqlMapGenerator targetPackage="${mappingPackage}" targetProject="${targetProject}">
           <property name="enableSubPackages" value="true" />
       </sqlMapGenerator>

       <javaClientGenerator targetPackage="${mapperPackage}" targetProject="${targetProject}" type="XMLMAPPER">
           <property name="enableSubPackages" value="true" />
       </javaClientGenerator>

       <!--schema数据库名,tableName表名,domainObjectName生成的Dao名-->
       <table schema="task4" tableName="profession_classified" domainObjectName="profession_classified"
                     enableCountByExample="false" enableUpdateByExample="false"
                     enableDeleteByExample="false" enableSelectByExample="false"
                     selectByExampleQueryId="false">
              <!--<columnRenamingRule searchString="^D_" replaceString=""/> -->
       </table>
   </context>
</generatorConfiguration>


这里有个bug未解决,然后通过另一种方式跳过了

问题:

编译properties文件,控制台打印出properties中的中文乱码,暂无解决办法,只能改文件名,对setting中的editor里File Encodings进行过设置,但是并无卵用

之前我的路径是E:/IDEA文档.....然后控制台上“文档”就变成乱码了,找了一些解决办法,设置也设置了,然后极端的解决方法是使用工具将中文转换成ISO 8859_1然后再转码,还有一种是定义一个类通过类中的方法

resultName=new String(username.getBytes("ISO-8859-1"),"gbk"); 

这种类似的转码方法实现,最后我选择改文件名。。。


这些配置文件弄好以后使用插件就可以自动生成了


然后就是写代码,部分静态资源变动态资源

通过这块读取数据库中的内容实现静态资源转动态


换一下

结果

数据库中的数据


然后在实现的过程中,遇到几个问题说一下


第一,所有的依赖文件要放到项目中的web-apps文件夹下,使用什么绝对路径啥的是不行的因为这涉及到web项目的一个工作原理,也是我下面要将的问题

我没分类,先这么摆着了


第二,就是一个很弱智但是困扰我很久的问题,问了师兄才找到错误,我自己找可能根本想不到的错误

配置文件的问题!!

这里之前不知道什么时候动了一下,里面是pom,然后使用mvn install的打包命令不出target文件

访问Controller层也进不到方法去

如果这个<packaging>标签中是pom的话,使用mvn install命令会打出一个聚合包,是将所有的子模块打成一个包,子模块就是之前说的module

而我的项目没有其他模块,所以自然不会打出war包

而web项目使用web容器启动(如Tomcat等)需要你的war包作为它启动的依据,如果没有war包,自然什么都做不了


最后,一会测试一下如果子模块含有jar包和war包,会聚合出什么包

其实,这个pom的聚合含义并不是我之前理解的意思

这个pom的意思可以理解为父模块,其下会有一些子模块,而使用maven命令其实就是对子模块进行操作

如图,如果子模块标签中有那个模块,就会对那个模块进行操作,如果没有标注,就不会操作。

反正图里挺明显的,我就不解释了



明天计划:陪老大爬山。。。。然后再说吧。。


问题:暂时都解决了


收获:解决了几个bug是个很大的收获;静态变动态;mybatis代码自动生成。


返回列表 返回列表
评论

    分享到