JAVA语言之Spring Boot整合mybatis并自动生成mapper和实体实例解析
龚超 2018-07-02 来源 : 阅读 305 评论 0

摘要:本文主要向大家介绍了JAVA语言的Spring Boot整合mybatis并自动生成mapper和实体实例解析,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言的Spring Boot整合mybatis并自动生成mapper和实体实例解析,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。 

目前Java招聘中,mybatis出现的频率挺高的,是目前java开发中使用比较多的数据库ORM框架。研究下Spring Boot和mybatis的整合。

1.在pom.xml文件中添加下面的配置


org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-jdbc
mysql
mysql-connector-java
runtime
com.alibaba
druid
1.0.29
org.springframework.boot
spring-boot-starter-data-jpa
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.2
org.mybatis.generator
mybatis-generator
1.3.5
pom
org.mybatis.generator
mybatis-generator-core
1.3.5
org.springframework.boot
spring-boot-maven-plugin
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
true
true

2.在application.properties配置文件中进行数据库和mybatis扫描的配置


spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/yddy?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
mybatis.config-locations=classpath:mybatis-config.xml
# mapper文件
mybatis.mapper-locations=classpath:mapper/*.xml #这里直接写*,对后面自定义sql,编写xxxExt.xml有好处,自动扫描到这些文件,不用再改配置了
mybatis.type-aliases-package=com.dameiweb.learn.model
logging.level.com.dameiweb.learn.dao=debug
#mybatis.config = mybatis 配置文件名称
#mybatis.mapperLocations = mapper xml 文件地址
#mybatis.typeAliasesPackage = 实体类包路径
#mybatis.typeHandlersPackage = type handlers 处理器包路径
#mybatis.check-config-location = 检查 mybatis 配置是否存在,一般命名为 mybatis-config.xml
#mybatis.executorType = 执行模式。默认是 SIMPLE

3.mybatis的配置和自动生成mapper的配置

在resource目录下新建一个generatorConfig.xml和mybatis-config.xml。内容如下:

generatorConfig.xml内容


<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

mybatis-config.xml的内容:

这样我们就配置好了Spring Boot和mybatis与mybatis自动生成mapper和实体的功能。这样我们要生成某个表的实体和mapper的时候,只需要在generatorConfig.xml中javaClientGenerator标签之后添加下面的内容即可。

此处我们已yd_movies表为例(主要数据库表名字不要用复数,这个表名肯定是我之前脑子抽了,搞个复数的名字)


<table tableName="yd_movies" domainObjectName="Movie" enableCountByExample="false" enableUpdateByExample="false"

enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">


复制代码

然后点击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放到这里,例子如下:

MovieMapperExt.xml文件内容


SELECT yd_movies.* FROM yd_movies
LEFT JOIN yd_r_movie_countries ON yd_movies.id = yd_r_movie_countries.movie_id
LEFT JOIN yd_countries cou ON yd_r_movie_countries.country_id = cou.id
LEFT JOIN yd_r_movie_category ON yd_movies.id = yd_r_movie_category.movie_id
LEFT JOIN yd_category cat ON yd_r_movie_category.category_id = cat.id
LEFT JOIN yd_r_movie_actor ON yd_movies.id = yd_r_movie_actor.movie_id
LEFT JOIN yd_actors a ON yd_r_movie_actor.actor_id = a.id
WHERE
yd_movies.status = 1
AND yd_movies.title LIKE "%"#{movieRequest.title}"%"
AND cou.id = #{movieRequest.country}
AND cat.id = #{movieRequest.category}
AND year = #{movieRequest.year}
AND rate >= #{movieRequest.rate}
AND rate < (#{movieRequest.rate}+1)
AND yd_movies.subtype = #{movieRequest.subtype}
GROUP BY yd_movies.id
ORDER BY updated_at DESC, year

希望这篇文章可以帮助到你,总之同学们,IT知识尽在职坐标。

本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

擅长针对企业软件开发的产品设计及开发的细节与流程设计课程内容。座右铭:大道至简!

  • 370
    文章
  • 4892
    人气
  • 94%
    受欢迎度

已有17人表明态度,94%喜欢该老师!

进入TA的空间
名师指导直通车
  • 资料索取
    资料索取
  • 答疑解惑
    答疑解惑
  • 技术交流
    技术交流
  • 职业测评
    职业测评
  • 面试技巧
    面试技巧
  • 高薪秘笈
    高薪秘笈
TA的其他文章 更多>>
WEB前端必须会的基本知识题目
经验技巧 92% 的用户喜欢
Java语言中四种遍历List的方法总结(推荐)
经验技巧 86% 的用户喜欢
Java语言之SHA-256加密的两种实现方法详解
经验技巧 100% 的用户喜欢
WEB前端之webpack+nodejs+npm构建前端项目
经验技巧 100% 的用户喜欢
Java语言面试题-泛型篇十四
经验技巧 100% 的用户喜欢
其他海同名师 更多>>
刘新华
刘新华 联系TA
实力型。激情饱满,对专业充满热情
吴翠红
吴翠红 联系TA
独创“教、学、练、测”循环教学模式
吕益平
吕益平 联系TA
熟悉企业软件开发的产品设计及开发
黄泽民
黄泽民 联系TA
擅长javase核心技术
程钢
程钢 联系TA
擅长大型企业商业网站开发和管理
经验技巧30天热搜词 更多>>

您输入的评论内容中包含违禁敏感词

我知道了

X
免费获取海同IT培训资料
验证码手机号,获得海同独家IT培训资料
获取验证码
提交

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    ICP许可  沪B2-20190160

站长统计