CSDN话题挑战赛第2期
参赛话题:学习笔记
-
pom.xml文件中scope的属性 scope属性为test:表示此依赖仅用于测试,此依赖项将不可用于src/main/java下的代码,也不会参与编译、打包 scope属性为runtime:表示开发过程中并不需要此依赖项,但是运行时是必须的 scope属性为provided:表示在执行程序时,需要执行环境来保证此依赖项是存在的
- 在pom.xml中只增加MySQL的依赖和Mybatis整合Spring Boot的依赖项是不可以启动的。因为SpringBoot项目默认开启了自动配置,会自动的从配置文件中去读取连接数据库URL参数值,找不到就会启动失败。
- 数据表中的字段的数据类型,与Java类中的属性的数据类型的对应关系:
数据表中的字段的数据类型 | Java类中的属性的数据类型的 |
tinyint / smallint / int | Integer |
bigint | Long |
char / varchar / test系列 | String |
date_time | LocalDateTime (Java 8) |
decimal | BigDecimal (Java 8) |
- 关于POJO的设计规范:
- 具有无参数的构造方法
- 属性均需声明为private的
- 生成所有属性对应的Setter() 和Getter() 方法
- 生成规范的hashCode() 与equals() 方法(如果两个对象的hashCode() 值相同,则必须保证它们equals() 对比的结果为true,如果两个对象的hashCode() 值不同,则必须保证它们equal() 对比的结果为false,通常可以使用专业的开发工具生成的这两个方法,不必关心方法体的具体实现)
- 实现Serializable接口
- Mybatis抽象方法必须声明在接口中,因为Mybatis框架的底层实现是基于接口的代理模式
- 如何让Mybatis框架找到Mapper接口
- 在每个Mapper接口上增加@Mapper注解(不推荐)
- 在配置类上增加@MapperScan注解,并在此注解中增加配置参数(Mapper接口的跟包路径)
- 抽象方法的声明原则:
- 返回值类型:如果要执行的SQL是增、删、改类型的,推荐使用
int
作为返回值类型,表示“受影响的行数”,其实,也可以使用void
,并不推荐这样使用;如果要执行的SQL是查询类型的,只需要保证返回值类型足以封装所需的查询结果即可 - 方法名称:自定义,但不要重载
- 参数列表:如果需要执行的SQL语句有多个参数,并且具有相关性,则应该将这些参数进行封装,并使用封装的类型作为抽象方法的参数
如果某张表的id被设计为自动编号的,在插入数据时,还可以获取自动编号的id值!在配置SQL的<insert>
标签上,配置useGeneratedKeys
和keyProperty
属性即可:
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
此处省略插入数据的SQL语句
</insert>
- 动态SQL:允许根据参数不同,来生成不同的SQL语句。(可以根据参数不同,生成不同的SQL语句 ),例如:
DELETE FROM pms_brand WHERE id=? OR id=? …… OR id=?;
- xml文件里,<insert>标签的内容不要写任何注释,会被当成SQL语句的一部分
- 在Spring Boot项目中,默认的显示级别是
info