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>
<