2021-07-06

Maven

概念

是一个项目管理工具,管理的石项目中的jar包。

1.使用原始引入jar的方式,可能导致引入的包错误,以及版本不匹配的问题

2.多人协作开发时,无法有效的将jar包进行同步。造成代码的损失,或者更为严重的错误

maven有一个叫做pom.xml的文件,在这个文件中,就标注了当前工程需要引入的依赖,三个标签。groupid,artifactId,version,scope 三个组合起来,确定你需要一引入的jar包。

jar包的下载,有很多环境,1.*仓库。2.远程仓库--(配置镜像为阿里云)--都是设置在公网上的。3.私有仓库,只能在局域网内生效,多用于对代码安全较高的公司。4.本地仓库。存储的就是下载好的jar包,当工程需要时,直接从本地仓库中进行寻找。

pom.xml-->本地仓库-->远程仓库--->*仓库

安装maven

1.绿色版

2.需要安装的

#本地仓库的地址,不要放在c盘下,以及中文目录下
<localRepository>D:/repository</localRepository>
​
#配置镜像,默认maven是从国外的网址进行jar包的下载,下载的速度依赖于个人的网速,以及是否开放问题。
   <mirrors>
         <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
             <!--表示该镜像是是 id 为central的仓库的镜像, central 默认是*仓库,也就是从*仓库下载的时候               会被拦截到该地址-->
            <mirrorOf>central</mirrorOf>        
            </mirror>
        </mirrors>

环境变量配置

打开环境变量

添加环境变量:MAVEN_HOME G:\apache-maven-3.5.0 (你当前的maven安装路径)

在path中配置 %MAVEN_HOME%\bin

打开cmd命令窗口

mvn -v

如能出现maven的版本号,以及java的版本号,说明maven安装成功!

Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)
Maven home: G:\apache-maven-3.5.0\bin\..
Java version: 1.8.0_31, vendor: Oracle Corporation
Java home: G:\java1.8
Default locale: zh_CN, platform encoding: UTF-8
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "windows"

maven 的命令

mvn clean ---清理已经编译好的依赖
mvn test ---测试当前项目是否可以运行
mvn compile---使用maven来进行项目的编译
mvn package ---使用maven进行打包,可选两种打包方式。1.jar包。2.war包
mvn deploy ---当配置了私有仓库时,使用该命令,会将打好的jar包进行上传的操作。
mvn install ---下载当前Pom中的依赖。同时也可作为打包命令
​
统一的特点,会审查本地仓库中没有的依赖,如果发现你在项目中引入了本地仓库没有的jar会去*仓库去下载,放置在本地仓库中,这时就可以进行使用了

使用idea 创建一个maven项目

1.打开idea的setting设置,输入maven

1.配置当前maven的目录地址

2.user setting file 使用的maven的setting.xml的配置文件

3.localRespsitory 本地的仓库的路径

以上配置作用于当前项目,每新创建一个项目,都需要进行配置。

2.使用default setting ,设置完成后,默认的设置

other settings->default settings->配置maven的内容

Servlet复习

1.get与post的区别

数据传输方式。get请求在url路径上的。post请求方式在请求体中。

get请求的传输的数据量是有限的 2kb

post可以传输大数据量

get请求是不安全的请求。post请求安全

2.forward 与redirect 的区别

git

版本管理工具

git的远程仓库: github(国外),gitee

1.安装 git

http://git-scm.com/downloads

idea中使用git

1.在setting中设置git

2.创建本地仓库。当类的颜色为红色时,说明当前 的代码尚未添加到缓存中。

注意:git创建仓库或者提交代码是,不允许提交.iml以及.idear结尾的文件 ,很容易发生 代码冲突的情况

3.如何排除.idea结尾以及.iml结尾的文件 需要在plugin中安装插件

.ignore

4.使用new file 创建 .gitignore (排除不上传的内容)

5.将代码加入到缓存中 如果类颜色变为绿色则代表,以加入缓存。

6.我们要从缓存中提交到本地仓库

7.使用commit 提交到本地仓库,类颜色变为了黑色

Git命令

git init  --初始化仓库
git add   --添加到缓存中
git commit -m “提交的信息 ” --提交到本地仓库
git remote add origin  远程仓库地址   ---添加远程仓库的地址
git push  -u origin master --推送到远程仓库

在公司中,使用git有两种方式:

1.所有人的代码,向同一个分支进行提交 ,优点:容易整合,比较简单。缺点:特别容易出现冲突问题

通常创建三个分支:
    1.dev 分支  代表着开发代码
            
    2.test 分支 代表测试代码
        
    3.pro 分支 代表着线上的代码 

2.每个人创建自己的独立分支,每次更改后,向独立分支提交,但是最后整合时,需要有人将各个个人分支合并到一起。1.解决了容易出现冲突的问题。缺点:必须有一个人统筹git,进行合并操作,如没有合并好,很容易出现代码丢失的情况。

通常项目组内有几个人,则开启几个分支,一定时间,有专人进行代码合并工作

注意:代码提交前,一定要先拉取代码。git push 之前 先git pull ! 2.代码拉取前先备份!!!

Mybatis

简介

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

使用mybatis

添加依赖 https://mvnrepository.com/artifact/org.mybatis/mybatis/3.4.6

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>
​

2.编写 mybatis.xml 核心配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- mybatis 的核心配置-->
<!-- 配置内容-->
<configuration>
    <!-- 环境配置-->
    <environments default="development">
        <!-- 第一个环境-->
        <environment id="development">
            <!-- 事务管理器-->
            <transactionManager type="JDBC"/>
            <!-- 数据源-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/xa_2104?useUnicode=true"/>
                <property name="username" value="root"/>
                <property name="password" value="59852369"/>
            </dataSource>
        </environment>
    </environments>
    <!-- sql.xml映射文件的存储路径-->
    <mappers>
        <mapper resource="mapper/StudentMapper.xml"/>
    </mappers>
</configuration>

3.编写 StudentMapper.xml

namespace 的作用:

1.唯一标识符

2.与接口进行映射

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
​
<!-- namespace 当前xml的唯一标识-->
<mapper namespace="com.qf.dao.StudentMapper">
    <!--
    id:唯一标识
    resultType: 返回的数据类型
    parameterType :传入的参数类型
    -->
    <select id="findStudentById" resultType="com.qf.pojo.Student" parameterType="int">
        SELECT * from tb_student where id = #{id}
    </select>
</mapper>

配置Mybatis.xml

 <!-- 使用properties引入文件 -->
    <properties resource="jdbc.properties"></properties>
    
    <typeAliases>
        <!-- 配置单个实体的别名-->
        <!--<typeAlias type="com.qf.pojo.Student" alias="stu"/>-->
        <!--
        配置整个包下的实体的别名
        会自动给当前包下的实体 生成别名 生成规则  首字母小写,例如com.qf.pojo.Student ->student
        -->
        <package name="com.qf.pojo"></package>
    </typeAliases>
    
    <!-- 配置插件  pagehelp的分页插件-->
     <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
    </plugins>
        <!-- 分页的依赖-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.2.0</version>
        </dependency>

mybatis日志的使用

1.添加依赖

		<!-- 日志依赖-->
        <!-- https://mvnrepository.com/artifact/log4j/log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

2.配置log4j.properties

# 全局日志配置
log4j.rootLogger=error, stdout
# MyBatis 日志配置
log4j.logger.com.qf.dao=TRACE
# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

mybatis传参的方式

 <!-- 通过下标获取参数-->
    <select id="findBySexAndAge" resultType="student">
        SELECT * from tb_student where sex = #{arg0} and age = #{arg1}
    </select>
    <!-- 通过map的key值获取参数-->
    <select id="findBySexAndAgeWithMap" resultType="student">
         SELECT * from tb_student where sex = #{studentSex} and age = #{studentAge}
    </select>

    <!-- 通过对象传输-->
    <select id="findBySexAndAgeWithObj" resultType="student" parameterType="student">
          SELECT * from tb_student where sex = #{sex} and age = #{age}
    </select>

    <!-- 通过注解方式-->
    <select id="findBySexAndAgeWithAnno" resultType="student">
        SELECT * from tb_student where sex = #{a} and age = #{b}
    </select>

mybatis的修改

    <!--
    <select>
    <update>
    <insert>
    <delete>
    -->
    <!-- -->
    <insert id="insertIntoStudent" parameterType="student">
        INSERT INTO tb_student(student_name,address,sex,age) VALUES (#{studentName},#{address},#{sex},#{age})
    </insert>
<!-- 自动生成数据库的id-->
    <insert id="insertIntoStudentAutoId" parameterType="student" useGeneratedKeys="true"  keyProperty="id">
        INSERT INTO tb_student(student_name,address,sex,age) VALUES (#{studentName},#{address},#{sex},#{age})
    </insert>
	<!-- 修改-->
    <update id="updateStudentById" parameterType="student">
        UPDATE tb_student set student_name=#{studentName} ,address=#{address},sex=#{sex},age=#{age} where id = #{id}
    </update>
	<!-- 删除-->
    <delete id="deleteById" parameterType="int">
        delete from tb_student where id = #{id}
    </delete>
上一篇:SQL Server 2014如何提升非在线的在线操作


下一篇:24枚举ENUM