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>