最近一直都在学习Java,发现目前Java招聘中,mybatis出现的频率挺高的,可能是目前Java开发中使用比较多的数据库ORM框架。于是我准备研究下Spring Boot 1.x 和mybatis的整合。
1.在pom.xml文件中添加下面的配置
1 | <dependencies> |
2.在application.properties配置文件中进行数据库和mybatis扫描的配置
1 | spring.datasource.driver-class-name=com.mysql.jdbc.Driver |
3.mybatis的配置和自动生成mapper的配置
在resource目录下新建一个generatorConfig.xml和mybatis-config.xml。内容如下:
generatorConfig.xml内容
1 |
|
mybatis-config.xml的内容:
1 |
|
这样我们就配置好了Spring Boot和mybatis与mybatis自动生成mapper和实体的功能。这样我们要生成某个表的实体和mapper的时候,只需要在generatorConfig.xml中javaClientGenerator标签之后添加下面的内容即可。
此处我们已yd_movies表为例(主要数据库表名字不要用复数,这个表名肯定是我之前脑子抽了,搞个复数的名字)
1 | <!--生成对应表及类名--> |
然后点击idea右侧Maven projects,就可以看到mybatis-generate下的mybatis-generate:generate,双击mybatis-generate:generate即可。
generator 注意点,也可以说是BUG
就是在生成的时候,在第二次生成的时候,dao 和entity 都会直接覆盖,而Mapper.xml 会直接追加,导致运行报错,而且很难找。
4.mybatis自定义sql
当我们需要自定义sql的时候,我们不能把这些也放到mapper文件中。不然,当数据库表的字段有更新需要重新生成mapper的时候,这样我们自定义的sql不就被覆盖没了么!所以我们需要在MovieMapper.xml的同级目录里,新建一个MovieMapperExt.xml文件,把自定义的sql放到这里,例子如下:
1 | MovieMapperExt.xml文件内容 |