• DigitalSonic 置顶
    2019-03-06
    有很多同学反馈运行示例时没有生成resources里的mapper,统一答复一下,这里需要在运行前现在resources里创建一下mapper目录,也就是目标目录需要先存在。在课程视频中没有提及这点,疏忽了,希望这条置顶留言能在后面其他同学碰到这个问题时帮他们解决问题。
    
     18
  • 戴鹏
    2019-03-02
    老师,我使用你的demo无法自动生成代码,控制行不报错,跑起来然后结束了,日志没有相关信息,然后也没有生成model和mapper,是Mac的路径和window路径不一致的问题么?
    
     8
  • 寻路人
    2019-02-26
    最近几个项目都是使用的MyBatis-Plus,它也带有代码的自动生成机制和一些原生的CRUD接口,老师怎么不使用MyBatis-Plus作为例子讲解,希望能够讲一下它们之间的差异

    作者回复: 这个我记下了,后面我在答疑课程里给大家介绍下MyBaitsPlus。介绍Generator主要因为它是官方的生成工具。

    
     7
  • 那一夜
    2019-06-03
    老师你好,我想问一下,一般在项目中先使用mybatis逆向工程生成mapper和xml之后,都会有需求在mapper里面自己定义一些查询,但是这种情况下,如果这个数据表需要增加或者删除字段的时候重新生成mapper和xml,这就把自定义的那些mapper方法给覆盖了,我现在是每次都复制出来再复制回去,我想问一下有没有比较好一点的解决办法

    作者回复: 我们在课程里提到过,把自动生成的代码和手工写的代码放在不同的地方,xml和Mapper都分开放,比如一个放src/main/java/xxx/mapper/auto里,一个放src/main/java/xxx/manual里,xml也是类似的,这样就不用担心覆盖的问题了。

     2
     6
  • Usher
    2019-03-23
    公司项目强制要求手写的和自动生成的分开放,分开放能够很好的支持后期数据表新增字段或者修改字段的维护工作。
    
     5
  • 云韵
    2019-03-01
    丁老师,为什么我用mybatis.generator 插件 能生成java 下的mapper,model 而生不成resources下的xml呢

    作者回复: 你是不是没有配sqlMapGenerator?另外,如果你全部用注解方式来配置映射关系的话,也就没xml什么事了。还有一点,在运行前,需要先确保目标目录存在,也就是需要创建一下./src/main/resources/mapper这个目录

    
     5
  • yuyan
    2019-07-02
    老师你好~我想请问一下~
    Mybatis generator生成的CoffeeMapper好像并没有一些Bean相关的注解(比如说@Component, @Repository这些),但是我们可以通过@Autowired把CoffeeMapper的实例注入进去。
    请问CoffeeMapper是如何成为Bean的?
    谢谢~

    作者回复: @MapperScan注解在扫描配置的package后会找到Mapper接口并创建对应的Bean的

    
     4
  • better
    2019-03-10
    如果使用的是 多 module 的结构,生成时,需要配置成:
    targetProject="module名字/src/main/resources/mapper"
    这样就不要写死路径了。
     1
     4
  • boyxie
    2019-02-26
    mybatis的自动生成类跟阿里开发手册的要求差别有点大,这个怎么破

    作者回复: 手写的部分遵从规范,自动生成的忽略掉规范,并且不要去改动自动生成的产物。

    
     4
  • 葱
    2019-03-20
    老师,我这边把数据库改成了mysql,能正常生成,但是在调用insert的时候却报了以下错误:
    Caused by: org.apache.ibatis.builder.IncompleteElementException: Could not find result map com.geektime.mybatis.mapper.CoffeeMapper.BaseResultMap
    Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.goblin.mybatis.mapper.CoffeeMapper.BaseResultMap
    ---------------------------------------------------------------
    xml文件出了context 节点的id改成了mysql,jdbcConnection改成了对应的mysql连接方式,以及
     <generatedKey column="id" sqlStatement="JDBC" identity="true" />以外,其它的都是按照GitHub上的xml配置来的


    展开
    
     3
  • jaryoung
    2019-03-06
    example是不是不建议使用?语句都写在代码里, 是不是让DBA狠抓狂呢?

    作者回复: 用Hibernate时,语句也都在代码里,DBA这时会怎么样呢……用哪种方式还是其次的,是你一定得要让你运行的SQL是DBA可接受的,至于这语句怎么搞出来的,他们其实也不关心。但在一些有SQL扫描的大厂,能有明确的语句文件可以给DBA扫描,他们肯定更乐意。

    
     3
  • dellenovo
    2019-08-12
    我想直接用 java -jar 的方式执行 MyBatisGenerator
    
     2
  • Rays
    2019-03-28
    戴鹏你好,你出的那个问题我也有,刚刚发现问题,你是不是把所有项目在idea中打开的,还是单独把mybatis-generator-demo单独打开,前者不行是因为项目的基本路径是geektime-spring-family,所以生成到其他位置去了
    
     2
  • Yuriy
    2019-03-04
    丁老师,为什么我用mybatis.generator 插件 能生成java 下的mapper,model 而生不成resources下的xml呢

    作者回复: 在运行前,需要先确保目标目录存在,也就是需要创建一下./src/main/resources/mapper这个目录。

    
     2
  • dellenovo
    2019-08-12
    有三个问题,
    1 我想用java -jar方式运行MyBatisGenerator,连接mysql, 报找不到com.mysql.cj.driver, 我试过在命令行中通过-cp方式添加mysql-connector.jar, 但报找不到主类,不知道这里参数应该怎么填?

    作者回复: 可以看看http://www.mybatis.org/generator/running/runningFromCmdLine.html ,这里有几种方式,如果你要在Classpath里指定其他的jar,可以用java -cp mysql-connector.jar;mybatis-generator-core-x.x.x.jar org.mybatis.generator.api.ShellRunner -configfile generatorConfig.xml

    
     1
  • 来阵小凉风
    2019-06-10
    mysql插入的之后,报错:
    Caused by: org.springframework.jdbc.BadSqlGrammarException: Error selecting key or setting result to parameter object. Cause: java.sql.SQLSyntaxErrorException: PROCEDURE springboot.IDENTITY does not exist
    ; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: PROCEDURE springboot.IDENTITY does not exist

    解决办法:
    CoffeeMapper.java 中的insert方法改成这样既可:
     @Insert({
            "insert into t_coffee (name, price, ",
            "create_time, update_time)",
            "values (#{name,jdbcType=VARCHAR}, #{price,jdbcType=BIGINT,typeHandler=com.mybatis.demo.mybatisdemo.handler.MoneyTypeHandler}, ",
            "#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})"
        })
    // @SelectKey(statement="CALL IDENTITY()", keyProperty="id", before=false, resultType=Long.class)
        @Options(keyProperty = "id", useGeneratedKeys = true)
        int insert(Coffee record);
    展开
    
     1
  • 爱游泳的小飞象
    2019-05-31
    同学们要注意,如果你把所有项目都在idea里打开了,xml配置里的targetProject路径要设置为形如“Chapter 3/mybatis-generator-demo/src/main/resources/mapper”这个样子。否则代码不会生成到想要的地方的,因为项目的基本路径是geektime-spring-family。
    
     1
  • 爱酒
    2019-04-03
    丁老师,我用MybatisGenerator生成后实体和Mapper后,执行写入数据库报错org.apache.ibatis.builder.IncompleteElementException: Could not find result map junhao.spring.mybatis.mapper.CoffeeMapper.BaseResultMap,如何解决?
     1
     1
  • Geek_264ecf
    2019-03-16
    老师你好,在业务需要,变更表的时候,比如要加个字段。基于新增字段做增删改查。那一定要重新运行并生成mapper,example对象吗?如果不生成,手写example里那些查询方法,工作量也挺大的。这种情况有没有好的办法? 谢谢老师!

    作者回复: 改了表结构就要重新生成一下,所以我才说一定要把生成的和手写的分开放,不然容易把手写的东西覆盖了。

    
     1
  • Pui
    2019-02-26
    对于单表的操作,用这个方便。多表的话还是需要自己写代码的,是这样嘛?

    作者回复: 可以这么理解吧,多表关联的查询需要自己手工写

    
     1
我们在线,来聊聊吧