day68
maven
简介
maven字面意思是知识的积累,是项目对象模型的一个项目管理工具,可以用来实现项目的构建,打包,编译,运行等功能
可以很好的实现项目与代码的分离
依赖jar包版本升级也会更加方便
新建的maven项目结构:
pom.xml:用来设置当前项目的jar包,管理,项目间的继承与依赖
下载安装
Maven – Welcome to Apache Mavenmaven官网,maven和之前的tomcat一样,也是apache下的一个子产品
下载指定的版本后解压,解压后的目录:
├─bin: 含有maven命令脚本mvn的目录 ├─boot: 含有类加载器框架的目录,使用框架加载自己的类库 ├─conf:配置目录,含有settings.xml,里面配置了本地仓库,还有阿里云镜像 └─lib: 含有maven运行时所需要的java类库
测试:
D:\apache-maven-3.9.5\bin>mvn -version Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546) Maven home: D:\apache-maven-3.9.5 Java version: 1.8.0_312, vendor: International Business Machines Corporation, runtime: D:\jdk1.8\jdk8u312-b07\jre Default locale: zh_CN, platform encoding: GB18030 OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"能够出现正确的maven版本信息,即maven配置完成
maven的配置
本地仓库:在settings.xml文件中配置
<localRepository>D:\apache-maven-3.9.5\repo</localRepository>当需要依赖时,会从仓库中查找,优先顺序为:
本地仓库 > 私服 (已经配置) > 公共仓库 (已经配置) > 中央仓库
远程仓库:
中央仓库:
maven中央仓库时有maven社区提供的仓库,不用任何配置,maven中内置了中央仓库的地址
其中包含绝大多数流行的Java开源构件
Maven Repository: Search/Browse/Explore (mvnrepository.com)
公共仓库:
比如阿里云仓库,中央仓库服务器一般在国外,下载速度过慢,所以都会配置一个国内的公共仓库替代中央仓库
公共仓库也可以在settings.xml文件中配置
<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>私服:
公司范围内共享的仓库,一般不对外
可以公共nexus来创建、管理一个私服
idea配置maven
idea中配置maven
file - new project setup - setting for new projects
找到build execution deployment - build tool - maven
分别配置:
maven home path:D:/apache-maven-3.9.5
user settings file: D:\apache-maven-3.9.5\conf\settings.xml
Local repository: D:\apache-maven-3.9.5\repo
新建项目
使用单元测试来测试maven环境
在项目中的pom.xml文件中配置junit的依赖
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency>测试代码
@Test public void testJunit(){ System.out.println("this is junit test."); }junit4采用注解方式,测试更加简洁方便
在junit4中:
方法名可以随意
访问修饰符必须是public
方法返回值必须为void类型
方法必须为无参方法
单元测试3和4的版本区别
JUnit3需要让测试类继承自TestCase类,java的单继承会出现局限
JUnit3需要测试方法必须以test开头, 方法命名很不灵活
测试套件:
一次性测试多个测试类
package com.saas; public class Calc { public int add(int a, int b) { return a + b; } public int sub(int a, int b) { return a - b; } public int mul(int a, int b) { return a * b; } public int div(int a, int b) { return a / b; } public int mod(int a, int b) { return a % b; } }package com.saas.dao; import com.saas.Calc; import org.junit.Ignore; import org.junit.Test; import static org.junit.Assert.assertEquals; public class TestCalc { Calc calc = new Calc(); int n1 = 1, n2 = 2; @Test public void testAdd(){ int actual = calc.add(n1, n2); assertEquals(3, actual); } @Test public void testSub(){ int actual = calc.sub(n1, n2); assertEquals(-1, actual); } @Test public void testMul(){ int actual = calc.mul(n1, n2); assertEquals(2, actual); } @Test @Ignore public void testDiv(){ int actual = calc.div(n1, 0); assertEquals(0, actual); } @Test public void testMod(){ int actual = calc.mod(n1, n2); assertEquals(1, actual); } }package com.saas.dao; import com.saas.Calc; import org.junit.Ignore; import org.junit.Test; import static org.junit.Assert.assertEquals; public class TestCalc02 { Calc calc = new Calc(); int n1 = 1, n2 = 2; @Test public void testAdd(){ int actual = calc.add(n1, n2); assertEquals(3, actual); } @Test public void testSub(){ int actual = calc.sub(n1, n2); assertEquals(-1, actual); } @Test public void testMul(){ int actual = calc.mul(n1, n2); assertEquals(2, actual); } @Test public void testDiv(){ int actual = calc.div(n1, 0); assertEquals(0, actual); } @Test public void testMod(){ int actual = calc.mod(n1, n2); assertEquals(1, actual); } }package com.saas.dao; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ TestCalc.class, TestCalc02.class }) public class AllTest { }测试套件使用两个注解:
@RunWith是由Suite.class来运行
@Suite.SuiteClasses把多个需要测试的测试类的类对象都放进来进行一次性的套件测试
该类不需要类体
lombok
简介
快速编写实体类,自动生成getter和setter,以及toString方法
实现步骤
使得idea工具添加lombok插件(新版本的idea默认已经添加)
项目的pom文件中添加lombok的gav坐标
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.16</version> <scope>provided</scope> </dependency>在实体类之上添加@Data, @NoArgsConstructor, @AllArgsConstructor
package com.saas.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor @AllArgsConstructor public class Student { private int sid ; private String name ; private String sex ; private double score; private int cid ; private int age ; }使用lombok,使得更新类里面的属性名,属性类型,属性个数变得异常方便
lombok确实提高了程序的编写效率
mybatis
简介
标签:Java,入门,int,maven,actual,import,Test,day68,public From: https://blog.csdn.net/zpz2001/article/details/139854192MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录
持久层框架,使得对象从瞬时态变成持久态
对象有三种状态
瞬时态
持久态
游离态