镇江做网站seo/盐城seo排名
关于笔记01的细节
1.Maven的默认规则
Maven默认Java文件夹下的所有文件都是.java文件,对于不是.java文件的文件,会自动做略过处理,也就是不会添加到编译生成的target/classes文件夹下。Mybatis是不强求一定要将mapper文件放置在resources文件夹里的,我们可以选择将mapper.xml与其对应的DAO接口放在一起,但是由于编译时mapper.xml不会被加入target/classes中DAO所在包下,因此即便我们修改了主配置文件的路径,也是无法查询到mapper.xml文件的。
解决办法:在POM中配置资源过滤设置
<?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>org.example</groupId>
<artifactId>Mybaitas-01</artifactId>
<version>1.0-SNAPSHOT</version><dependencies><!--MySql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.14</version></dependency><!--Mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.0</version></dependency></dependencies><!--编译规则--><build><resources><resource><!--资源目录--><directory>src/main/java</directory><!--要求包含的文件类型--><includes><include>*.xml</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build>
</project>
其中 *是通配符,*.xml表示在某文件夹下的所有.xml文件,而**表示该目录下的所有多级子目录。
并在主配置文件中更改mapper文件的路径 resource = "com/.../DAPMapper.xml"
2.为了简化Mybatis文件并便于修改,可以使用properties文件存储数据库连接的信息,在主文件中可以直接引入
jdbc.url = jdbc:mysql://localhost:3306/study_mybatis?serverTimezone=GMT%2B8
jdbc.driver = com.mysql.cj.jdbc.Driver
jdbc.username = root
jdbc.password = zjm@?42393
properties文件可以理解为是一种Map。
在主文件中引入properties:
<?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"/><!--默认使用哪一个环境配置信息--><environments default="study_mybatis"><!--我们使用的开发环境配置 主要针对数据库--><environment id="study_mybatis"><!--事务控制类型--><transactionManager type="jdbc"></transactionManager><!--数据库连接参数--><!--使用连接池--><dataSource type="org.apache.ibatis.datasource.pooled.PooledDataSourceFactory"><!--数据库连接信息--><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><!--注册Mapper--><mappers><!--<mapper resource="UserDAOMapper.xml"/>--><mapper resource="com/zt/Dao/UserDAOMapper.xml"/></mappers>
</configuration>
这样做的好处是,在后期更改数据库的信息时,只需要修改properties,而不需要在主配置文件中寻找具体修改位置。
3.在主文件中给实体类定义别名,在引用类时不需要写类的全路径
在主配置文件中使用typeAlias给实体类定义别名
方法1. type=实体类全路径,alias如果不写,则默认别名是实体类名称,亦可使用alias显式指定别名。
<?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"/><!--给实体类起别名--><typeAliases><typeAlias type="com.zt.Bean.User" alias="User"/></typeAliases><!--默认使用哪一个环境配置信息--><environments default="study_mybatis"><!--我们使用的开发环境配置 主要针对数据库--><environment id="study_mybatis"><!--事务控制类型--><transactionManager type="jdbc"></transactionManager><!--数据库连接参数--><!--使用连接池--><dataSource type="org.apache.ibatis.datasource.pooled.PooledDataSourceFactory"><!--数据库连接信息--><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><!--注册Mapper--><mappers><!--<mapper resource="UserDAOMapper.xml"/>--><mapper resource="com/zt/Dao/UserDAOMapper.xml"/></mappers>
</configuration>
方法2.使用package定义实体类所在的包,包下所有的实体类的别名均为实体类名。
<typeAliases><!--<typeAlias type="com.zt.Bean.User" alias="User"/>--><package name="com.zt.Bean"/>
</typeAliases>
4.打印输出Mybatis的日志(log4j)
A. 导入log4j依赖
<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version>
</dependency>
B. 建立相应配置文件 log4j.properties
log4j.rootLogger=DEBUG,stdout
log4j.logger.org.mybatis.example.BlogMapper = 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