2022.8.24_Mybatis配置以及其Bug分享

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 就不要加。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值