1.结果集映射
<resultMap id="stu-condition" type="Student">
<id column="u_id" property="id"/>
<result column="u_username" property="username"/>
<result column="u_password" property="password"/>
</resultMap>
/*resultMap="stu-condition" 进行匹配*/
<select id="selectStuById" resultMap="stu-condition" resultType="com.xinzhi.entity.Student">
<include refid="stu-condition"/>
<where>
<choose>
<when test="username != null and username != ''">
AND u_username like concat('%',#{username} ,'%')
</when>
<when test="id != null">
AND u_id = #{id}
</when>
</choose>
</where>
</select>
【注意点】:
每个好的数据库都具有三范式和BCNF范式。
三范式:
第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。
第二范式:如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。
第三范式:设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF.
BCNF范式:
1.所有非主属性对每一个码都是完全 函数依赖
2.所有的主属性对每一个不包含它的码,也是 完全函数依赖。
3.没有任何属性完全函数依赖于非码的任何一组属性。
2.自动配置下划线和驼峰式命名映射
//下划线转驼峰式命名
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
【注意点】
mybatis-config配置文件的顺序
properties --> settings --> typeAliases --> typeHandlers --> objectFactory
–> objectWrapperFactory --> reflectorFactory --> plugins --> environments
–> databaseIdProvider -->mappers
3.日志的匹配
//标准日志
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
【1】在pom.xml中引入log4g包
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
【2】建立
#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
log4j.rootLogger=DEBUG,console,file
#控制台输出的相关设置
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
【此处是自己新建的log文件下的log日志,复制的的路径同意把\改成/才行】
log4j.appender.file.File=D:/Personal/Desktop/apache-maven-3.6.3-bin.tar/log/xinzhi.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
【3】
那么标准日志value也对应的需要改成log4j
<settings>
<setting name="logImpl" value="log4j"/> //此处value也对应的需要改成log4j
</settings>
对日志的测试