Maven与SSM

本文详细介绍了Maven作为项目管理工具的作用、核心概念,包括项目对象模型POM、依赖管理和项目生命周期。同时,讲解了如何创建Maven项目,解决依赖冲突和版本问题。接着,文章探讨了MyBatis持久层工具,阐述了其简化数据库操作和Mapper的核心概念。

一、maven 项目管理工具

1.作用

自动化构建、依赖管理

2.核心概念

1)项目对象模型: Project Object model (POM)

maven工具将项目视为一个“对象”进行管理,在pom.xml中配置了项目对象的各种“配置/属性”,用于自动化处理

pom.xml中的配置信息
参考:pom中的配置标签

项目自身信息

生成项目文档用到的信息

文件头 <xml version= “” encoding=""> <project>
模型版本 <modelVersion>
项目坐标 <groupid>(公司名) <artifactid>(项目通用名) <version>(项目版本) <name>(项目名) <description>(文档描述) <URL>(从哪个网站可找到该项目)<packaging> 打包机制jar/war/pom… <developers>开发者信息 等等

项目运行依赖信息(依赖管理模型)

添加依赖 <dependencies>
添加本项目的本地仓库 <repositories>

运行环境信息

<build> <plugins> 添加插件,Tomcat/jdk等

一个最简单的pom.xml文件配置如下

<?xml version="1.0" encoding="UTF-8"?>
<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>heimaStudy</groupId>
    <artifactId>day1207Study</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.37</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

2)依赖管理模型

传统java项目
手动导入jar包并添加buildpath
项目文件体积大、开发效率低、资源不共享…

maven依赖管理
pom文件中添加dependency标签,联网根据标签自动导入jar包,代码中直接使用对应jar包的类和功能即可

	<dependency>
	<groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>8.2-504.jdbc4</version>
    <scope>runtime</scope>
    </dependency>

3)项目生命周期

有序的运行调用插件指定命令,完成清理、编译、运行、发布等

生命周期插件(命令)工作内容
清理clean (mvn clean)clean
defaultcompile(mvn compile)编译
defaulttest(mvn test)测试
defaultpackage(mvn package)打包
defaultinstall(mvn install)安装
defaultdeploy(mvn clean)部署/发布
站点site(mvn site)未知

每个环节向前包含,即执行某个命令,一定会先执行其前面的命令

3.创建一个maven项目

idea提供了maven骨架(即包含了 一个标准maven项目必有的大多数目录和xml文件 的项目框架)

基础流程

1.选择骨架/不选择骨架(创建一个空项目)
在这里插入图片描述
2. 填写并确认信息(公司名、项目名、项目放置位置、应用的setting.xml、本地仓库位置、…),一般next->finish 即可
3. 运行项目
直接选择下方命令或点击红框中的m自定义命令
自定义命令如:mvn tomcat7:run
在这里插入图片描述

依赖冲突/版本问题

  1. 依赖冲突:导入的jar包和运行时使用自带的jar包产生冲突
    配置导入jar包时使用Scope标签指定作用域为provided,仅编译和测试时使用

  2. tomcat版本与XXX不兼容问题
    在plugin标签中配置添加正确的TomcatX插件
    在运行时指定自定义命令 mvn tomcatX:run

二、mybatis 持久层工具

1.作用

是对jdbc的封装,使数据库操作更透明更灵活(不会严密的封装在DaoImlp中)
在项目中相当于一个插件(maven工程中通过配置plugin引入使用)

2. 核心概念

1) mapper

概念
将数据持久层中的SQL执行操作从方法中抽取出来,放到映射配置xml文件中;根据配置文件的映射关系执行方法并返回结果

应用过程

  1. 为数据库操作的Dao类提供映射配置文件(名称必须与Dao类名相同,路径必须与Dao路径一致
    通过映射配置文件中指定mapper标签的namespace,将Dao接口和xml文件关联

  2. 提供mybatis主配置文件 (名称位置随便,此处是sqlMapConfig.xml)
    在主配置文件中记录所有映射配置文件的位置(使用mapper标签的resource

  3. 读取配置文件
    通过mybatis提供的resources.getResourceAsStream加载输入流,指向主配置文件
    加载到主配置文件中的数据库连接参数,以及所有mapper标签记录的映射配置文件位置

  4. 获取代理对象并调用数据库操作的方法
    使用sqlSessionFactoryBuilder,以输入流为参数,根据加载到的数据库连接参数,获取 数据库连接工厂类对象,再获取SQLSession对象
    通过sqlSession的getMapper方法,获取参数指定的UserDao接口的代理对象,并加载与接口全类名对应的映射配置文件UserDao.xml
    调用代理对象的selectAllUsers方法,根据映射配置文件执行指定语句,并将查询结果封装成指定类型(根据指定resultType全类名,调用其无参构造函数和set方法)

  5. 返回指定类型的结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值