1、关于pojo的操作
2、lombok的插入为了节省手动生成getter和setter,因为避免了比如修改了属性也要修改getter和setter方法的复杂操作,毕竟属性一下子就有好几十个呀。
3、创建config类方便mybatis框架能够扫描mapper
4、bug分享
(1)、如何快速导入关于对象pojo的属性名称。
复制数据库的字段,然后把属性类型加上!如图:
注意的点就是除了bigint类型是long的类型以外,我们其余都要Integer类型,因为bigint能装的数字太多了比如100亿,Integer貌似是20亿能装,装不下100亿,就用long了。然后整理成如下图:
private提取到前面,之后的慢慢整理就好了。
(2)pom.xml配置如下
<1>配置mysql依赖源和测试源
<!--mysql的依赖源-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--spring-boot测试的依赖源-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<2> 当添加如下依赖以后,在pojo里面创建的entity.Brand类,只需要添加@Data注解,即可使得Lombok框架在编译期生成各类属性的Setter& Getter 、hashCode() 、equals() 、toString()方法。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
在创建的brand对象全限定类中添加@Data注解并实现序列化接口,我们以后就不用自己修改getter和setter方法
记得在settings里面的plugins插件里面安装lombok
测试一下结果,如果没有这个lombok插件以下的a()方法里面的setId会报错
3、我们一般为了方便mybatis框架能够扫描mapper注解我们有如下两种写法,这里因为推荐第二种所以根据第二种的写:
创建了config包下的MybatisConfiguration类,注意这里配置了@Configuration和@MapperScan,再有就是@MapperScan包名不要写错了
mapper下BrandMapper,以前在mapper抽象类中写@Insert注解我们就不用这么写了如下导致了方法上面的注解内容越来越多,sql语句不清晰不好看得懂:
上面白色最近这张图的这种方式不推荐,所以如下图
当然还不能直接测试。
然后配置xml文件,在resources文件下创建一个mapper,当然不可能创建的,我们这里有提供一份 http://doc.canglaoshi.org/config/Mapper.xml.zip
整理一下并且配置namespace如图,可以去mybatis官网去下载或者是找自己的同事复制
<!DOCTYPE mapper PUBLIC......原本分三行,我们就整理成一行。
知识点如下
如果是注解配置在mapper中就可以重载,但是我们在xml配置的话,就能不重载规避方法的重载。
这下终于可以写mysql语句了,还有一个注意,我们在xml写sql语句的时候是没有任何提示的,因为我们还没设置好,按照setting--Language& Frameworks里面或者搜索直接找到SQL Dialects选项,在Global SQL Dialect选择Mysql或者MariaDB(都一个意思),如图:
这些就有提示了
连字段提示也有
创建时间和修改时间两个字段不用写进去,这里删除了,因为后面还会用“高科技”去做。
#配置SQL的XML文件的位置 mybatis.mapper-locations=classpath:mapper/*.xml
这个calsspath相当于resources和java文件,当然也可以用src/main...目录去找。然后就是指向mapper下所有的.xml文件。
因为namespace对应一个mapper所以我们决定一个xml对应一个mapper
4、最后异常的分享程,因为程序员就要学会享受异常,享受bug,排查错误&异常。有时候排查异常的能力比写代码的能力更重要,否则一杯茶、一包烟,一个bug查一天。
(1)关于BadSqlbindingException异常
(2)sql语句异常
(3)注意的点,在@AutoWrite能不加required = false 就不要加。