Maven的使用

Maven讲义

1.  Maven概述

 1.1.  Maven是什么

  Maven是一个由Apache基金会维护的项目构建工具

 1.2.  项目构建是什么

  我们将项目的代码从源代码具体程序文件的过程称为代码构建。

  行为包括:编译、测试、运行、打包、部署的过程

 

 1.3.  Eclipse项目构建

  Eclipse构建项目的过程图示:

   Maven的使用_第1张图片

 


构建过程如下:

1) 创建一个Web项目

2) 在项目中编写好源代码和配置文件

3) 对源代码编译生成class文件

4) 通过Junit对代码单元测试

5) 将项目通过Eclipse工具放在Tomcat运行

6) 将项目导出war,放在Tomcat运行

 

 1.4.  Maven构建项目

  通过Maven构建工具可以一条命令完成上面所有的操作:

 Maven的使用_第2张图片

1. *clean,清除命令,作用清除已经编译的class文件和war文件 

2.  *compile,编译命令,作用是将java文件编译成class文件

3.  *package,打包命令,作用将class文件打成war

4.  test,测试命令,作用执行Junit工具(可以忽略)

5.  deploy,部署命令,将war包放在指定的tomcat(可以忽略)

6.  *运行Tomcat,通过命令tomcat7:run (要加入Maven工具的Tomcat7插件)

7.  *install,安装命令,一条命令包括了,clean complile package test

 

 1.5.  使用Maven的好处

1.  使用命令,一键快速编译部署

2.  对项目的构建更加精细化,适合大型项目的构建

3.  Maven支持直接通过配置文件(POM)的配置下载依赖的包

4.  各大开源社区强制使用Maven导包,意味着如果不学它,有很多的开源项目不好入门。

 

2.  Maven的安装

 2.1.  Maven说明

下载路径:http://maven.apache.org/download.cgi

目录说说明:

Maven的使用_第3张图片

 


 2.2. 
环境配置 

   2.2.1. 第一步:确定JAVA_HOME配置

前提:如果要在CMD命令行运行Maven,必须要配置JAVA_HOME环境变量

通过set命令

    Maven的使用_第4张图片

  

    如果没有配置JAVA_HOME环境会导致运行获得Java运行环境,异常如下:


    Maven的使用_第5张图片

 

  

 

   2.2.2.  第二步:配置MAVEN_HOME环境变量

    Maven的使用_第6张图片

 


  2.2.3. 
第三步:指定Maven执行命令到当前目录 

配置执行目录到PATH环境变量,让命令可以在当前目录可以执行

--变量Path变量

Maven的使用_第7张图片

 

    --成功增加结果变量:%MAVEN_HOME%\bin

  2.2.4.  第四步:测试配置,在CMD下键入mvn -h

    如果返回参数提示如下图,说明配置成功!

    Maven的使用_第8张图片

 


  2.2.5. 
第五步:配置Maven国内源 

由于默认Maven使用国外的源,会导致下载jar比较慢。

配置Mavenconf文件夹的settings.xml文件

  

    

 

    

      alimaven

      aliyun maven

      http://maven.aliyun.com/nexus/content/groups/public/

      central        

    

 

  

 

3.  入门配置

  需求:通过命令行,使用Maven项目创建一个Java项目,并且打包。

 

 3.1.  第一步:创建项目

  使用mvn archetype:generate命令创建java项目

 Maven的使用_第9张图片

 

 3.2.  第二步:设置坐标信息

设置坐标信息,通过以下三个信息确定坐标。标记全球Maven项目的唯一性。

groupId:组织ID

artifactId:项目名

package:包名

    Maven的使用_第10张图片

    --提示,创建成功

    Maven的使用_第11张图片

 

 

 3.3.  第三步:编译项目

  使用命令 mvn compile

  Maven的使用_第12张图片

  --编译成功,生成target文件夹

  Maven的使用_第13张图片

 

 3.4.  第四步:打包

  通过命令mvn package

  Maven的使用_第14张图片

  --打包成功,在target文件夹下会生成jar

  Maven的使用_第15张图片

 

  --通过该入门示例,可以发现,使用Maven创建构建项目,是可以不依赖任何开发工具的。

 

  通过该入门示例,我们看到了我们需要学习的内容包括:Maven的命令仓库

 

问题:默认Maven仓库在哪里?

答:C:\Users\YL\.m2 ,在登录用户的个人文件夹里面的.m2文件夹就是仓库

问题:有什么办法了解更多的mvn的命令呢?

答:mvn下的命令都是一个插件Maven工具内置的可以使用的插件都在其官方帮助文档找到说明。

https://maven.apache.org/plugins/index.html

 

4.  Eclipse使用Maven

 4.1.  配置Maven

   4.1.1. 第一步:打开Eclipse首选项

   Maven的使用_第16张图片

 


  4.1.2. 
第二步:配置外部Maven

    配置指定外部的Maven

    Maven的使用_第17张图片

    --选择使用配置的外部的Maven

    Maven的使用_第18张图片

 

   4.1.3.  第三步:【可选】查看默认本机仓库

    Maven的使用_第19张图片

 


 
 

 4.2.  通过Maven创建普通项目

 

   4.2.1.  第一步:创建一个Maven项目

  

 


  4.2.2. 
第二步:创建一个自定义的Maven项目 

  Maven的使用_第20张图片

 


4.2.3. 
第三步:设置项目构建信息 

GroupId:组编号

ArtifactId:项目标识符(项目的项目名)

注意:Maven是通过GroupIdArtifactId来确定项目的唯一性,我们称为坐标。任何项目要发布到Maven的库中,必须要有一个全球唯一的坐标。

Version:发布的版本号

Packaging:打包方式。

(1) jar:以jar包方式打包,普通java项目

(2) war:以war包方式打包,是web项目

(3) pom:不打包,表示该项目是一个聚合项目。在多子项目的项目中,用于管理公用Maven构建属性

Name:【可以忽略】就是一个项目的一个名称,实际实战中,一般跟ArtifactID一致。

Description:【可以忽略】就是项目的描述

  Maven的使用_第21张图片

  

 --创建成功

  Maven的使用_第22张图片

   4.2.4.  第四步:创建一个简单的HelloWorld

package cn.zj;

public class HelloWorld {

 

public static void main(String[] args) {

System.out.println("HelloWorld");

}

}

 

4.2.5.  第五步:构建项目

注意:

1.  Maven build:用于执行Maven的命令

2.  Maven Clean:等同执行 mvn clean

3.  Maven generate-source:等同 mvn build

4.  Maven Intall:等同 mvn install 。同时执行,清除、编译、测试、打包、并将包安装到maven仓库

  Maven的使用_第23张图片

    --构建成功

    Maven的使用_第24张图片

 

 

 4.3.  通过Maven创建Web项目

   4.3.1.  第一步:创建一个Maven项目

  Maven的使用_第25张图片

  --创建项目后,报错信息。提示没有web.xml


解决方案:

(1) .通过标签忽略web.xml

(2) .创建一个web.xml文件


    Maven的使用_第26张图片

 

  

   4.3.2.  第二步:创建web.xml

   1.  创建一个在src/main/webapp下创建WEB-INF文件夹

   Maven的使用_第27张图片

 


   2. 
WEB-INF文件下创建一个web.xml文件   

   --通过xsd规则文件创建

    Maven的使用_第28张图片

 


 
  --创建成功后,报错消失。!!!!

 

   选中项目右键

   

 

 

   4.3.3.  第三步:创建一个index.jsp

    Maven的使用_第29张图片

 


   
发现,报错。原因是没有加入
JSP依赖的ServletAPI以及JSP的类库。

   4.3.4.  第四步:通过POM.xml加入依赖的类库

--依赖的类库的jar的坐标取哪里找?

答:可以在一下的公有仓库找。

http://mvnrepository.com/

 

http://search.maven.org/

注意:以后我们开发出来的功能组件希望让别人通过Maven使用,也可以提交到这两个用于库

 

<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.0modelVersion>

<groupId>cn.zjgroupId>

<artifactId>maven-demo-02-webartifactId>

<version>0.0.1-SNAPSHOTversion>

<packaging>warpackaging>

 

<dependencies>

 

<dependency>

<groupId>javax.servletgroupId>

<artifactId>javax.servlet-apiartifactId>

<version>3.0.1version>

              <scope>providedscope>

dependency>

 

 

<dependency>

<groupId>javax.servlet.jspgroupId>

<artifactId>javax.servlet.jsp-apiartifactId>

<version>2.2.1version>

              <scope>providedscope>

dependency>

dependencies>

project>

注意事项,创建Maven项目是报异常,可以强制更新项目

--右击项目-->选择Maven-->Update Project、

 Maven的使用_第30张图片

 


    --强制更新

    Maven的使用_第31张图片

 

   4.3.5.  第五步:通过Maven运行Tomcat启动项目

    -1.安装tomcat7Maven插件

    所有的Maven工具内置插件都是有在https://maven.apache.org/plugins/index.html找到。


    Maven的使用_第32张图片

 

 

    --安装2.2 版本

    Maven的使用_第33张图片

 

 

pom.xml 配置配置tomcat插件

<build>

<plugins>

<plugin>

<groupId>org.apache.tomcat.mavengroupId>

<artifactId>tomcat7-maven-pluginartifactId>

<version>2.2version>

plugin>

plugins>

build>

   4.3.6.  使用Tomcat插件运行Maven项目

    点击项目鼠标右键

    Maven的使用_第34张图片

 


   4.3.7. Maven下面Tomcat插件 项目细节配置

Tomvat 默认项目上下文路径是项目名称,默认端口是 8080

开发者可以手动配置插件信息

<build>

<plugins>

<plugin>

<groupId>org.apache.tomcat.mavengroupId>

<artifactId>tomcat7-maven-pluginartifactId>

<version>2.2version>

<configuration>

<path>/mavenpath>

<port>80port>

configuration>

plugin>

plugins>

build>

5.  修改jre 依赖版本

  Maven 默认依赖的jar版本是 1.5,开发者可以配置jre版本,有两种配置方式

 

 5.1.  单独为某一个项目配置

<build>

<plugins>

<plugin>

<groupId>org.apache.tomcat.mavengroupId>

<artifactId>tomcat7-maven-pluginartifactId>

<version>2.2version>

<configuration>

<path>/mavenpath>

<port>80port>

configuration>

plugin>

<plugin>

<groupId>org.apache.maven.pluginsgroupId>

<artifactId>maven-compiler-pluginartifactId>

<configuration>

<target>1.8target>

<source>1.8source>

configuration>

plugin>

plugins>

build>

 

 5.2.  修改setting.xml配置文件

可以修改  maven/confg/setting.xml 标签中添加如下代码,使用此种方式全局生效

以后创建的项目全部都是1.8版本

<profile>

 <id>jdk-1.8id>

 <activation>

  <activeByDefault>trueactiveByDefault>

  <jdk>1.8jdk>

 activation>

 <properties>

  <maven.compiler.source>1.8maven.compiler.source>

  <maven.compiler.target>1.8maven.compiler.target>

  <maven.compiler.compilerVersion>1.8maven.compiler.compilerVersion>

 properties>

profile>

 

 

6.  通过Maven创建多个工程组成的项目

  需求:使用Maven项目创建一个ssm整合的项目。项目的每一层为一个工程。

 

 6.1.  第一步:创建Maven项目

注意:

1.  表示层是WEB项目,其他的都是功能组件,所以使用普通的Jar项目

2.  Parent项目是一个聚合项目,主要用于维护统一的包依赖,统一的插件,统一构建项目(测试、编译、打包)

   6.1.1.  创建parent-项目

  Maven的使用_第35张图片

 

   6.1.2. 创建聚合项目的子模块项目


    Maven的使用_第36张图片

 

 

   6.1.3.  最终效果

  Maven的使用_第37张图片

 


 6.2. 第二步:Eclipse实现项目分组 

(1)  .将项目列表使用Working Sets显示


  Maven的使用_第38张图片

 

 

(2)  .插件一个项目分组


  Maven的使用_第39张图片

 

 

(3) 设置项目组信息

  Maven的使用_第40张图片

 


  
  --分组后结果

  Maven的使用_第41张图片

 


 6.3. 
第三步:聚合项目后的效果 

--聚合所有需要构建的工程,可以实现统一构建项目。所谓的统一构建项目,就是统一的执行清除、测试、编译、打包等操作

--在聚合项目ssm-parent通过 实现聚合所有的需要统一构建的项目

Maven的使用_第42张图片

 


--
代码 

<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.0modelVersion>

  <groupId>cn.zjgroupId>

  <artifactId>ssm-parentartifactId>

  <version>0.0.1-SNAPSHOTversion>

  <packaging>pompackaging>

  <description>这是一个聚合项目,本身至于维护其它子项目的包关系插件等description>

  

  

  <modules>

  <module>ssm-mappermodule>

  <module>ssm-servicemodule>

  <module>ssm-pojomodule>

  <module>ssm-webmodule>

  <module>ssm-utilmodule>

  modules>

project>

 

 6.4.  第四步:项目的继承

注意:所谓的项目继承,就是一个项目已经在pom.xml声明的各种元素,继承的子工程的pom.xml也获得该父工程的pom.xml所有声明的元素。

 

前提:以前如果每个工程需要使用Log4JJunit,都要在各自的项目的pom.xml加入依赖。这样做他麻烦了。

需求:在ssm-parent声明一次依赖Log4JJunit,其他所有的子工程都可以使用。

 

(1) 在父包加入了依赖

Maven的使用_第43张图片

 


(2)
在子项目继承父工程。也获得了父工程声明的元素 

Maven的使用_第44张图片

 

 6.5. 第五步:依赖包的版本统一管理 

需求:实现所有项目依赖的类库的版本统一管理。

 

答:可以通过属性的设置与版本锁定,使用依赖包的统一管理

(1) 父项目,设置属性与版本锁定

<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.0modelVersion>

<groupId>cn.zj.parentgroupId>

<artifactId>ssm-parentartifactId>

<version>0.0.1-SNAPSHOTversion>

<packaging>pompackaging>

<description>这是一个聚合项目,本身至于维护其它子项目的包关系插件等description>

 

<properties>

<log4j.version>1.2.17log4j.version>

<junit.version>4.12junit.version>

<springmvc.version>4.3.16.RELEASEspringmvc.version>

properties>

<dependencies>

<dependency>

<groupId>log4jgroupId>

<artifactId>log4jartifactId>

<version>${log4j.version}version>

<scope>compilescope>

dependency>

<dependency>

<groupId>junitgroupId>

<artifactId>junitartifactId>

<version>${junit.version}version>

<scope>testscope>

dependency>

dependencies>

 

org.springframework

spring-webmvc

${springmvc.version}

<modules>

<module>ssm-webmodule>

<module>ssm-servicemodule>

<module>ssm-mappermodule>

<module>ssm-pojomodule>

<module>ssm-utilsmodule>

modules>

project>

 

(2) 子项目,不需要再指定版本锁定的类库的版本

<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.0modelVersion>

  <groupId>cn.zj.controllergroupId>

  <artifactId>ssm-webartifactId>

 

  <packaging>warpackaging>

  

  

  <parent>

    <groupId>cn.zj.parentgroupId>

    <artifactId>ssm-parentartifactId>

    

    <version>0.0.1-SNAPSHOTversion>

    

  parent>

  

  

  <dependencies>

  

  org.springframework

  spring-webmvc

  

  

  dependencies>

  

project>

   6.5.1.  依赖的范围

    Scope 声明依赖包在哪个阶段有效

Compile(默认)  spring,mybatis

编译(compile)时需要 测试时需要,,运行时需要,打包时需要

Provided  jsp-api.jar   servlet-api.jar

编译(compile)时需要,测试(test)时也需要 ,运行时不需要,打包时不需要

 

Runtime   数据库驱动包

编译时不需要,测试时需要,,运行时需要,打包时需要

Test  junit.jar

编译时不需要,测试时需要,运行时不需要,打包也不需要

 

 

 6.6.  第六步:在ssm-web工程配置SpringMVC框架

   6.6.1.  导入包依赖

    --ssm-parent对依赖包版本锁定

<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.0modelVersion>

<groupId>cn.zj.parentgroupId>

<artifactId>ssm-parentartifactId>

<version>0.0.1-SNAPSHOTversion>

<packaging>pompackaging>

<description>这是一个聚合项目,本身至于维护其它子项目的包关系插件等description>

 

<properties>

<log4j.version>1.2.17log4j.version>

<junit.version>4.12junit.version>

<springmvc.version>4.3.16.RELEASEspringmvc.version>

<servlet-api.version>3.0.1servlet-api.version>

<jsp.version>2.2.1jsp.version>

properties>

 

 

 

<dependencies>

<dependency>

<groupId>log4jgroupId>

<artifactId>log4jartifactId>

<version>${log4j.version}version>

<scope>compilescope>

dependency>

 

 

<dependency>

<groupId>junitgroupId>

<artifactId>junitartifactId>

<version>${junit.version}version>

<scope>testscope>

dependency>

 

 

dependencies>

 

<dependencyManagement>

org.springframework

spring-webmvc

${springmvc.version}

 

javax.servlet

javax.servlet-api

${servlet-api.version}

provided

 

javax.servlet.jsp

javax.servlet.jsp-api

${jsp.version}

provided

 

 

dependencyManagement>

 

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.pluginsgroupId>

<artifactId>maven-compiler-pluginartifactId>

<version>3.5version>

<configuration>

<source>1.8source>

<target>1.8target>

configuration>

plugin>

plugins>

build>

 

 

<modules>

<module>ssm-webmodule>

<module>ssm-servicemodule>

<module>ssm-mappermodule>

<module>ssm-pojomodule>

<module>ssm-utilsmodule>

 

modules>

project>

 

    --ssm-webpom.xml导入依赖包

<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.0modelVersion>

<groupId>cn.zj.controllergroupId>

<artifactId>ssm-webartifactId>

 

<packaging>warpackaging>

 

<parent>

<groupId>cn.zj.parentgroupId>

<artifactId>ssm-parentartifactId>

<version>0.0.1-SNAPSHOTversion>

 

parent>

 

 

 

org.springframework

spring-webmvc

 

 

javax.servlet

javax.servlet-api

 

javax.servlet.jsp

javax.servlet.jsp-api

 

<build>

<plugins>

 

<plugin>

<groupId>org.apache.tomcat.mavengroupId>

<artifactId>tomcat7-maven-pluginartifactId>

<version>2.2version>

plugin>

plugins>

build>

 

project>

 

 

   6.6.2.  创建一个请求页面

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title heretitle>

head>

<body>

   <a href="${pageContext.request.contextPath }/user/add.do">adda>

body>

html>

 

   6.6.3.  编写web.xml

xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="http://java.sun.com/xml/ns/javaee"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

id="WebApp_ID" version="2.5">

 

<servlet>

<servlet-name>MVCservlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>

 

<init-param>

<param-name>contextConfigLocationparam-name>

<param-value>classpath:applicationContext*.xmlparam-value>

init-param>

 

<load-on-startup>1load-on-startup>

 

servlet>

<servlet-mapping>

<servlet-name>MVCservlet-name>

<url-pattern>*.dourl-pattern>

servlet-mapping>

 

web-app>

 

   6.6.4.  编写配置文件spring-mvc.xml

 

<context:component-scan base-package="cn.zj.ssm"/>

<mvc:annotation-driven />

<bean

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/views/" />

<property name="suffix" value=".jsp" />

bean>

 

 

   6.6.5.  编写Controller组件类

package cn.zj.controller;

 

import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

 

@Controller

@Scope(value="request")

@RequestMapping(value="/user")

public class StudentController {

 

@RequestMapping(value="/add")

public void add(){

System.out.println("-增加用户-");

}

 

}

 

 6.7.  第七步:在ssm-mapper工程配置Mybatis框架

   6.7.1.  导入包依赖

    --ssm-mapper项目导入依赖

<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.0modelVersion>

  <groupId>cn.zj.mappergroupId>

  <artifactId>ssm-mapperartifactId>

  <parent>

  <groupId>cn.zj.parentgroupId>

  <artifactId>ssm-parentartifactId>

  <version>0.0.1-SNAPSHOTversion>

  

  parent>

  

  <dependencies>

      

  

 

  <dependency>

  <groupId>mysqlgroupId>

  <artifactId>mysql-connector-javaartifactId>

  dependency>

  

  

 

  <dependency>

  <groupId>org.mybatisgroupId>

  <artifactId>mybatisartifactId>

  dependency>

  

  

  <dependency>

  <groupId>cn.zj.pojogroupId>

  <artifactId>ssm-pojoartifactId>

  <version>0.0.1-SNAPSHOTversion>

  dependency>

  

  

  <dependency>

  <groupId>org.apache.commonsgroupId>

  <artifactId>commons-dbcp2artifactId>

  dependency>

  

  dependencies>

 

  

project>

   6.7.2.  创建操作映射注解

    --创建一个操作接口,编写一个插入数据的SQL语句

package cn.zj.mapper;

 

import org.apache.ibatis.annotations.Insert;

import org.apache.ibatis.annotations.Options;

 

import cn.zj.pojo.User;

 

public interface StudentMapper {

 

@Insert(value="INSERT INTO t_user(name, phone, email)VALUES (#{name}, #{phone}, #{email})")

//操作后,实体对象需要ID,使用ID回填

@Options(useGeneratedKeys=true,keyProperty="id",keyColumn="id")

int insert(User user);

 

}

 

   6.7.3.  编写mybatis-config.xml配置文件

 

    在test/resources创建mybatis-config.xml配置文件

    Maven的使用_第45张图片

 


  
  --配置文件代码 

xml version="1.0" encoding="UTF-8"?>

DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "mybatis-3-config.dtd" >

<configuration>

 

   <environments default="mysql">

     <environment id="mysql">

       <transactionManager type="JDBC">transactionManager>

       <dataSource type="POOLED">

          <property name="driver" value="com.mysql.jdbc.Driver"/>

          <property name="url" value="jdbc:mysql://localhost:3306/sms"/>

          <property name="username" value="root"/>

          <property name="password" value="admin"/>

       dataSource>

     environment>

   environments>

   

   <mappers>

      <mapper class="cn.zj.mapper.UserMapper"/>

   mappers>

configuration>

 

 

   6.7.4.  测试代码

package cn.zj.test;

import java.io.IOException;

import java.io.Reader;

 

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import org.junit.Test;

 

import cn.zj.mapper.UserMapper;

import cn.zj.pojo.User;

 

public class UserMapperTest {

 

@Test

public void insert(){

 

 

try {

//1.获得配置文件

Reader reader = Resources.getResourceAsReader("mybaits-config.xml");

//2.通过SqlSessionFactoryBuilder获得SqlSessionFactory对象

SqlSessionFactoryBuilder build=new SqlSessionFactoryBuilder();

//获得会话工厂

SqlSessionFactory sessionFactory = build.build(reader);

//获得会话

SqlSession session = sessionFactory.openSession();

//获得操作接口的动态对象

UserMapper mapper = session.getMapper(UserMapper.class);

User user=new User();

user.setName("王五");

int count = mapper.insert(user);

System.out.println(count);

//提交

session.commit();

session.close();

System.out.println(user.getStuId());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

 

 

 6.8.  第八步:整合SpringMVCMybatis

 

   6.8.1.  配置支持支持${key}获得Properties文件值

<context:property-placeholder location="classpath:db.properties"/>

 

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"

init-method="init" destroy-method="close">

<property name="driverClassName" value="${jdbc.driverClassName}" />

<property name="url" value="${jdbc.url}" />

<property name="username" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

<property name="maxActive" value="${jdbc.maxActive}" />

bean>

 

   6.8.2.  整合Mybatis

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="dataSource" ref="dataSource"/>

 

<property name="typeAliasesPackage" value="cn.zj.ssm.pojo"/>

 

<property name="configLocation" value="classpath:mybatis-config.xml"/>

 

<property name="mapperLocations" value="classpath:cn/zj/ssm/dao/*Mapper.xml">property>

bean>

 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

 

 <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>

 

 

 <property name="basePackage" value="cn.zj.ssm.dao"/>

 bean>

 

   6.8.3.  配置事物管理器

<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource"/>

bean>

 

 

<tx:advice id="txAdvice" transaction-manager="txManager">

<tx:attributes>

<tx:method name="find*" read-only="true"/>

<tx:method name="get*" read-only="true"/>

<tx:method name="query*" read-only="true"/>

<tx:method name="select*" read-only="true"/>

<tx:method name="list*" read-only="true"/>

<tx:method name="*"/>

tx:attributes>

tx:advice>

 

<aop:config>

<aop:pointcut expression="execution (* cn.zj.ssm.service..*.*(..))" id="pt"/>

 

<aop:advisor advice-ref="txAdvice" pointcut-ref="pt"/>

aop:config>

 

7.  常见问题

问题1:已经下载到本地仓库的jarEclipse如何快速加入到Pom.xml文件里面

答:进入POM.xml对应的标签位置,右击选择增加依赖或者插件。

--选择增加的依赖

  Maven的使用_第46张图片

 

 

  --选择需要的依赖

   Maven的使用_第47张图片

 

 

问题2:本地明明已经下载了对应的插件或者jar包。但Eclipse工具搜索不出来.

答:原因是缓冲问题。可以清一下仓库索引,操作步骤

--打开Maven仓库管理窗口

  Maven的使用_第48张图片

 


  --刷新索引缓存

  Maven的使用_第49张图片

 

  问题3:如何设置默认的JDK版本

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.pluginsgroupId>

<artifactId>maven-compiler-pluginartifactId>

<version>3.5version>

<configuration>

<source>1.8source>

<target>1.8target>

configuration>

plugin>

plugins>

build>

 

问题4:设置打包安装跳过Junit的测试

<plugin>

<groupId>org.apache.maven.pluginsgroupId>

<artifactId>maven-surefire-pluginartifactId>

<version>2.18.1version>

<configuration>

  <skipTests>trueskipTests>

configuration>

plugin>

 

 

你可能感兴趣的:(Maven的使用)