Maven

pom.xml中进行配置

依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<dependencies>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
<!-- junit5 -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
<!-- mysql-connecter -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
</dependencies>

测试

JUnit5比较新,需要重新配置插件升级到高版本,才能完美的兼容Junit5:

1
2
3
4
5
6
7
8
9
10
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<!-- JUnit 5 requires Surefire version 2.22.0 or higher -->
<version>2.22.0</version>
</plugin>
</plugins>
</build>

打包

如果需要打包一个可执行文件,那么不仅需要将自己编写的类打包到Jar中,同时还需要将依赖也一并打包到Jar中,通过使用另一个插件来实现一起打包:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.test.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

Mybatis

配置文件

resource文件夹中新建mybatis-config.xml配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver(驱动类含包名)"/>
<property name="url" value="jdbc:mysql://xxx:xxx/xxx(数据库连接url)"/>
<property name="username" value="${用户名}"/>
<property name="password" value="${密码}"/>
</dataSource>
</environment>
</environments>
</configuration>

在配置文件中,注册映射器的两种方式:

1
2
3
4
5
6
<mappers>
<!-- 一次性注册包下的所有mapper-->
<package name="com.test.mapper"/>
<!-- 单独注册一个mapper -->
<mapper class="com.test.mapper.MyMapper"/>
</mappers>

读取配置

由于SqlSessionFactory一般只需要创建一次,因此创建一个工具类来集中创建SqlSession,会更加方便:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class MybatisUtil {

//在类加载时就进行创建
private static SqlSessionFactory sqlSessionFactory;
static {
try {
sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}

/**
* 获取一个新的会话
* @param autoCommit 是否开启自动提交(跟JDBC是一样的,如果不自动提交,则会变成事务操作)
* @return SqlSession对象
*/
public static SqlSession getSession(boolean autoCommit){
return sqlSessionFactory.openSession(autoCommit);
}
}

使用

使用SqlSessiongetMapper方法,获取一个mapper进行使用:

1
2
3
4
5
public static void main(String[] args) {
try (SqlSession session = MybatisUtil.getSession(true)){
BookMapper mapper = session.getMapper(BookMapper.class);
}
}

JUL

配置文件

编写日志系统的配置文件:在resource文件夹下新建配置文件logging.properties

1
2
3
4
5
handlers= java.util.logging.FileHandler
.level= INFO
java.util.logging.FileHandler.pattern = console.log
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.append = true
  • handlers: .FileHandler向文件输出日志,.ConsoleHandler向控制台输出日志
  • .level:根handler的日志显示级别
  • java.util.logging.FileHandler.pattern: 文件保存位置
  • java.util.logging.FileHandler.append: 是否为追加模式

读取配置

1
2
LogManager manager = LogManager.getLogManager();
manager.readConfiguration(Resources.getResourceAsStream("logging.properties"));

使用

使用Lombok快速开启日志:在类上添加@Log注解;

随后获取到log对象,使用即可。


JUnit

Maven项目中,在test文件夹下创建测试类,在测试类的测试方法上添加@Test注解。

测试类的名称必须是以Test结尾,比如MainTest

编写的测试方法有以下要求:

  • 方法必须是public的
  • 不能是静态方法
  • 返回值必须是void
  • 必须是没有任何参数的方法

常用注解:@Test@RepeatedTest(次数)@BeforeAll