1.关于Mybatis小结
- 【理解】Mybatis主要解决了:简化数据库编程
- 【了解】使用Mybatis时需要添加依赖:
mysql-connector-java
、mybatis-spring-boot-starter
(mybatis
+mybatis-spring
+spring-context
+spring-jdbc
+ 数据库连接池) - 【掌握】在配置类上使用
@MapperScan
配置接口所在的包,并在application.properties
中配置XML文件的位置 - 【了解】在
application.properties
配置连接数据库的参数 - 【掌握】POJO的规范:属性私有化,实现
Serializable
,全属性的Setters & Getters,hashCode()
、equals()
、存在无参数的构造方法toString()
并不是规范所要求的
- 【掌握】抽象方法的设计原则
- 返回值类型:增删改使用
int
,查询使用可以装得下结果的类型即可 - 方法名称:自定义,不要重载,最好参考规范
- 参数列表:取决于需要执行的SQL语句中的参数,当参数较多时,应该封装
- 返回值类型:增删改使用
- 【掌握】在XML中配置SQL
- 此XML文件不是凭空创建的,应该从别处复制粘贴得到(此XML顶部的声明不易于手动编写)
- 每个XML文件都必须使用
<mapper>
作为根节点,且配置namespace
属性,此属性的值是对应的接口的全限定名 - 区分使用
<insert>
、<delete>
、<update>
、<select>
节点<delete>
和<update>
可以浑为一谈- 在不考虑获取自动编号的值的情况,
<insert>
、<delete>
、<update>
都可以浑为一谈
<insert>
、<delete>
、<update>
、<select>
这些节点都必须配置id
属性,取值为对应的抽象方法的名称<insert>
可以配置useGeneratedKeys
和keyProperty
属性,用于获取自动编号的id<select>
必须配置resultType
或resultMap
其中的某1个(二选一)- 使用
<foreach>
可以实现对参数的遍历,可以实现批量删除、批量插入、批量修改…… - 使用
<set>
结合<if>
实现按需更新数据 - 使用
<sql>
封装SQL语句片段,并使用<include>
调用 - 使用
<resultMap>
指导Mybatis封装查询结果
2.使用SLF4j日志
日志可以用于在程序执行过程中,向控制台或文件或数据库等位置输出一些自定义的信息。
注意:在开发实践中,不要在src/main/java
下的任何类中使用System.out.println()
的方式进行输出,除非你确定这些信息是一定要被任何人都可以看到的!
在spring-boot-starter
(此依赖项是几乎所有带有spring-boot-starter
依赖项的子级依赖)的依赖项中,默认已经集成了SLF4j日志框架。
日志是有显示级别的,根据日志信息的重要程度,从低到高分别是:
trace
:跟踪信息debug
:调试信息info
:一般信息warn
:警告信息error
:错误信息
默认的显示级别是info
,则只会显示此级别及更重要的日志信息。
在Spring Boot项目的application.properties
中,可以添加配置,以指定日志的显示级别:
logging.level.包名=日志的显示级别
例如,可以配置为:
logging.level.cn.tedu.csmall.product=info
在添加了Lombok
框架的Spring Boot项目中,可以在任何类上添加@Slf4j
注解,则在当前类中就可以使用名为log
的变量来调用方法,实现日志的输出,例如:
@Slf4j
@SpringBootTest
public class Slf4jTests {
@Test
void testSlf4j() {