<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--jar包地址-->
<!-- <localRepository>I:/Java/apache-maven-3.6.3/respository</localRepository> -->
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers></servers>
<!--配置阿里云地址-->
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<!-- jdk版本-->
<profiles>
<profile>
<id>jdk‐1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
</settings>
* 4. Maven常用命令和插件
* clean----maven工程的清理命令,执行clean会删除target目录及内容。
* compile----maven工程的编译命令,作用是将 src/main/java 下的文件编译为class文件输出到target目录下。
* test----maven工程的测试命令,作用是执行 src/test/java 下单元测试类,并编译为class文件。
* package----maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。
* install----maven工程的安装命令,执行install将mave工程打成jar包或war包,并发布到本地仓库。
<?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>maven_hello</groupId>
<artifactId>maven_hello</artifactId>
<version>1.0-SNAPSHOT</version>
<!--
packaging决定打包类型:war:war包
jar:jar包(默认)
-->
<packaging>war</packaging>
<!--引入单元测试junit的jar包-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<!--指定jdk的版本-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
<?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>
<!--加载properties文件-->
<properties resource="jdbc.properties"></properties>
<settings>
<!--开启全局延迟加载功能-->
<setting name="lazyLoadingEnabled" value="true"/>
<!--所有方法都会延迟加载-->
<setting name="lazyLoadTriggerMethods" value="toString()"/>
<!--
因为cacheEnabled的取值默认就为true,所以这一步可以省略不配置。
为true代表开启二级缓存;为false代表不开启二级缓存。
-->
<setting name="cacheEnabled" value="true"/>
</settings>
<!--设置别名-->
<typeAliases>
<!--方式一:给单个实体起别名-->
<!-- <typeAlias type="com.lagou.domain.User" alias="user"></typeAlias>-->
<!--方式二:批量起别名 别名就是类名,且不区分大小写-->
<package name="com.lagou.domain"/>
</typeAliases>
<!--environments: 运行环境-->
<environments default="development">
<environment id="development">
<!--当前的事务事务管理器是JDBC-->
<transactionManager type="JDBC"></transactionManager>
<!--数据源信息 POOLED:使用mybatis的连接池-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--引入映射配置文件-->
<mappers>
<!--<mapper resource="com/lagou/mapper/UserMapper.xml"></mapper>-->
<!--使用该方式:接口和映射文件需要同包同名-->
<!-- <mapper class="com.lagou.mapper.UserMapper"></mapper>-->
<!--批量加载映射-->
<package name="com.lagou.mapper"/>
</mappers>
</configuration>
* 1. mybatis的缓存,都不需要我们手动存储和获取数据。mybatis自动维护的。
* 2. mybatis开启了二级缓存后,那么查询顺序:二级缓存--》一级缓存--》数据库
* 3. 注意:mybatis的二级缓存会存在脏读问题,需要使用第三方的缓存技术解决问题。
<mapper namespace="com.lagou.dao.UserMapper">
<!--当前映射文件开启二级缓存-->
<cache></cache>
<!--
<select>标签中设置useCache=”true”代表当前这个 statement要使用二级缓存。
如果不使用二级缓存可以设置为false
注意:
针对每次查询都需要最新的数据sql,要设置成 useCache="false",禁用二级缓存。
-->
<select id="findById" parameterType="int" resultType="user" useCache="true"
>
SELECT * FROM `user` where id = #{id}
</select>
</mapper>
* 通过 #{} 可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。
* #{} 可以接收简单类型值或pojo属性值。