发表于: 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代码自动生成。
评论