mybatis学习记录之generatorConfig自动生成、自定义sql及遇到问题解决
今天的任务主要是在控制器里编写接口,然后浏览器里Get请求,结果遇到余下问题:
一、generatorConfig.xml配置
1、classPathEntry配置的路径不是sqlserver数据库的路径,我一度以为这里应该是数据库配置,然而不是,这里路径应该是jdbc路径如:
D:\apache-maven-3.8.2\repository\com\microsoft\sqlserver\mssql-jdbc\9.2.1.jre8\mssql-jdbc-9.2.1.jre8.jar
2、由于本人是sqlserver数据库,因此在区别字段关键字方面也有区别,sqlserver的关键字是用[]来区别的 ,不像MYSQL用 反引号``
<!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
<property name="beginningDelimiter" value="["/>
<property name="endingDelimiter" value="]"/>
二、application.xm或protetyies文件配置,需要配置上如下两个,第一个是配置生成的mapper.xml地址,另外一个是处理生成的mapper和model之前字段的对应关系,具体在哪里实现的还不知道
#配置生成的mapper放在哪里
mapper-locations: classpath:mapper/*.xml
#这个用来给生成的Mapper和model里的字段寻求对应
type-aliases-package: src.main.java.mybatis02.model
三、POM.xml配置 没有下面这个引用 主程序里的MapperScan是不行的,
<!-- 没有这个 MapperScan是不行的-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
四、主程序需要注解
@MapperScan(basePackages = {"com.example.mybatis02.dao"})
没有这个注解,是无法在接口实现类里实现生成的dao接口的 后面的包对应要实现的dao接口包
五、在接口实现类中 必须标注注解 @Service 否则会报错 说什么bean什么的
六、由于自动生成的mapper及接口实体类每次生成都会覆盖,即使不覆盖也没法实现自定义sql,因此百度了下结果,
a、在mapper手动创建一个Mapper.xml,里面的内容自己可以参照自动生成的其他mapper写,sql语句自己写就行
b、同时分别手动创建model、dal,这些曾经自动创建的 自己手动创建一个内容和生成的一样没啥区别,此处只有一点不同,那就是在接口类dao里的这个Mapper,必须继承Mapper才行
public interface UserCustomMapper extends Mapper {
UserCustom findById(int userid);
int deleteByPrimaryKey(int userid);
}
c、完成之后 就能正常使用了,每次重新生成也不会覆盖自己创建的Mapper的
浙公网安备 33010602011771号