0 课程地址
https://coding.imooc.com/lesson/201.html#mid=12741
1 重点关注
1.1 本节内容
mybaties生成mapper及pojo
单体到分层代码演示
maven搭建的Spring工程依赖关系
2 课程内容
2.1 单体到分层代码演示
web->service->mapper->pojo->common
2.2 Spring项目配置文件简介(SpringMVC都过时了吧,这块之后用到了再来细看)
父项目和子项目的pom,
子项目的mybaties生成mapper的generatorConfig.xml,
子项目的db.properties,
子项目的log4j.properties,
子项目web的springmvc.xml
子项目配置的dao.xml等等
3 Coding
3.1 mybaties生成Mapper(注意:数据库版本一定要对上)
- 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>
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection
driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mysql" userId="root"
password="root">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator
targetPackage="com.imooc.pojo"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator
targetPackage="com.imooc.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator
type="XMLMAPPER"
targetPackage="com.imooc.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="student"></table>
<table schema="" tableName="T_DDWEI"></table>
</context>
</generatorConfiguration>
3.2 Spring微服务如何定义版本
在最外层聚合项目的pom文件定义所有的依赖和版本(最外层只进行依赖不进行实际的使用),内层子项目pom文件把依赖加进来,并且不用写版本号。
如:
- 最外层pom:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.imooc</groupId>
<artifactId>imooc-single-mvc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<!-- 集中定义依赖版本号 -->
<properties>
<spring.version>4.3.13.RELEASE</spring.version>
<spring-data-redis.version>1.8.7.RELEASE</spring-data-redis.version>
<apache-commons-pool2>2.4.2</apache-commons-pool2>
<mybatis.version>3.2.8</mybatis.version>
<mybatis.spring.version>1.2.2</mybatis.spring.version>
<mybatis.paginator.version>1.2.15</mybatis.paginator.version>
<mysql.version>8.0.29</mysql.version>
<slf4j.version>1.7.21</slf4j.version>
<jackson.version>2.7.4</jackson.version>
<druid.version>1.1.0</druid.version>
<httpclient.version>4.3.5</httpclient.version>
<jstl.version>1.2</jstl.version>
<servlet-api.version>2.5</servlet-api.version>
<jsp-api.version>2.0</jsp-api.version>
<commons-lang3.version>3.3.2</commons-lang3.version>
<commons-io.version>1.3.2</commons-io.version>
<commons-net.version>3.3</commons-net.version>
<pagehelper.version>4.1.3</pagehelper.version>
<!-- 使用redisTamplate结合jedisPoolConifg 必须使用jedis版本2.9.0 -->
<jedis.version>2.9.0</jedis.version>
<commons.httpclient.version>3.1</commons.httpclient.version>
<dubbo.version>2.5.3</dubbo.version>
<zookeeper.version>3.4.11</zookeeper.version>
<zkclient.version>0.1</zkclient.version>
<apache.curator.version>4.0.0</apache.curator.version>
</properties>
<!-- 只定义依赖的版本,不会实际依赖 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Apache工具组件 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<