idea中springboot集成mybatis,并用mybatis generator自动生成代码

1.导入mybatis相关jar包



    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    2.0.0


    mysql
    mysql-connector-java
    5.1.1

注:mysql-connector-java版本不能太高,如果超过了mysql版本,会报如下错误。

java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required

2.引入generator插件,并配置xml资源文件(编译时会自动生成)


    
        
            org.springframework.boot
            spring-boot-maven-plugin
        

        
            org.mybatis.generator
            mybatis-generator-maven-plugin
            1.3.7
        

    

    
        
            src/main/java
            
                **/*.xml
            
        
    

注:若没有配置.xml文件,则*Mapper.xml文件不会生成到编译后的包中,运行后,Mapper接口匹配不到*Mapper.xml文件,将会报如下错误。

 

Resolved [org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xglong.mybatis.generator.mapper.LotteryMapper.selectByPrimaryKey]

3.在application.properties中配置DataSource

spring.datasource.url=jdbc:mysql://192.168.52.166:3306/mysql
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

4.在application.properties文件中配置

#mapper-locations这个配置参数仅当mapper xml与mapper class不在同一个目录下时有效,一般可以忽略。
mybatis.mapper-locations=classpath:com/xglong/mybatis/generator/mapper/xml/*.xml
#设置自动扫描包别名
mybatis.type-aliases-package=com.xglong.mybatis.generator.mapper

否则运行时会报如下错。

WARN 58344 --- [nio-8080-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xglong.mybatis.generator.mapper.LotteryMapper.selectByPrimaryKey]

5.generator自动生成mapper配置

新建generatorConfig.xml文件放入resources目录下,文件内容如下。






    
    

    
        
        
            
        

        
        
        
        
        
            
        

        

        
        
            
            
        

        
        
            
        
        
        
            
        

        
        

注:classPathEntry中的location属性,要与第一步引入的mysql-connector-java包一致。

6.在Intellij IDEA添加一个“Run运行”选项,使用maven运行mybatis-generator-maven-plugin插件

点击 菜单run中Edit Configurations,选择maven,点击+号,在Command line中输入:mybatis-generator:generate -e

idea中springboot集成mybatis,并用mybatis generator自动生成代码_第1张图片

配置好后点ok,在运行按钮前的选择框中选择刚刚的配置,点运行按钮自动生成代码。

idea中springboot集成mybatis,并用mybatis generator自动生成代码_第2张图片

注:每次点击都会生成新的文件,*mapper.xml会重复插入。

7.Controller配置

@MapperScan(basePackages = {"com.xglong.mybatis.generator"})

注:在Controller中需要通过@MapperScan来配置扫描路径,basepackages必须是尽可能靠近*Mapper.java类的目录,如果basePackages = {"com.xglong"},运行时会报如下错。

[nio-8080-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xglong.service.LotteryService.selectByPrimaryKey]

你可能感兴趣的:(springboot)