在Spring Boot中使用MyBatis并且自动生成代码
MyBatis目前是主流的数据访问层框架,我司目前的项目大部分都是用MyBatis。本文将使用Spring Boot快速创建项目,并且在Spring Boot中使用MyBatis,编写了一个根据区域id获取区域信息的接口例子。在最后,使用MyBatis的Generator自动生成代码。
0、新建Spring Boot项目
打开开发工具:IntelliJ IDEA,选择jdk 1.8以上。
点击File→New→Project...,选择Spring Initializr。
然后next:
next,选择当前最新版本1.5.2,勾选web、MyBatis和Mysql
最后finish完成项目创建。
1、建好经典的三层结构,controller存放控制层代码,service存放业务逻辑层代码,dao存放数据访问层代码,另外model存放实体类。
2、在application.properties文件中添加mybatis配置和mysql数据库连接配置
3、在Application.java应用启动类添加MapperScan注解
4、创建数据库表area
5、编写代码
实体类Area.java
AreaDao.java
mybatis的sql配置文件AreaMpper.xml
AreaService.java
AreaServiceImpl.java
最后是AreaController.java
编写代码后,整个结构是这样子的:
可以看到我把mybatis的sql配置文件也放在dao层中了,这样可以使目录结构清晰,但是如果这时候运行项目,就会报一个错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)......说找不到sql的配置文件。
原因:是idea对calsspath的规定,在idea中直接把资源文件放在src文件夹下是不能被找到的。
解决方法:
在idea上点击File -> Project Struture -> Modules -> Dependencies -> "+" -> JARS or directories -> 选择sql配置文件所在的包-> 弹出Choose Categories of Selected Files -> 勾选 -> OK
6、运行主类Application.java,访问接口:http://localhost:8080/area/getAreaInfo?id=1
浏览器访问接口可以看到,直接返回了json数据。其实Spring Boot默认已经引用好了JackSon,不需要我们另外配置什么。而且Spring Boot已经封装好了spring mvc,不需要我们再去集成spring mvc。
至此,我们已经完成了一个根据区域id获取区域信息的接口例子。
==========================这是分割线=============================
其实。我们可以不用自己一个一个去写mybatis的sql文件,dao接口和实体类。可以利用mybaits的generator自动生成代码。在idea中使用mybatis generator要做一些设置。
0、在pom.xml中增加generator插件
1、在resources下增加generatorConfig.xml文件
2、在idea中添加一个generator插件运行选项。
首先,点击run→Edit Configurations...如下图
在弹出的窗口中点击“+”号,选择Maven,填写Name和Command line,如下图
点击ok完成设置。
点击Run generator,就会自动生成代码。
java后端交流群,欢迎有志之士登船!